My IRQ counter code for MMC3 seems to be working well. For instance, the screen splits nicely in Super Mario 3 to allow for the game stats HUD at the bottom to be rendered independently of the scrolling level. I have not encountered any issues per se (I've yet to test MMC3 extensively on this), but I do have a question concerning the phrase "acknowledge any pending interrupts" as in the case of the IRQ disable register in MMC3

Acknowledge means that it TURNS OFF the IRQ pin. Otherwise it would keep triggering interrupts over and over again.

To clarify, the IRQ signal is level-sensitive (compared to NMI, which is edge-triggered) - once the timer expires, the IRQ signal is activated, and the CPU will jump to the IRQ handler at every possible opportunity (i.e. whenever the "I" flag is clear). To prevent the CPU from getting stuck in a loop rerunning the IRQ handler over and over, it needs to tell the hardware that generated the interrupt that it's done handling it and that it can deactivate the signal, and for the MMC3 this involves writing any value to $E000.

_________________Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.

Who is online

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum