jsgroth / jgenesis

Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator
MIT License
56 stars 3 forks source link

Danny Sullivan's Indy Heat (USA) (Proto).md nothing but a black screen #120

Closed benderscruffy closed 2 weeks ago

jsgroth commented 3 months ago

It's stuck in an infinite loop due to incorrect logic polling for Z80 BUSACK:

move.w #0x0100, ($A11100)    ; set Z80 BUSREQ
move.w #0x0100, ($A11200)    ; clear Z80 RESET
tst.b ($A11100)              ; test Z80 BUSACK, but incorrectly tests the full byte
beq -8                       ; backwards logic, should be `bne`

My guess is that this depends on the unused bits in the bus arbiter registers reading open bus instead of 0, since based on this post only one line of the data bus is connected to these registers: https://gendev.spritesmind.net/forum/viewtopic.php?p=35217#p35217

It doesn't need precise open bus emulation, only for the bits to not all read 0.