Boot hangs when CD search and IOP module loading depend on BIOS LOADFILE/CDVDFSV servers
I maintainer di solito rispondono entro 5 giorni
@AlenDavid ci sta già lavorando.
Dal 18/10/2026.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- game-dev, reverse-engineering
Direzione di ricerca
Start from IopEmulator::loadModuleBuffer, the untracked-stub handling, and the guest implementations of sceCdLayerSearchFile and sceSifSearchModuleByAddress. Verify that CDVDFSV/LOADFILE calls cannot enter indefinite retry loops and that IRX module buffers are read from IOP RAM, then boot SLUS-21735 and confirm all 13 modules load. The separate sceSifAllocIopHeap failure is explicitly out of scope; an open linked pull request already targets this issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Mana Khemia: Alchemists of Al-Revis (SLUS-21735), recompiled with the analyzer-generated config, hangs during boot without any error message. There are three separate causes, each hit only after the previous one is fixed.
1. sceCdLayerSearchFile spins on CDVDFSV's RPC
The game looks up \RPK.BIN;1 with sceCdLayerSearchFile (0x00485230). The runtime has no handler by that name, so the analyzer lists it under untracked_stubs and the guest libcdvd code runs. That code binds SID 0x80000597, which only CDVDFSV registers. The IOP emulator runs without a BIOS and sceSifRebootIop ignores the IOPRP310.IMG path, so the server never appears and the SDK keeps retrying the bind (cd->server == NULL) forever.
2. sceSifLoadModuleBuffer reads the module from the wrong memory
The game copies each IRX to IOP RAM with sceSifSetDma and passes that IOP address to _sceSifLoadModuleBuffer. The runtime writes the DMA into the emulator's separate IOP RAM, but IopEmulator::loadModuleBuffer reads the address from EE RAM (IopHost::readGuest), finds no ELF header and returns -1 without logging anything. None of the game's 13 modules load (DBCMAN, SDRDRV, EzMIDI, CRI ADX…), so it then waits on DBCMAN's SID 0x80001300 forever.
3. sceSifSearchModuleByAddress spins on LOADFILE's RPC
After the first module loads, the game calls sceSifSearchModuleByAddress (0x00476098). The runtime has no handler for it either, so the guest version binds LOADFILE (SID 0x80000006), which is also a BIOS module, and spins in _lf_bind.
After fixing all three
All 13 IRX modules load and start. The game then stops at a separate, unrelated problem: PS2RNA: E01112903: Failed, sceSifAllocIopHeap(%d) in ps2rna_init_psj, followed by the game's own for(;;) error loop.
Found on macOS arm64 with eb8688b.
- Lingua principale
- C++
- Stelle
- 3.3k
- Fork
- 149
- Merge medio
- 8h 46m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ran-j/PS2Recomp
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
ran-j/PS2Recomp#393 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
EE sceCdStatus stub always reports READ (6), hanging games that wait for PAUSEForse già presa @ahmedgamalalzatary l’ha presa 12 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
I maintainer di solito rispondono entro 5 giorni
-
VU0 macro VSQI / VSQD: address and source registers swapped in generated codeForse già presa @yanm1103 l’ha presa 20 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 5 giorni
-
Runtime: SampleTexture casts unbounded or NaN texture coordinates to int, which is undefined behaviourForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ran-j/PS2Recomp#273 · 2 commenti ·
I maintainer di solito rispondono entro 5 giorni
-
Build: /Qspectre- is MSVC-only and breaks every Release target under clang-clForse già presa @ahmedgamalalzatary l’ha presa 12 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di ran-j/PS2Recomp
Issue simili
-
bug libcudf
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
level/task module/cloud monitoring type/maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
LadybirdBrowser/ladybird#13809 ·
I maintainer di solito rispondono entro 1 giorno
-
bug module:nodes tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rocketride-org/rocketride-server#3020 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 9 giorni