Skip to content

MMC3 support

One of the bonus assignments is to implement an MMC3 mapper, but the current PPU lacks the features needed to make that possible.

The following features are required to get MMC3 running at all, and relatively easy to add:

  • Allow the CPU to change the PPU mirroring mode
  • Allow the CPU to get the current scanline

The following features are required to get MMC3 games like SMB3, megaman 3, and Kirby's Adventure to run without severe graphical glitches, and will require a major overhaul of how the PPU is emulated:

  • Make writes to PPUADDR change the scroll and nametable registers
  • Make the PPU assert address line A12 in a cycle-accurate way