Los controladores de memoria múltiple o controladores de gestión de memoria [1] ( MMC ) son distintos tipos de chips especiales diseñados por diversos desarrolladores de videojuegos para su uso en los cartuchos de Nintendo Entertainment System (NES) . Estos chips amplían las capacidades de la consola original y permiten crear juegos de NES con funciones que la consola original no puede ofrecer por sí sola. El hardware básico de NES admite sólo 40 KB de ROM en total, hasta 32 KB PRG y 8 KB CHR, por lo que sólo es posible una única tabla de mosaicos y sprites. Este límite se alcanzó rápidamente durante los primeros dos años de Famicom en el mercado y los desarrolladores de juegos comenzaron a solicitar una forma de ampliar las capacidades de la consola.
En la comunidad de emulación y Homebrew , estos chips también se conocen como mapeadores . [2]
CNROM es el primer hardware bancario introducido en Famicom y apareció a principios de 1986. Consiste en un único chip lógico discreto de la serie 7400. CNROM admite un único banco PRG fijo y hasta ocho bancos CHR para una ROM total de 96 KB. Algunas variaciones de terceros admitían capacidades adicionales. Muchos juegos CNROM almacenan los datos del nivel del juego en la ROM CHR y dejan la pantalla en blanco mientras los leen.
Los primeros mapeadores de NES estaban compuestos por chips lógicos discretos de la serie 7400 . [1] : 29 UNROM apareció a finales de 1986. Admite un único banco PRG fijo de 16 KB, siendo el resto del PRG conmutable. [3] En lugar de un chip ROM dedicado para almacenar datos gráficos (llamado CHR por Nintendo), los juegos que usan UNROM almacenan datos gráficos en la ROM del programa y los copian a una RAM en el cartucho en tiempo de ejecución. [1] : 29
El MMC1 es el primer circuito integrado MMC personalizado de Nintendo que incorpora soporte para juegos guardados y configuraciones de desplazamiento multidireccional. [1] : p.30 El chip viene en al menos cinco versiones diferentes: MMC1A , MMC1B1 , MMC1B2 , MMC1B3 y MMC1C . Las diferencias entre las diferentes versiones son leves, principalmente debido al comportamiento de protección de la memoria de las partidas guardadas. El chip MMC1 permite cambiar entre diferentes bancos de memoria. La ROM del programa se puede seleccionar en fragmentos de 16 KB o 32 KB, y la ROM de caracteres se puede seleccionar en fragmentos de 4 KB u 8 KB. Una característica inusual de este controlador de memoria es que su entrada es en serie , en lugar de en paralelo , por lo que se necesitan 5 escrituras secuenciales (con desplazamiento de bits ) para enviar un comando al circuito . [4]
¡¡El MMC2 solo se usa en Punch-Out!! de Mike Tyson !! y la reedición posterior que reemplazó a Mike Tyson . Se puede seleccionar un único banco de 8 KB de ROM de programa (con los 24 KB restantes bloqueados) y la ROM de caracteres se puede seleccionar en dos pares de bancos de 4 KB, que se conmutarían automáticamente cuando el hardware de vídeo intente cargar mosaicos gráficos concretos desde la memoria, permitiendo así Se puede utilizar una mayor cantidad de gráficos en la pantalla sin la necesidad de que el juego los cambie manualmente. [5]
El MMC3 se introdujo en 1988. Agrega un temporizador IRQ para permitir el desplazamiento de pantalla dividida sin sacrificar el sprite 0, junto con dos bancos de ROM de programa de 8 KB seleccionables y dos bancos de ROM de caracteres seleccionables de 2 KB + cuatro de 1 KB, lo que permite un fácil intercambio instantáneo de sprites. y datos de mosaicos. Se admiten 8 KB de RAM para guardar partidas. [6]
Este chip sólo se utiliza en tres juegos, todos los cuales se lanzaron únicamente para Famicom en Japón y fueron desarrollados por Intelligent Systems . Funcionalmente, es casi idéntico al MMC2, con la única diferencia de que el MMC4 cambia la ROM del programa en bancos de 16 KB en lugar de 8 KB y admite una SRAM respaldada por batería para guardar datos del juego. [7]
La MMC5 es la MMC más avanzada de Nintendo. Originalmente también era el más caro. Sólo Koei usaba este chip con regularidad. Es similar al VRC6 de Konami, pero el manejo de interrupciones funciona de manera diferente. El chip tiene 1 KB de RAM adicional , dos canales de sonido de onda cuadrada adicionales, un canal de sonido PCM adicional , soporte para desplazamiento vertical de pantalla dividida, capacidades gráficas mejoradas (lo que hace que 16,384 mosaicos diferentes estén disponibles por pantalla en lugar de solo 256, y permite que cada pantalla individual de 8x8 mosaico de fondo de píxeles para tener su propia asignación de color en lugar de estar restringido a un conjunto de colores por grupo de mosaicos de 2x2), conmutación de banco de ROM y caracteres de ROM de programa altamente configurable y un contador IRQ basado en línea de exploración. El MMC5 admite hasta 2 MB de ROM total; sin embargo, ningún juego lanzado comercialmente superó 1 MB. [8]
La MMC6 es similar a la MMC3, con 1 KB adicional de RAM que se puede guardar con batería de respaldo. [9]
El ASIC del Famicom Disk System es un chip de audio extendido, que admite un canal de síntesis de búsqueda de tabla de ondas de ciclo único (6 bits × 64 pasos) con un modulador de fase (PM) incorporado para una generación de sonido similar a la síntesis de modulación de frecuencia. . Algunas conversiones de cartuchos de juegos Disk System tienen MMC para reemplazar el canal de audio.
El A*ROM MMC, que lleva el nombre de las placas de cartuchos AMROM, ANROM y AOROM que lo utilizan, fue desarrollado por Chris Stamper de Rare y fabricado por Nintendo. Se encuentra en juegos desarrollados por Rare para Nintendo, Tradewest, GameTek, Acclaim y Milton Bradley. [10] Permite cambiar la ROM PRG en una sola pieza de 32 KB y utiliza CHR RAM para hasta 256 KB de ROM total. A diferencia de otros chips, utiliza una duplicación de pantalla. [11]
Nintendo mantuvo un estricto control sobre el hardware de cartuchos lanzado internacionalmente y no permitió que terceros usaran sus propios PCB y mapeadores. Este siguió siendo el caso hasta el final de la vida comercial de la NES, cuando Nintendo alivió las restricciones. Como resultado, la mayoría de los mapeadores de terceros sólo se encontrarán en Famicom o en cartuchos sin licencia.
El VRC2 es un chip de Konami que permite cambiar la ROM del programa en bancos de 8 KB y la ROM de caracteres en bancos de 1 KB. Esta MMC tiene dos revisiones conocidas: VRC2a y VRC2b. [13]
Utilizado exclusivamente en la versión japonesa de Salamander .
El chip VRC4 es similar al chip VRC2, excepto que el VRC4 permite una capacidad CHR de 512 KB, 2 modos bancarios de ROM PRG de 8 KB y 1 duplicación de pantalla.
Utilizado exclusivamente en el adaptador QTa de la serie de juegos educativos Space School de Konami . [15]
El VRC6 (Virtual Rom Controller) es un chip MMC avanzado de Konami, que admite conmutación de banco tanto para código de programa como para gráficos, así como un contador IRQ basado en ciclos de CPU , que también puede actuar como un contador de líneas de exploración. El chip también admite tres canales de sonido adicionales (dos ondas cuadradas de ocho ciclos de trabajo cada una, que se pueden configurar para reproducir muestras PCM usando un ciclo de trabajo del 100%, y una onda de diente de sierra ). Se utiliza en Akumajō Densetsu , la versión japonesa de Castlevania III: Dracula's Curse , mientras que la versión occidental utiliza la MMC5 de Nintendo. Dado que Nintendo Entertainment System no permite que los cartuchos agreguen canales de sonido adicionales, la banda sonora de la versión Famicom fue reelaborada para seguir esas especificaciones; por lo tanto, la banda sonora de la versión occidental se implementa mediante los cinco canales de sonido integrados en la NES original. [dieciséis]
El VRC7 es un chip MMC avanzado de Konami, que admite conmutación de bancos y conteo de IRQ equivalente al VRC6, y contiene un derivado YM2413 que proporciona 6 canales de audio de síntesis FM . Este audio avanzado se utiliza únicamente en el juego de Famicom Lagrange Point . La versión japonesa de Tiny Toon Adventures 2 usa el VRC7 pero no el audio extendido. [17] Una desventaja es que tiene algo de ruido de cuantificación, que se nota en las notas más bajas. Este fue un remanente del YM2413, en el que se basa el chip FM del VRC7.
El 163 sólo se ha utilizado en juegos exclusivos de Japón. Sus capacidades eran un poco mejores que las del MMC3 de Nintendo. Una variante contenía hardware de sonido adicional que reproduce muestras de ondas de 4 bits. Admite de 1 a 8 canales de sonido adicionales, pero el aliasing audible aparece cuando se habilita una cantidad suficientemente grande de canales debido a la multiplexación por división de tiempo cada vez más audible . [ cita necesaria ]
El FME-7 es un circuito de mapeo de memoria desarrollado por Sunsoft para usar en cartuchos NES y Famicom. Cambia la ROM del programa en bancos de 8 KB y cambia la ROM de caracteres en bancos de 1 KB. También contiene hardware para generar señales IRQ después de un número específico de ciclos de reloj de la CPU , logrando así efectos de pantalla dividida con un uso mínimo de potencia de procesamiento. [ cita necesaria ]
Esta versión del FME-7 contiene una versión del ampliamente utilizado Yamaha YM2149 . [ cita necesaria ]
Algunos desarrolladores individuales ( homebrew ) y sin licencia han creado MMC personalizadas para NES, la mayoría de las cuales simplemente expanden la memoria disponible.
228 es un MMC de cambio de banco simple desarrollado para su uso en los juegos Action 52 y Cheetahmen II . No tiene un bit de control de tabla con nombre. En el multicarro Action 52 , también contiene una pequeña área de registro de 16 bits que contiene la antigua selección de menú al salir de un juego.
GTROM o Cheapocadabra es un MMC auto-flasheable desarrollado en 2015 para el mercado de cerveza casera. La placa contiene 512 K de PRG ROM, 16 K de CHR ROM y dos LED. Si bien la GTROM no contiene PRG RAM, es posible guardar juegos debido a que la PRG ROM puede actualizarse mediante el software NES.