Closed fleroviux closed 3 years ago
This is caused by the bundled replacement BIOS. Everything is fine with the real one.
Doesn't happen in NBA or mGBA with the same BIOS.
Weird. The only thing I could think of is a wrongly initialized register.
This turns out to be a pretty interesting issue. I was able to find the infinite loop thanks to the pokemon disassembly project. Turns out that there is a null pointer dereference in this function which results in a bios read (it's described really well in the comment). The bug has been fixed in Emerald, that's why I never noticed it.
Now I just have to find out why the cached BIOS value is garbage ¯\_(ツ)_/¯
Fixed improving bad reads https://github.com/jsmolka/eggvance/commit/213c7ab0a18502125b725536c433da3bf90d0b84.
Neat. Your DMA open bus isn't quite right yet, though. Successful 16-bit reads should mirror the value in the MSW of the bus
register. If I recall correctly the game Lufia relies on this in the intro.
I will look into it, thank you.
Tested with a japanese ROM and a 1.1 USA ROM. In both cases the game will hang at the end of the intro scene.