jtothebell / fake-08

A Pico-8 player/emulator for console homebrew
Other
615 stars 50 forks source link

Cart crashes on initial stage load #205

Open f8less opened 1 year ago

f8less commented 1 year ago

The following carts are crashing with the error "no lua to load. aborting cart":

jtothebell commented 1 year ago

It looks like the first three are all multicart games. Did you include the extra carts? I know Poom worked at one point, so unless there was an update to Poom or some regression in Fake-08 that one should work. I will add the others to my list to investigate, but I don't know when I'll get to them.

stefan-girlich commented 1 year ago

Experiencing the same with Kalikan; looking into the (paid) download from itch.io right now.

a) Potentially useful info from the readme file:

To get the carts to talk to each other you might have to run the game as administrator , and they will have to be in the actual pico8/carts directory otherwise they don't work . Unsure why , ask zep <3

b) New error message when trying to start initial stage with all cart files available

Screenshot_20231013-125118

system info:

steps to reproduce:

  1. download Kalikan files from itch.io (paid, src)
  2. find folder with .p8 files
  3. copy all folder content to /storage/emulated/0/p8carts> on Android device (note: error is identical when using arbitrary other folder location)
  4. rename kalikan_menu.p8 to kalikan_menu.p8.png (to prevent RetroArch "No core" error when trying to load cart)
  5. open RetroArch
  6. Load Core -> libfake08-arm64.so
  7. Load Content -> ... -> kalikan_menu.p8.png
  8. Game starts -> press buttons to enter actual game -> error

My best guess is that the cart files would need to be in an actual root-level dir /p8carts which is not achievable on a non-rooted Android system

xero commented 9 months ago

i have similar issues with this list of games

appreciate all the hard work everyone on this project does <3

FallOfArca commented 4 months ago

also experiencing this issue with Marble Merger

MindOfMatter commented 3 months ago

also experiencing this issue with Marble Merger

If you want to play this fabulous game (Marble Merger) for custom handheild, I've locally fixed the code that was causing compilation to fail on fake8

find the str2mem function (in code of #4 tab)

and please replace with this one (tested, no regression found) :

function str2mem(data)
    local t, a, i, c, d, str, m = split(data)
    for a = 1, #t, 2 do  
        m, str, i = t[a], t[a+1], 1
        while i <= #str do
            c, d = ord(str, i, 2)
            if c == nil then break end  -- safeguard against nil value
            i += (c == 255) and 2 or 1
            if c > 16 then
                poke(m, (c == 255) and d or c ^^ 0x80)
                m += 1
            end
        end
    end
end

I shared the fix to the creator https://www.lexaloffle.com/bbs/?pid=153066#p