Memory Management Controller
Con il nome di Memory Management Controller o Multi-Memory Controller[1] (MMC) vengono indicati una serie di differenti chip progettati da diversi sviluppatori di giochi per essere utilizzati nelle cartucce della console Nintendo Entertainment System (NES). Questi chip incrementavano le capacità della console permettendo di creare dei giochi con caratteristiche che non potevano essere offerte dal NES originale.
I primi giochi usciti per il NES contenevano infatti solo un chip dati denominato NROM che altro non era se non una ROM, o memoria non volatile, in cui erano immagazzinati sia il codice che la parte grafica del gioco. All'epoca, però, le ROM avevano una capienza limitata (al massimo 256 kbit, ossia 32 kB) e per questo motivo i giochi avevano pochi dettagli.[1] Per ovviare a questo limite col tempo sia Nintendo che altri sviluppatori utilizzarono diverse tecniche per poter immagazzinare più dati di quelli che il NES di serie potesse gestire.
Con l'avvento degli emulatori del NES i software scritti per emulare questi chip divennero noti come "mappatori" (mappers).
Elenco dei chip MMC
Elenco dei principali MMC utilizzati nelle cartucce del NES.
Chip Nintendo
UNROM/UOROM
- Giochi in cui è stato usato: Pro Wrestling,[1] Ikari Warriors, Mega Man, Contra
I primi MMC utilizzati nelle cartucce prodotte da Nintendo furono l'UNROM e l'UOROM,[2] realizzati ricorrendo a chip TTL della serie 7400.[1] Essi dividevano i dati del gioco in banchi da 16 kB, che venivano alternati in modo che un banco fosse sempre visibile alla CPU. Invece che usare un chip ROM dedicato al solo immagazzinamento della grafica (chiamato "CHR" da Nintendo) i giochi che usavano questo MMC immagazzinavano tali dati nella ROM contenente anche il codice programma e li copiavano in una RAM durante l'esecuzione del gioco.[1]
MMC1
- Giochi in cui è stato usato: The Legend of Zelda, Metroid ed altri
L'MMC1[3] fu il primo MMC di tipo ASIC. Esso supportava il salvataggio delle partite e lo scorrimento multidirezionale.[1] Il chip fu realizzato in almeno 5 versioni differenti, che differivano le une dalle altre per lievi differenze: MMC1A, MMC1B1, MMC1B2, MMC1B3 e MMC1C.
L'MMC1 permetteva di alternare diversi banchi di memoria: la ROM del codice programma poteva essere presentata alla CPU in banchi da 16 o 32 kB, mentre la ROM della grafica in banchi da 4 o 8 kB. Una caratteristica particolare di questo chip era che gestiva i dati in input in modalità seriale mediante un registro a scorrimento interno per cui i comandi dovevano essere inviati bit per bit.[3]
MMC2
- Giochi in cui è stato usato: Mike Tyson's Punch-Out!!
L'MMC2 fu usato solo nel gioco Mike Tyson's Punch-Out!! e nella successiva versione dove fu tolto Mike Tyson come boss finale. Il mapper poteva selezionare un solo banco da 8 kB della ROM del codice programma (gli altri 24 kB rimanevano bloccati) e la ROM della grafica poteva essere gestita come 2 banchi da 4 kB ciascuno, che venivano alternati in automatico non appena il processore video del NES cercava di accedere a dati memorizzati nel banco inattivo, scaricando così la CPU dal compito di dover gestire il bank switching via software.[4]
MMC3
- Giochi in cui è stato usato: Super Mario Bros 2, Super Mario Bros. 3 ed altri
L'MMC3 fu uno degli MMC di Nintendo più utilizzati. Esso implementava un contatore IRQ sulla linea di scansione del video in modo da rendere più facile eseguire uno scorrimento su una porzione dell'immagine (un esempio è lo scorrimento dello sfondo dello schermo mantenendo una parte dell'immagine ferma, tipo la zona dei punti e degli indicatori di stato del gioco) nonché la possibilità di selezionare 2 banchi da 8 kB di ROM del codice programma e 2 banchi da 2 kB più 4 banchi da 1 kB l'uno di ROM grafica.[5]
MMC4
- Giochi in cui è stato usato: Fire Emblem, Fire Emblem Gaiden e Famicom Wars
Questo MMC fu usato solo in 3 giochi, tutti pubblicati solo per il Famicom, la versione giapponese del NES, e tutti sviluppati da Intelligent Systems. L'MMC4 era quasi identico all'MMC2 da cui differiva solo per il fatto che i banchi erano da 16 kB invece che da 8 kB e per la presenza di una memoria SRAM alimentata a batteria per il salvataggio delle partite.[6]
MMC5
- Giochi in cui fu usato: Castlevania III: Dracula's Curse, Just Breed, Metal Slader Glory ed altri
L'MMC5 fu non solo il più grande MMC sviluppato da Nintendo ma anche il più costoso, cosa che lo rese poco utilizzato nelle cartucce: tra gli sviluppatori di videogiochi, solo Koei lo usò regolarmente. Il chip aveva 1 kB di RAM aggiuntiva, dei canali audio aggiuntivi (2 onde quadre), il supporto per lo scorrimento verticale di una porzione dell'immagine, capacità grafiche superiori (supportava fino a 16.384 tile diverse contro le 256 permesse dal chip grafico del NES e permetteva di usare tile per lo sfondo di 8×8 pixel ognuna con il proprio colore invece che 1 solo colore per ogni gruppo di 2×2 tile), bank switching delle ROM del codice programma e della grafica personalizzabile, ed un contatore IRQ sulla linea di scansione.[7]
MMC6
- Giochi in cui è stato usato: StarTropics, Zoda's Revenge: StarTropics II
Questo MMC è simile all'MMC3, rispetto al quale presenta 1 kB di RAM aggiuntiva dotata di una batteria tampone per salvare le partite.[8]
Famicom Disk System
- Giochi in cui è stato usato: Arumana no Kiseki, Ai Senshi Nicol, Bio Miracle Bokutte Upa, Exciting Basket ed altri
L'ASIC del Famicom Disk System's ASIC era un chip che offriva anche la sintesi sonora.
AxROM
- Giochi in cui fu usato: Battletoads, Wizards & Warriors, Cobra Triangle, Jeopardy!
Sotto il nome generico di AxROM si inseriscono diversi MMC di Nintendo: AMROM, ANROM AN1ROM e AOROM. Il capostipite fu sviluppato da Chris Stamper di Rare e poi prodotto da Nintendo. Questi MMC si trovano nei giochi sviluppati da Rare, Tradewest, GameTek, Acclaim e Milton Bradley:Errore nelle note: </ref>
di chiusura mancante per il marcatore <ref>
Chip Konami
- VRC2
- VRC6
- VRC7
Chip Namco
- NAMCO106
Chip Sunsoft
- FME-7
Chip Active Enterprises Ltd.
- 228
Riferimenti
- ^ a b c d e f Why your game paks never forget, in Nintendo Power, n. 20, Marzo/Aprile 1991, pp. 28-31.
- ^ Caratteristiche dell'UxROM, su wiki.nesdev.com, NESdevWiki. URL consultato il 03/03/2011.
- ^ a b Caratteristiche dell'MMC1, su wiki.nesdev.com, NesDev.org. URL consultato il 03/03/2011.
- ^ Caratteristiche dell'MMC2, su wiki.nesdev.com, NesDev.org. URL consultato il 03/03/2011.
- ^ Caratteristiche dell'MMC3, su wiki.nesdev.com, NesDev.org. URL consultato il 03/02/2011.
- ^ Caratteristiche dell'MMC4, su wiki.nesdev.com, NesDev.org. URL consultato il 03/03/2011.
- ^ Nintendo MMC5 Caratteristiche dell'MMC5 , su wiki.nesdev.com, NesDev.org. URL consultato il 03/03/2011.
- ^ Caratteristiche dell'MMC6, su wiki.nesdev.com, NesDev.org. URL consultato il 03/03/2011.