|
While working some more on my emulator, I noticed that it now crashes on that same level. The problem with it is this: On the last scanline of the status bar, the game updates $2006 for the second time (which immediately affects the VRAM address, or PPU registers if you will) right after the *beginning* of HBlank. If the write occurs just a few cycles before HBlank, the screen will be scrolled vertically, and the primary object collision will *not* take place. Therefore, if your emulator's timing is off by a few cycles, the game will stop working.
Here is an incomplete version of the source code of Battletoads (should be enough for examining this phenomenom though):
http://www12.brinkster.com/hydesprojects/gamessources/battletoads(u).zip
hydesprojects.cjb.net
|