jsgroth / jgenesis

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

werewolf_fusion.bin (MD) has black screen during demo #99

Open benderscruffy opened 2 months ago

benderscruffy commented 2 months ago

werewolf_kstorm.tar.gz

jsgroth commented 2 months ago

Part of this is I think similar to #82 where the demo expects PAL video timings but doesn't specify a region in the cartridge header, so the emulator defaults to NTSC/U unless the timing/display mode is forced to PAL. That doesn't completely fix it though - the demo crashes shortly into the wolf animation. werewolf_sega.bin fails in the same way.

This demo seems to be extremely sensitive to VDP DMA and write timing due to some sloppy code around disabling and re-enabling horizontal interrupts. I found an issue where VRAM fill DMAs are taking way more cycles than they're supposed to but fixing that doesn't fix the demo - it causes the DMA/writes to finish too early instead of too late (at least based on what the demo seems to expect).