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.
[1]: 29 The MMC1 is Nintendo's first custom MMC integrated circuit to incorporate support for saved games and multi-directional scrolling configurations.
An unusual feature of this memory controller is that its input is serial, rather than parallel, so 5 sequential writes (with bit shifting) are needed to send a command to the circuit.
A single 8KB bank of program ROM can be selected (with the remaining 24KB locked) and character ROM can be selected in two pairs of 4KB banks, which would be automatically switched when the video hardware attempts to load particular graphic tiles from memory, thus allowing a larger amount of graphics to be used on the screen without the need for the game itself to manually switch them.
It adds an IRQ timer to allow split screen scrolling without the sacrifice of sprite 0, along with two selectable 8KB program ROM banks and two 2KB+four 1KB selectable character ROM banks, which allows easy instant swapping of sprite and tile data.
The chip has 1KB of extra RAM, two extra square wave sound channels, one extra PCM sound channel, support for vertical split screen scrolling, improved graphics capabilities (making 16,384 different tiles available per screen rather than only 256, and allowing each individual 8x8-pixel background tile to have its own color assignment instead of being restricted to one color set per 2x2 tile group), highly configurable program ROM and character ROM bank switching, and a scanline-based IRQ counter.
The A*ROM MMC, named after the AMROM, ANROM, and AOROM cartridge boards that use it, was developed by Chris Stamper of Rare, and manufactured by Nintendo.
[11] Nintendo maintained tight control over internationally-released cartridge hardware and did not allow third parties to use their own PCBs and mappers.
Since the Nintendo Entertainment System by design does not allow cartridges to add additional sound channels, the Famicom version's soundtrack was reworked to follow those specifications; the soundtrack for the Western version utilizes the five stock sound channels built into the NES.
[16] The VRC7 is an advanced MMC chip from Konami, supporting bank switching and IRQ counting equivalent to the VRC6, as well as containing a YM2413 derivative providing 6 channels of 2-op FM synthesis.
It also contains hardware to generate IRQ signals after a specified number of CPU clock cycles, thus achieving split-screen effects with minimal use of processing power.
[citation needed] This version of the FME-7 contains a variant of the widely used Yamaha YM2149 (SSG), a derivative of the popular AY-3-8910 chip.
[citation needed] Some individual (homebrew) and unlicensed developers have made custom MMCs for the NES, most of which simply expand the available memory.
Unlike most unlicensed MMCs, it greatly expands upon the feature set of the stock NES, allowing it to use 8x1 attributes for using more colors while also featuring FMV playback, expanded audio (8 channels of PCM audio with an echo buffer, wavetable support, and smooth sinc function based interpolation) and direct access to 768M of ROM (indirectly 2.8G) and 1M of RAM.