Multi-memory controllers or memory management controllers (MMC) are different kinds of special chips designed by various video game developers for use in Nintendo Entertainment System (NES) cartridges. These chips extend the capabilities of the original console and make it possible to create NES games with features the original console cannot offer alone. The basic NES hardware supports only 40KB of ROM total, up to 32KB PRG and 8KB CHR, thus only a single tile and sprite table are possible. This limit was rapidly reached within the Famicom's first two years on the market and game developers began requesting a way to expand the console's capabilities. In the emulation community these chips are also known as mappers. List of MMC chips CNROM Manufacturer: Nintendo Games: Gradius, Ghostbusters, Gyruss, Arkanoid CNROM is the earliest banking hardware introduced on the Famicom, appearing in early 1986. It consists of a single 7400 series discrete logic chip. CNROM supports a single fixed PRG bank and up to eight CHR banks for 96KB total ROM. Some third party variations supported additional capabilities. Many CNROM games store the game level data in the CHR ROM and blank the screen while reading it. UNROM Manufacturer: Nintendo Games: Pro Wrestling, Ikari Warriors, Mega Man, Contra, Castlevania Early NES mappers are composed of 7400 series discrete logic chips. UNROM appeared in late 1986. It supports a single fixed 16KB PRG bank, the rest of the PRG being switchable. Instead of a dedicated ROM chip to hold graphics data (called CHR by Nintendo), games using UNROM store graphics data on the program ROM and copy it to a RAM on the cartridge at run time. MMC1 Manufacturer: Nintendo Games: The Legend of Zelda, Mega Man 2, Metroid, Godzilla: Monster of Monsters, Teenage Mutant Ninja Turtles, and more. The MMC1 is Nintendo's first custom MMC integrated circuit to incorporate support for saved games and multi-directional scrolling configurations. The chip comes in at least five different versions: MMC1A, MMC1B1, MMC1B2, MMC1B3 and MMC1C. The differences between the different versions are slight, mostly owing to savegame memory protection behavior. The MMC1 chip allows for switching of different memory banks. Program ROM can be selected in 16KB or 32KB chunks, and character ROM can be selected in 4KB or 8KB chunks. An unusual feature of this memory controller is that its input is serial, rather than parallel, so 5 sequential writes (with bit shifting) are