Re: Nine sprites overflow doesn't work in the beginning
Posted: Sat Apr 15, 2017 12:49 pm
Apologies if this information has been mentioned before, but the last time I remember hearing anything regarding the OAM DRAM refresh bug, this information was how the bug worked.
TL;DR: When rendering is disabled in the middle of a scanline (between pixels 64-255) that has any of sprites 0-5 on it, the DRAM refresh bug occurs.
It's really interesting to hear that pressing the reset button interrupts the sprite evaluation logic in the same way that disabling rendering does, to where the DRAM refresh bug occurs the first time the game switches rendering back on, but it makes sense and I suppose it should've been a logical conclusion.
A workaround to fix the title screen would be very easy, just display one blank frame as part as your reset routine. A full vblank-to-vblank frame, to be sure that the relevant sprite logic has run and is terminating safely before rendering is turned back off.
TL;DR: When rendering is disabled in the middle of a scanline (between pixels 64-255) that has any of sprites 0-5 on it, the DRAM refresh bug occurs.
It's really interesting to hear that pressing the reset button interrupts the sprite evaluation logic in the same way that disabling rendering does, to where the DRAM refresh bug occurs the first time the game switches rendering back on, but it makes sense and I suppose it should've been a logical conclusion.
A workaround to fix the title screen would be very easy, just display one blank frame as part as your reset routine. A full vblank-to-vblank frame, to be sure that the relevant sprite logic has run and is terminating safely before rendering is turned back off.