JRoatch wrote:So this is really bizarre and I can't even begin to imagine what the bug is.
When I play this on fceux, there's background music.
When I play this on console via Power Pak, there's no background music, but yet there is sound effects!
Usually the only differences I ever see between emulator and console are scrolling jitters and corrupted palettes and tiles due to writing to an active PPU outside of vblank.
But in this case, an entire chunk of logic is somehow skipped over, and without affecting game play.
The game uses "Main thread only" with NMI just incrementing a flag, this also uses a sprite zero hit scroll split.
if I wanted to debug this, how I should begin?
Using FCEUX's "Config > Ram Init" option, I find if I initialize RAM to $00 the BGM plays, if I initialize to $FF it does not.
I don't know if there's much to debug beyond that, but basically this ROM does not appear to initialize most of RAM, aside from wiping its OAM upload page at $0200, and also clearing ZP. Thus, many variables end up being used before having been set to any specific value.
(I personally like to leave FCEUX's RAM Init option set to "random", and strongly recommend
initializing as much of RAM as is practical at startup.)
Edit: I just realized the "Ram init" option is not in 2.2.3, it's only in more recent interim builds: download page