I just checked on my emu and that game uses MMC3 IRQs. It could be one of the following things that I can think of (if it is in fact an MMC3 problem):
- It could be that none of the emulators you tested are using the appropriate IRQ behavior for MMC3 for that particular game. There are 2 types of behaviors for the IRQ output of MMC3. No one has decided on how to name these 2 behaviors yet so I'll just call them "normal" and "alternate". There is nothing in the game header to tell you which behavior to use. You have to do it by hash/CRC.
- It could actually be something to do with new behavior that we've (Blargg) just (today) discovered in MMC3. Found here:
http://nesdev.com/bbs/viewtopic.php?t=6467 That link also explains the 2 types of IRQ behaviors. Mind you that RevA vs. RevB is _not_ a good name for that post. It should say something more like "normal" vs. "alternate" as I mentioned above.
Although it may not be an MMC3 problem at all. However, I would think that a CPU/PPU core bug would be unlikely especially since _all_ of the emulators you tried did the same thing. I think it's more likely to be an MMC3 mapper bug. But I am _NOT_ a mapper expert.
Unfortunately, I couldn't even get to level 2 to see if the glitching happened on my emu - I keep dying! And I don't have game genie codes implemented yet. Haha.