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 e gestire più dati di quelli che il NES potesse leggere.
Con l'avvento degli emulatori del NES i software scritti per emulare questi chip divennero noti come "mappatori" (mappers).
Elenco dei chip MMC
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 l'MMC UNROM/UOROM 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 mappatore realizzato in un circuito integrato a supportare 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
- MMC4
- MMC5
- MMC6
- Famicom Disk System
- AOROM
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.