Mickey in Letterland/Numberland IRQs

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Mickey in Letterland/Numberland IRQs
by on (#217444)
I added Acclaim's IRQ timing, of IRQ counter clocking on falling edges of A12. This way, Mickey games work much better. From my attempts of getting this game working fine, I'd like some advice on it. Ages ago, someone said that the only difference is about Acclaim's IRQ triggered 4 cycles later if compared to MMC3. That's NOT the only difference from my attempts.

Is Numberland the same board/IRQ system of Letterland? Numberland expects the IRQ counter to be always clocked, even after a IRQ counter reset (so, the new value would be irq_latch-1), but Letterland expects the "normal" behavior - of checking irq_counter == 0; else, decrement it. Well, if I apply the Numberland behaviour, Letterland has a scorebar of 1 scanline shorter in size.

If I ignore $2006 writes, there's no scorebar shaking.
If I fix Letterland, Numberland is glitched by 1 scanline (IRQ timing is off by 1).
If I fix Numberland, Letterland is the glitched one, but I believe it's what a NES console does.

EDIT: it was a mistake in my code.
Re: Mickey in Letterland/Numberland IRQs
by on (#217456)
Mickey's Safari in Letterland uses Acclaim's MC-ACC chip (mapper 4 submapper 3), Mickey's Adventures in Numberland uses a regular MMC3C chip (mapper 4 submapper 0). Implement MC-ACC by raising IRQ four PPU cycles after PA12 goes high (versus 0 on MMC3) and by ignoring further PA12 rises for 35 PPU cycles (versus 8 on MMC3). Mickey's Safari in Letterland's scorebar seems to depend on the latter aspect.