Previous: UNROM

As NES cartridge boards became more complex, with more mapper chips, they became larger and more expensive to manufacture. Nintendo's desire for a cartridge that could do fast graphics swapping (without the UNROM memory bandwidth limitation), have larger memory, support battery-backed work RAM, and still remain affordable led it to leave 7400-series logic gates behind and design a custom mapper ASIC called MMC1, the first custom memory management unit to be placed on an NES cartridge.

It has four five-bit input ports. To reset each port, write $80 and then $00 to the port's address. To set a port, write the bits in little-endian order to D0 of the port. The sequence "store, lsr, store, lsr, store, lsr, store, lsr, store" is a common sight in disassembled MMC1 software.

The MMC1 performs only partial decoding on its port addresses; for example, a write to any address between $8000 and $9fff inclusive will write to port $8000.

43210   MMC1 Port $8000 (control)
CSSMM
|||||
|||++-- Mirroring style (00 = mirror all nametables from PPU $2000;
|||                      10 = horizontal mirroring; 11 = vertical mirroring)
|++---- Program bank size (00 = 32 KB; 10 = 16 KB at $8000; 11 = 16 KB at $C000)
+------ Graphics bank size (0 = swap 4 KB prg banks; 1 = swap 4 KB chr banks)

43210   MMC1 Port $A000 (chr bank 0)
PCCCC
|||||
|++++-- VROM bank to be swapped into PPU $0000
+------ Used in large Japanese MMC1 carts; see Firebug's doc

43210   MMC1 Port $C000 (chr bank 1)
PCCCC
|||||
|++++-- VROM bank to be swapped into PPU $1000
+------ Used in large Japanese MMC1 carts; see Firebug's doc

43210   MMC1 Port $E000 (prg bank)
xCCCC
 ||||
 ++++-- ROM bank to be swapped into $8000 or $C000

MMC1 board names match the shell pattern S*ROM. Some have VRAM instead of VROM; the only advantage these boards have over UNROM is the presence of 8 KB of work RAM at $6000, possibly battery backed.

Examples of MMC1 games: Nintendo's Metroid, Legend of Zelda, Tetris, and Dr. Mario; Rad Racer and Mega Man 2

Next: MMC2
Return to iNES Mappers Metanode

© 2001 Damian Yerrick. Verbatim copying and redistribution are permitted.

Log in or register to write something here or to contact authors.