Jump to content

Memory management controller (Nintendo): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
UNROM: Keeping naming consistency with entirety of article
(222 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
{{Use dmy dates|date=August 2013}}
'''Multi-Memory Controllers''' ('''MMC''') are different kinds of special [[Microprocessor|chips]] designed by various [[video game developers]] for use in [[Nintendo Entertainment System]] (NES) [[cartridge (electronics)|cartridge]]s. These chips extended the capabilities of the original [[Video game console|console]] and made it possible to create NES games with features the original console could not offer.
[[File:NES-Console-Set.jpg|thumb|300px|right|Nintendo developed its MMC chip line for use in the NES's cartridges to offload processing and expand the system's capabilities.]]
'''Multi-memory controllers''' or '''memory management controllers'''<ref name="np">{{cite journal | title=Why Game Paks Never Forget | work=Nintendo Power | publisher=Nintendo | issue=20 | date=Mar–Apr 1991 | pages=28–31}}</ref> ('''MMC''') are different kinds of special [[Microprocessor|chips]] designed by various [[video game developers]] for use in [[Nintendo Entertainment System]] (NES) [[cartridge (electronics)|cartridge]]s. These chips extend the capabilities of the original [[Video game console|console]] and make it possible to create NES games with features the original console can not offer alone.


With the advent of NES [[emulator]]s, the code written to emulate these chips became known as ''mappers''.
With the advent of NES [[emulator]]s, the code written to emulate these chips became known as ''mappers''.


==List of MMC chips==
==List of MMC chips==

This is an incomplete list of memory mapping chips. There are many different chips, and many variants on common chip designs, some of which were used infrequently (in some cases, only once).
===UNROM===
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Pro Wrestling (Nintendo Entertainment System)|Pro Wrestling]]'',<ref name="np"/>{{rp|29}} ''[[Ikari Warriors]]'', ''[[Mega Man (video game)|Mega Man]]'', ''[[Contra (video game)|Contra]]''

