Memory Management Controller

Da Wikipedia, l'enciclopedia libera.

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[modifica | modifica wikitesto]

Elenco dei principali MMC utilizzati nelle cartucce del NES.

Chip Nintendo[modifica | modifica wikitesto]

UNROM/UOROM[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

L'MMMC3, uno degli MMC più usati.

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

  • 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[modifica | modifica wikitesto]

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:[9] essi usano banchi di 32 kB della ROM del codice programma ed un CHR RAM. A differenza di altri chip, può eseguire il mirroring dello schermo.[9]

Chip Konami[modifica | modifica wikitesto]

Questi chip furono sviluppati per essere utilizzati prevalentemente nelle cartucce commercializzate in Giappone e solo pochi negli ultimi anni di vita del NES furono utilizzati in alcuni giochi venduti all'estero.

VRC2[modifica | modifica wikitesto]

Il VRC2 (Virtual Rom Controller) era un MMC sviluppato da Konami che permetteva di suddividere la ROM del codice programma in banchi da 8 kB e la ROM grafica in banchi da 1 kB nonché di effettuare il mirroring dello schermo. Questo chip fu prodotto in 2 versioni, VRC2a e VRC2b.[10]

VCR4[modifica | modifica wikitesto]

Il VCR4.

Il VCR4 era quasi identico al VCR2, rispetto al quale aveva un contatore basato su un interrupt ed un selettore a 5 bit per le pagine della memoria del codice programma.[11]

VRC6[modifica | modifica wikitesto]

Il VRC6 era un MMC evoluto: supportava il bank switching sia della ROM del codice sia di quella della grafica, aveva un contatore IRQ basato sulla linea di scansione ed integrava un generatore sonoro programmabile capace di fornire 3 canali audio supplementari (con 2 onde quadre ed 1 onda a dente di sega). Fu usato nel gioco Akumajou Densetsu, la versione giapponese di Castlevania III: Dracula's Curse la cui versione per i mercati occidentali utilizzava l'MMC5 di Nintendo: a differenza del Famicon, il NES non era in grado di gestire i generatori sonori integrati nelle cartucce per cui la colonna sonora del gioco fu rivista per poter usare solo i canali audio forniti dalla console.[12]

VRC7[modifica | modifica wikitesto]

Il VRC7 integrava un coprocessore audio per la sintesi FM.

Il VRC7 fu un MMC molto avanzato: infatti non soltanto supportava l'alternanza dei banchi di memoria ed integrava il contatore IRQ come il VRC6 ma offriva anche un coprocessore audio derivato dallo Yamaha YM2413 che offriva 6 canali con sintesi FM.[13] Le capacità audio del VRC7 furono utilizzate solo nel gioco Lagrance Point: anche la versione giapponese di Tiny Toon Adventures 2 integrava questo MMC ma il gioco non fece uso del chip sonoro aggiuntivo.[14]

Chip Namco[modifica | modifica wikitesto]

  • Giochi in cui è stato usato: Erika to Satoru no Yumebouken, Final Lap, King of Kings ed altri, tutti rilasciati solo in Giappone

Il NAMCO106 era un evoluto MMC che offriva 8 canali audio supplementari con sintesi sonora con campionamento a 4 bit e aliasing che cresceva all'aumentare del numero dei canali attivi.

Chip Sunsoft[modifica | modifica wikitesto]

FME-7[modifica | modifica wikitesto]

L'FME-7 era un MMC sviluppato da Sunsoft per i giochi su cartuccia per il NES ed il Famicom. Permetteva di gestire la ROM del programma in banchi da 8 kB e la ROM grafica in banchi da 1 kB; conteneva inoltre la circuiteria per poter generare segnali di IRQ dopo uno specifico numero di cicli di clock della CPU, alleggerendo quest'ultima dai compiti di gestione degli effetti di divisione dello schermo.

SUNSOFT 5B[modifica | modifica wikitesto]

  • Giochi in cui è stato usato: Gimmick!

Questo MMC era un'evoluzione dell'FME-7, rispetto al quale conteneva un generatore sonoro capace di 3 onde quadre derivato dall'AY-3-8910 di General Instrument. Fu suato solo nel gioco Gimmik! per Famicom.

Chip non riconosciuti da Nintendo[modifica | modifica wikitesto]

Alcuni produttori di giochi per il NES che operavano senza licenza Nintendo produssero degli MMC personalizzati che, generalmente, espandevano solo la quantità di memoria gestibile dalla console.

Fra questi, si annovera il 228 di Active Enterprises, un chip che gestiva solo il bank switching, usato nei giochi Action 52 e Cheetahmen II. La versione montata su Action 52 conteneva un registro a 16 bit che memorizzava la voce selezionata nel menu all'uscita del gioco.

Note[modifica | modifica wikitesto]

  1. ^ a b c d e f Why your game paks never forget in Nintendo Power, nº 20, marzo/aprile 1991, pp. 28-31.
  2. ^ Caratteristiche dell'UxROM, NesDev.org. URL consultato il 03/03/2011.
  3. ^ a b Caratteristiche dell'MMC1, NesDev.org. URL consultato il 03/03/2011.
  4. ^ Caratteristiche dell'MMC2, NesDev.org. URL consultato il 03/03/2011.
  5. ^ Caratteristiche dell'MMC3, NesDev.org. URL consultato il 03/02/2011.
  6. ^ Caratteristiche dell'MMC4, NesDev.org. URL consultato il 03/03/2011.
  7. ^ Nintendo MMC5 Caratteristiche dell'MMC5, NesDev.org. URL consultato il 03/03/2011.
  8. ^ Caratteristiche dell'MMC6, NesDev.org. URL consultato il 03/03/2011.
  9. ^ a b Caratteristiche dell'AxROM, NesDev.org. URL consultato il 04/03/2011.
  10. ^ Caratteristiche del VRC2, NesDev.org. URL consultato il 04/03/2011.
  11. ^ Caratteristiche del VCR2, NesDev.org. URL consultato il 19/09/2011.
  12. ^ Caratteristiche del VRC6, NesDev.org. URL consultato il 04/03/2011.
  13. ^ L'audio del VRC7, NesDev.org. URL consultato il 04/03/2011.
  14. ^ Caratteristiche del VRC7, NesDev.org. URL consultato il 04/03/2011.

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]