How does the MMC3 detect VBlank?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
How does the MMC3 detect VBlank?
by on (#13675)
TIA

Edit: Title edited

by on (#13676)
What exactly are you referring to?

And what is "TIA" supposed to mean? (as if I didn't know)

by on (#13677)
I just realized how incoherent the title was, it's now fixed.

Is the IRQ counter really paused during Vblank? If so, how? Kevtris' MMC3 page suggests it isn't really a scanline counter at all, just a A12 counter, which would mean it is oblivious to Vblank which of course is reasonable, this however contrasts Martin Korth's info which suggests it counts scanlines by incrementing every 42 A13 toggles, elsewhere I have also heard mention of A13. Which is it?

TIA is "thanks in advance", thanks (no more shorthand ;)

by on (#13680)
It operates entirely via PPU A12, decrementing once on each rising edge (but ignoring rapid pulses above a certain rate, which allows it to only see one toggle per scanline).

The info regarding 42 toggles of A13 was pure speculation and has no basis in reality whatsoever - PPU A13 isn't even connected to the MMC3 to begin with.

by on (#13681)
I see, thanks. Old information like this is dangerous.

This brings me to another question, my ulterior motive: How does the scanline counter on mapper 33 count scanlines and pause during VBlank or is this speculation as well?