Early NES MMCs are composed of [[7400 series]] discrete logic chips.<ref name="np"/>{{rp|29}} The UNROM, implemented with two such chips, divides the program space into two 16 KB banks. The MMC allows a program to [[Bank switching|switch one bank]] while keeping one bank always available.<ref name="nesdevwiki_unrom">[http://wiki.nesdev.com/w/index.php/UxROM UxROM from NESdevWiki] Retrieved on 2009-11-21.</ref> 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.<ref name="np"/>{{rp|29}}


===MMC1===
===MMC1===
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[The Legend of Zelda]]'', ''[[Metroid]]'' [[et al.]]
*Games used in: ''[[The Legend of Zelda (video game)|The Legend of Zelda]]'', ''[[Mega Man 2]]'', ''[[Metroid]]'', ''[[Godzilla: Monster of Monsters]]'', ''[[Teenage Mutant Ninja Turtles (NES game)|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.<ref name="np"/>{{rp|p.30}}
The MMC1 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 allowed for switching of different memory banks. Program ROM could be selected in 16KB or 32KB chunks, and character ROM could be selected in 4KB or 8KB chunks. An unusual feature of this memory controller was that its input was serial, rather than parallel, so 5 sequential writes (with bit shifting) were needed to send a command to the circuit.
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 [[Read-only memory|ROM]] can be selected in 4KB or 8KB chunks. An unusual feature of this memory controller is that its input is [[Serial communication|serial]], rather than [[Parallel communication|parallel]], so 5 sequential writes (with [[bit shifting]]) are needed to send a command to the [[Integrated circuit|circuit]].<ref>[http://wiki.nesdev.com/w/index.php/MMC1 MMC1 from NESdevWiki] Retrieved on 2009-11-21.</ref>


===MMC2===
===MMC2===
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Mike Tyson's Punch-Out!!]]''
*Games used in: ''[[Mike Tyson's Punch-Out!!]]''
The MMC2 is only used in ''Mike Tyson's Punch-Out!!'' and the later rerelease which removed [[Mike Tyson]]. A single 8KB bank of program ROM could be selected (with the remaining 24KB locked) and character ROM could be selected in ''two pairs'' of 4KB banks, which would be automatically switched when the video hardware attempted 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.
The MMC2 is only used in ''Mike Tyson's Punch-Out!!'' and the later rerelease which replaced [[Mike Tyson]]. 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.<ref>[http://wiki.nesdev.com/w/index.php/MMC2 Nintendo MMC2 from NESdevWiki]</ref>


===MMC3===
===MMC3===
[[Image:MMC3B 01.jpg|thumb|right|The MMC3 chip, soldered onto a [[Printed circuit board|PCB]] containing ''Super Mario Bros. 3'' and others.]]
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Super Mario Bros 2]]'', ''[[Super Mario Bros 3]]'' et al.
*Games used in: ''[[Mega Man 3]]'', ''[[Mega Man 4|4]]'', ''[[Mega Man 5|5]]'', ''[[Mega Man 6|6]]'', ''[[Super Mario Bros. 2]]''<sup>NA/EU</sup>, ''[[Super Mario Bros. 3]]'', ''[[Kirby's Adventure]]'', and more.
The MMC3 was Nintendo's most popular MMC chip. It comes in ''MMC3A'', ''B'', and ''C'' revisions. The MMC3 added a [[scanline]] based [[IRQ]] counter to make split screen scrolling easier to perform (mainly to allow the playfield to scroll while the status bar would remain motionless at the top or bottom of the screen), along with two selectable 8KB program ROM banks and two 2KB+four 1KB selectable character ROM banks.
The MMC3 is Nintendo's most popular MMC chip. It comes in MMC3A, B, and C revisions. The MMC3 adds a [[scanline]] based [[Interrupt request|IRQ]] counter to make split screen scrolling easier to perform (mainly to allow the playfield to scroll while the status bar remains motionless at the top or bottom of the screen), along with two selectable 8KB program ROM banks and two 2KB+four 1KB selectable character ROM banks.<ref>[http://wiki.nesdev.com/w/index.php/MMC3 Nintendo MMC3 from NESdevWiki]</ref>


===MMC4===
===MMC4===
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Fire Emblem]]'', ''[[Fire Emblem Gaiden]]'', and ''[[Famicom Wars]]''
*Games used in: ''[[Fire Emblem: Ankoku Ryū to Hikari no Tsurugi|Fire Emblem]]'', ''[[Fire Emblem Gaiden]]'', and ''[[Famicom Wars]]''
This chip is only used in three games, all of which were released only for the [[Famicom]] in [[Japan]]. Functionally, it is nearly identical to the MMC2, where the only difference is that the MMC4 switches program ROM in 16KB banks instead of 8KB banks.
This chip is only used in three games, all of which were released only for the [[Nintendo Entertainment System|Famicom]] in Japan, and were developed by [[Intelligent Systems]]. Functionally, it is nearly identical to the MMC2, with the only difference being that the MMC4 switches program ROM in 16KB banks instead of 8KB banks and has support for a battery-backed SRAM to save game data.<ref>[http://wiki.nesdev.com/w/index.php/MMC4 Nintendo MMC4 from NESdevWiki]</ref>


===MMC5===
===MMC5===
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Castlevania III: Dracula's Curse]]''<sup>NA/EU</sup>, ''[[Just Breed]]'', ''[[Metal Slader Glory]]'', ''[[Gun Sight|Laser Invasion]]'', ''[[Uchuu Keibitai SDF]]'', ''[[Nobunaga no Yabou - Bushou Fuuun Roku|Nobunaga's Ambition II]]'', ''[[Nobunaga no Yabou - Sengoku Gunyuu Den]]'', ''[[Bandit Kings of Ancient China]]'', ''[[Romance of the Three Kingdoms II]]'', ''[[Daikoukai Jidai|Uncharted Waters]]'', ''[[Genghis Khan II: Clan of the Gray Wolf]]'', ''[[Gemfire]]'', ''[[L'Empereur]]'', ''[[Ishin no Arashi]]'', ''[[Shin 4 Nin Uchi Mahjong - Yakuman Tengoku]]''
*Games used in: ''[[Castlevania III: Dracula's Curse]]'' (US/European version), ''[[Just Breed]]'', ''[[Metal Slader Glory]]''

MMC5 was Nintendo's largest mapper. It was also the most expensive, making developers avoid it. The chip has 1 KB of extra [[Random Access Memory|RAM]], extra [[sound channel]]s (two [[square wave]]s), supports ''vertical'' split screen scrolling, improved graphics capabilities (making 16,384 different tiles available per screen rather than only 256, and allowing each individual 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 MMC5 is Nintendo's largest MMC. It was originally also the most expensive. Only [[Koei]] used this chip regularly. The chip has 1 KB of extra [[Random Access Memory|RAM]], three extra [[square wave]], [[PCM]] [[sound channel]]s, 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.<ref>[http://wiki.nesdev.com/w/index.php/MMC5 Nintendo MMC5 from NESdevWiki]</ref>


===MMC6===
===MMC6===
*Manufacturer: [[Nintendo]]
*Manufacturer: [[Nintendo]]
*Games used in: ''[[StarTropics]]'', ''[[Zoda's Revenge: StarTropics II]]''
*Games used in: ''[[StarTropics]]'', ''[[Zoda's Revenge: StarTropics II]]''
The MMC6 is simply an MMC3 with an extra 1 KB of RAM which can be saved with battery backup.
The MMC6 is similar to the MMC3, with an additional 1 KB of RAM which can be saved with battery backup.<ref>[http://wiki.nesdev.com/w/index.php/MMC6 Nintendo MMC6 from NESdevWiki]</ref>

===Famicom Disk System===
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Arumana no Kiseki]]'', ''[[Ai Senshi Nicol]]'', ''[[Big Challenge! Dogfight Spirit]]'', ''[[Bio Miracle Bokutte Upa]]'', ''[[Crackout (video game)|Crackout]]''<sup>JP</sup>, ''[[Double Dribble (video game)|Double Dribble]]''<sup>JP</sup>, ''[[Falsion]]'', ''[[Famicom Tantei Club Part II: Ushiro ni Tatsu Shōjo]]'', ''[[Kid Icarus]]''<sup>JP</sup>, ''[[KiKi KaiKai]]'', ''[[Meikyuu Jiin Dababa]]'', ''[[Metroid]]''<sup>JP</sup>, ''[[Pro Wrestling (NES video game)|Pro Wrestling]]''<sup>JP</sup>, ''[[Relics - Ankoku Yousai]]'', ''[[Risa no Yōsei Densetsu]]'', ''[[Shin Onigashima]]'', ''[[Super Mario Bros. 2: The Lost Levels|Super Mario Bros. 2]]''<sup>JP</sup>, ''[[The Legend of Zelda (video game)|The Legend of Zelda]]'' (FDS release), ''[[The Mysterious Murasame Castle]]'', ''[[Vs. Excitebike]]'', ''[[Yūyūki]]'', ''[[Zelda II: The Adventure of Link]]''<sup>JP</sup>, and more.
The [[Famicom Disk System]]'s [[Application-specific integrated circuit|ASIC]] is an extended audio chip, which supports one channel of single-cycle (6-bit × 64 step) [[table-lookup synthesis|wavetable-lookup synthesis]] with a built in [[phase modulation|phase modulator]] (PM) for sound generation similar to [[frequency modulation synthesis]].

===AOROM===
*Manufacturer: [[Nintendo]]
*Games used in: ''[[Battletoads]]'', ''[[Wizards & Warriors]]'', ''[[Cobra Triangle]]'', ''[[Jeopardy!]]''
The A*ROM MMC, named after the AMROM, ANROM, and AOROM cartridge boards that use it, was developed by [[Chris Stamper]] of [[Rare (company)|Rare Ltd.]], and manufactured by Nintendo. It is found in games developed by Rare for Nintendo, Tradewest, GameTek, Acclaim, and Milton Bradley.<ref>[http://www.parodius.com/~veilleux/boardtable.txt List of NES games with publisher and board]</ref> It uses 32 KB ROM switch and a CHR RAM. Unlike other chips, it uses one screen mirroring.<ref>[http://wiki.nesdev.com/w/index.php/AOROM AOROM – NESdevWiki<!-- Bot generated title -->]</ref>

==Third-party chips==
==Third-party chips==
As Nintendo's NES licensing program allowed North America and Europe distribution to include only first-party hardware in its cartridges, these third party chips were supposed to be used only in Japan. However, some of them had been found in a few North American cartridges as well.
{{expand list}}

===VRC2===
*Manufacturer: Konami
*Games used in: ''[[Contra (video game)|Contra]]''<sup>JP</sup>, ''[[Tiny Toon Adventures (video game)|Tiny Toon Adventures]]''<sup>JP</sup>, ''[[Kid Dracula|Akumajō Special: Boku Dracula-kun]]''
The VRC2 is a chip from Konami that allows program ROM to be switched in 8KB banks, and character ROM to be switched in 1KB banks. This MMC has two known revisions: VRC2a and VRC2b.<ref>[http://wiki.nesdev.com/w/index.php/VRC2 Konami VRC2 from NESdevWiki]</ref>

===VRC4===
[[Image:VRCIV 2-TYPE 01.jpg|thumb|right|200px|The VRC4.]]
*Manufacturer: [[Konami]]
*Games used in: ''[[Crisis Force]]'', ''[[Gradius II]]''<sup>JP</sup>

===VRC6===
===VRC6===
[[Image:vrc6.jpg|thumb|right|200px|The VRC6.]]
*Manufacturer: [[Konami]]
*Manufacturer: [[Konami]]
*Games used in: ''[[Akumajou Densetsu]]'', ''[[Madara]]'', ''[[Esper Dreams II]]''
*Games used in: ''[[Castlevania III: Dracula's Curse|Akumajō Densetsu]]'', ''[[Mōryō Senki MADARA]]'', ''[[Esper Dream|Esper Dream II]]''
The VRC6 was an advanced MMC chip from Konami, supporting bank switching for both program code and graphics as well as a [[scanline]]-based [[IRQ]] counter. The chip also contained support for 3 extra sound channels (two square waves and one [[sawtooth wave]]). It was used in ''Akumajou Densetsu'' (the Japanese version of ''Castlevania III: Dracula's Curse''), while the US version used the MMC5 from Nintendo. Since the NES, unlike the Famicom, did not allow cartridges to add additional sound channels, the soundtrack on the US and European versions had to be rewritten to use the five sound channels built into the NES.
The VRC6 (Virtual Rom Controller) is an advanced MMC chip from Konami, supporting bank switching for both program code and graphics as well as a CPU cycle–based [[Interrupt request|IRQ]] counter, which can also act as a scanline counter. The chip also contains support for three extra sound channels (two [[square wave]]s of eight [[duty cycle]]s each, and one [[sawtooth wave]]). It is used in ''Akumajō Densetsu'' (the Japanese version of ''[[Castlevania III: Dracula's Curse]]''), while the Western version uses the MMC5 from Nintendo. Since the [[Nintendo Entertainment System]] does not allow cartridges to add additional sound channels, the Famicom version's soundtrack was reworked to follow those specifications; thus, the soundtrack on the Western version is implemented by the five sound channels built into the stock NES.


===VRC7===
===VRC7===
[[Image:KVRC7.JPG|thumb|The VRC7 with a post-processor for the FM synthesis]]
*Manufacturer: [[Konami]]
*Manufacturer: [[Konami]]
*Games used in: ''Lagrange Point''
*Games used in: ''[[Lagrange Point (video game)|Lagrange Point]]'', ''Tiny Toon Adventures 2''
The VRC7 was a very advanced MMC chip from Konami, not only supporting bank switching and IRQ counting equivalent to the VRC6 but also containing a [[YM2413]] derivative providing 6 channels of [[FM Synthesis]] audio. This advanced audio was used only in the Famicom game ''Lagrange Point''; while the Japanese version of ''Tiny Toon Adventures 2'' also used the VRC7, it did not make use of the extended audio.
The VRC7 is a very advanced MMC chip from Konami, not only supporting bank switching and IRQ counting equivalent to the VRC6 but also containing a [[YM2413]] derivative providing 6 channels of [[FM Synthesis]] audio. This advanced audio is used only in the Famicom game ''Lagrange Point''; while the Japanese version of ''Tiny Toon Adventures 2'' also used the VRC7, it does not make use of the extended audio.<ref>[http://wiki.nesdev.com/w/index.php/VRC7 Konami VRC7 from NESdevWiki]</ref>

===Namco 163===
*Manufacturer: [[Namco]]
*Games used in: ''[[Erika to Satoru no Yume Bōken]]'', ''[[Final Lap]]'', ''[[King of Kings (1988 video game)|King of Kings]]'', ''[[Mappy Kids]]'', ''[[Digital Devil Story: Megami Tensei II]]'', ''[[Namco Classic Collection Vol. 2]]'', ''[[Romance of the Three Kingdoms (video game series)|Romance of the Three Kingdoms]]'', ''[[Romance of the Three Kingdoms II]]'', ''[[Yokai Dochuki]]'', ''[[Rolling Thunder (video game)|Rolling Thunder]]''<sup>JP</sup>
The 163 has been only used in games exclusive to Japan. Its capabilities were a little better than Nintendo's MMC3. A variant contained extra sound hardware that plays 4-bit wave samples. It supports 1 to 8 extra sound channels, but audible [[aliasing]] appears when a sufficiently large number of channels are enabled.


===FME-7===
===FME-7===
*Manufacturer: [[Sunsoft (company)|Sunsoft]]
*Manufacturer: [[Sunsoft]]
*Games used in: ''[[Batman: Return of the Joker]]'', ''[[Mr. Gimmick]]'', et al.
*Games used in: ''[[Batman: Return of the Joker]]'', ''[[Hebereke]]'', ''[[Gimmick!]]'', and more.
The FME-7 was a memory mapping circuit developed by Sunsoft for use in NES and Famicom cartridges. It allows the program ROM to be switched in 8KB banks and the character ROM to be switched in 1KB banks. It also contains hardware allowing the cartridge to generate [[IRQ]] signals after a specified number of CPU [[clock cycle]]s, thus enabling split-screen effects with minimal use of processing power. A special version of this mapper, labeled as "SUNSOFT 5" rather than "FME-7", contains sound generation hardware which appears to be a subset of the well-known [[General Instrument AY-3-8910]] (3 square waves). This sound generation hardware was used on only one Famicom title &ndash; "''Gimmick!''"
The FME-7 is a memory mapping circuit developed by Sunsoft for use in NES and Famicom cartridges. It allows the program ROM to be switched in 8KB banks and the character ROM to be switched in 1KB banks. It also contains hardware allowing the cartridge to generate [[Interrupt request|IRQ]] signals after a specified number of CPU [[clock cycle]]s, thus enabling split-screen effects with minimal use of processing power. A special version of this MMC, labeled as "SUNSOFT 5B" rather than "FME-7", contains a version of the widely used [[Yamaha YM2149]]. This sound generation hardware is used on only one Famicom title: ''[[Gimmick!]]''.

===SUNSOFT-4===
[[Image:SUNSOFT-4 01.jpg|thumb|right|200px|SUNSOFT-4]]
*Manufacturer: [[Sunsoft]]

==Unlicensed MMCs==
Some individual ([[Homebrew (video games)#Nintendo Entertainment System (NES)|homebrew]]) and unlicensed developers have made custom MMCs for the NES, most of which simply expand the available memory.

===228===
*Manufacturer: [[Active Enterprises]]
*Games used in: ''[[Action 52]]'', ''[[Cheetahmen II]]''
228 is a simple bank switching MMC developed for use in the notoriously poor-quality games ''Action 52'' and ''Cheetahmen II''. It does not have a nametable control bit. In the ''Action 52'' multicart, it also contains a small 16-bit register area that contains the old menu selection when exiting a game.

==See also==
* [[List of Super NES enhancement chips]]

== References ==
{{multiple issues |
{{Refimprove|date=September 2007}}
{{One source|date=May 2014}}
}}
{{reflist | 30em}}

==External links==
*{{URL|http://emu-docs.org/NES/Mappers/mappers.txt | Comprehensive NES Mapper Document v0.80 by \Firebug\}}
*{{URL|http://emu-docs.org/NES/Mappers/nesmapper.txt | Bigass NES Mapper List 0.1}}


[[Category:Microprocessors]]
[[Category:Integrated circuits]]
[[Category:Memory management]]

Revision as of 10:56, 14 October 2015

Nintendo developed its MMC chip line for use in the NES's cartridges to offload processing and expand the system's capabilities.

Multi-memory controllers or memory management controllers[1] (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 can not offer alone.

With the advent of NES emulators, the code written to emulate these chips became known as mappers.

List of MMC chips

UNROM

Early NES MMCs are composed of 7400 series discrete logic chips.[1]: 29  The UNROM, implemented with two such chips, divides the program space into two 16 KB banks. The MMC allows a program to switch one bank while keeping one bank always available.[2] 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.[1]: 29 

MMC1

The MMC1 is Nintendo's first custom MMC integrated circuit to incorporate support for saved games and multi-directional scrolling configurations.[1]: p.30  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 needed to send a command to the circuit.[3]

MMC2

The MMC2 is only used in Mike Tyson's Punch-Out!! and the later rerelease which replaced Mike Tyson. 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.[4]

MMC3

The MMC3 chip, soldered onto a PCB containing Super Mario Bros. 3 and others.

The MMC3 is Nintendo's most popular MMC chip. It comes in MMC3A, B, and C revisions. The MMC3 adds a scanline based IRQ counter to make split screen scrolling easier to perform (mainly to allow the playfield to scroll while the status bar remains motionless at the top or bottom of the screen), along with two selectable 8KB program ROM banks and two 2KB+four 1KB selectable character ROM banks.[5]

MMC4

This chip is only used in three games, all of which were released only for the Famicom in Japan, and were developed by Intelligent Systems. Functionally, it is nearly identical to the MMC2, with the only difference being that the MMC4 switches program ROM in 16KB banks instead of 8KB banks and has support for a battery-backed SRAM to save game data.[6]

MMC5

The MMC5 is Nintendo's largest MMC. It was originally also the most expensive. Only Koei used this chip regularly. The chip has 1 KB of extra RAM, three extra square wave, PCM sound channels, 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.[7]

MMC6

The MMC6 is similar to the MMC3, with an additional 1 KB of RAM which can be saved with battery backup.[8]

Famicom Disk System

The Famicom Disk System's ASIC is an extended audio chip, which supports one channel of single-cycle (6-bit × 64 step) wavetable-lookup synthesis with a built in phase modulator (PM) for sound generation similar to frequency modulation synthesis.

AOROM

The A*ROM MMC, named after the AMROM, ANROM, and AOROM cartridge boards that use it, was developed by Chris Stamper of Rare Ltd., and manufactured by Nintendo. It is found in games developed by Rare for Nintendo, Tradewest, GameTek, Acclaim, and Milton Bradley.[9] It uses 32 KB ROM switch and a CHR RAM. Unlike other chips, it uses one screen mirroring.[10]

Third-party chips

As Nintendo's NES licensing program allowed North America and Europe distribution to include only first-party hardware in its cartridges, these third party chips were supposed to be used only in Japan. However, some of them had been found in a few North American cartridges as well.

VRC2

The VRC2 is a chip from Konami that allows program ROM to be switched in 8KB banks, and character ROM to be switched in 1KB banks. This MMC has two known revisions: VRC2a and VRC2b.[11]

VRC4

The VRC4.

VRC6

The VRC6.

The VRC6 (Virtual Rom Controller) is an advanced MMC chip from Konami, supporting bank switching for both program code and graphics as well as a CPU cycle–based IRQ counter, which can also act as a scanline counter. The chip also contains support for three extra sound channels (two square waves of eight duty cycles each, and one sawtooth wave). It is used in Akumajō Densetsu (the Japanese version of Castlevania III: Dracula's Curse), while the Western version uses the MMC5 from Nintendo. Since the Nintendo Entertainment System does not allow cartridges to add additional sound channels, the Famicom version's soundtrack was reworked to follow those specifications; thus, the soundtrack on the Western version is implemented by the five sound channels built into the stock NES.

VRC7

The VRC7 with a post-processor for the FM synthesis

The VRC7 is a very advanced MMC chip from Konami, not only supporting bank switching and IRQ counting equivalent to the VRC6 but also containing a YM2413 derivative providing 6 channels of FM Synthesis audio. This advanced audio is used only in the Famicom game Lagrange Point; while the Japanese version of Tiny Toon Adventures 2 also used the VRC7, it does not make use of the extended audio.[12]

Namco 163

The 163 has been only used in games exclusive to Japan. Its capabilities were a little better than Nintendo's MMC3. A variant contained extra sound hardware that plays 4-bit wave samples. It supports 1 to 8 extra sound channels, but audible aliasing appears when a sufficiently large number of channels are enabled.

FME-7

The FME-7 is a memory mapping circuit developed by Sunsoft for use in NES and Famicom cartridges. It allows the program ROM to be switched in 8KB banks and the character ROM to be switched in 1KB banks. It also contains hardware allowing the cartridge to generate IRQ signals after a specified number of CPU clock cycles, thus enabling split-screen effects with minimal use of processing power. A special version of this MMC, labeled as "SUNSOFT 5B" rather than "FME-7", contains a version of the widely used Yamaha YM2149. This sound generation hardware is used on only one Famicom title: Gimmick!.

SUNSOFT-4

SUNSOFT-4

Unlicensed MMCs

Some individual (homebrew) and unlicensed developers have made custom MMCs for the NES, most of which simply expand the available memory.

228

228 is a simple bank switching MMC developed for use in the notoriously poor-quality games Action 52 and Cheetahmen II. It does not have a nametable control bit. In the Action 52 multicart, it also contains a small 16-bit register area that contains the old menu selection when exiting a game.

See also

References

  1. ^ a b c d e "Why Game Paks Never Forget". Nintendo Power (20). Nintendo: 28–31. March–April 1991.
  2. ^ UxROM from NESdevWiki Retrieved on 2009-11-21.
  3. ^ MMC1 from NESdevWiki Retrieved on 2009-11-21.
  4. ^ Nintendo MMC2 from NESdevWiki
  5. ^ Nintendo MMC3 from NESdevWiki
  6. ^ Nintendo MMC4 from NESdevWiki
  7. ^ Nintendo MMC5 from NESdevWiki
  8. ^ Nintendo MMC6 from NESdevWiki
  9. ^ List of NES games with publisher and board
  10. ^ AOROM – NESdevWiki
  11. ^ Konami VRC2 from NESdevWiki
  12. ^ Konami VRC7 from NESdevWiki