Los controladores multimemoria o controladores de gestión de memoria [1] ( MMC ) son diferentes tipos de chips especiales diseñados por varios desarrolladores de videojuegos para su uso en cartuchos de Nintendo Entertainment System (NES) . Estos chips amplían las capacidades de la consola original y permiten crear juegos de NES con características que la consola original no puede ofrecer por sí sola. El hardware básico de NES admite solo 40 KB de ROM en total, hasta 32 KB de PRG y 8 KB de CHR, por lo que solo es posible un único mosaico y una tabla de 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 expandir 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 la Famicom, que apareció a principios de 1986. Consiste en un único chip de lógica discreta 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 de nivel de juego en la ROM CHR y dejan la pantalla en blanco mientras los leen.
Los primeros mapeadores de NES están compuestos por chips de lógica discreta de la serie 7400. [1] : 29 UNROM apareció a finales de 1986. Admite un solo banco PRG fijo de 16 KB, el resto del PRG es 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 juegos guardados. El chip MMC1 permite cambiar de banco de memoria diferentes. La ROM de 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 serial , en lugar de paralela , por lo que se necesitan 5 escrituras secuenciales (con desplazamiento de bits ) para enviar un comando al circuito . [4]
El MMC2 solo se utiliza en Punch-Out!! de Mike Tyson y en la reedición posterior que reemplazó a Mike Tyson . Se puede seleccionar un solo banco de 8 KB de ROM de programa (con los 24 KB restantes bloqueados) y se puede seleccionar la ROM de personaje en dos pares de bancos de 4 KB, que se cambiarían automáticamente cuando el hardware de video intente cargar mosaicos gráficos particulares desde la memoria, lo que permite 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 en pantalla dividida sin sacrificar el sprite 0, junto con dos bancos de ROM de programa seleccionables de 8 KB y dos bancos de ROM de caracteres seleccionables de 2 KB + cuatro de 1 KB, lo que permite un intercambio fácil e instantáneo de datos de sprites y mosaicos. Se admiten 8 KB de RAM de juego guardado. [6]
Este chip se utiliza únicamente en tres juegos, todos ellos lanzados exclusivamente para la Famicom en Japón y 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 bancos de 8 KB y tiene soporte para una SRAM respaldada por batería para guardar los datos del juego. [7]
El MMC5 es el chip MMC más avanzado de Nintendo. Originalmente también era el más caro. Solo Koei usaba este chip regularmente. 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 (haciendo que 16,384 mosaicos diferentes estén disponibles por pantalla en lugar de solo 256, y permitiendo que cada mosaico de fondo individual de 8x8 píxeles tenga su propia asignación de color en lugar de estar restringido a un conjunto de colores por grupo de mosaicos de 2x2), cambio de ROM de programa y banco de ROM de caracteres altamente configurable y un contador IRQ basado en líneas de escaneo. 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 de RAM adicional que se puede ahorrar con una batería de respaldo. [9]
El ASIC de 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) integrado para la generación de sonido similar a la síntesis de modulación de frecuencia . Algunas conversiones de cartuchos de juegos de Disk System tienen MMC para reemplazar el canal de audio.
El A*ROM MMC, llamado así por 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 que la ROM PRG se cambie en una sola pieza de 32 KB y utiliza RAM CHR para una ROM total de hasta 256 KB. A diferencia de otros chips, utiliza duplicación de pantalla. [11]
Nintendo mantuvo un control estricto sobre el hardware de cartuchos lanzados internacionalmente y no permitió que terceros usaran sus propias placas de circuito impreso y mapeadores. Esto se mantuvo así hasta bien entrada la vida comercial de la NES, cuando Nintendo suavizó las restricciones. Como resultado, la mayoría de los mapeadores de terceros solo se encontrarán en Famicom o en cartuchos sin licencia.
El VRC2 es un chip de Konami que permite cambiar la ROM de 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, con la diferencia de 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 en la serie de juegos educativos Space School de Konami. [15]
El VRC6 (Virtual Rom Controller) es un chip MMC avanzado de Konami, que admite la conmutación de bancos tanto para el código de programa como para los gráficos, así como un contador IRQ basado en ciclos de CPU , que también puede actuar como un contador de líneas de escaneo. El chip también contiene soporte para tres canales de sonido adicionales (dos ondas cuadradas de ocho ciclos de trabajo cada una, que se pueden configurar para reproducir muestras PCM utilizando 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 el MMC5 de Nintendo. Dado que el Nintendo Entertainment System por diseño no permite que los cartuchos agreguen canales de sonido adicionales, la banda sonora de la versión de Famicom fue reelaborada para seguir esas especificaciones; la banda sonora de la versión occidental utiliza los cinco canales de sonido estándar integrados en la NES. [16]
El VRC7 es un chip MMC avanzado de Konami, que admite conmutación de bancos y conteo de IRQ equivalente al VRC6, además de contener un derivado YM2413 que proporciona 6 canales de síntesis FM de 2 op . El hardware de audio avanzado se usa solo en el juego de Famicom Lagrange Point . La versión japonesa de Tiny Toon Adventures 2 también usa el VRC7 pero no aprovecha el audio extendido. [17] Una desventaja de la parte de audio extendida es que tiene algo de ruido de cuantificación, que se nota en las notas más bajas. Esto fue un remanente del YM2413, en el que se basa el chip FM del VRC7.
El 163 se ha utilizado únicamente 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 aparece un alias audible 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 requerida ]
El FME-7 es un circuito de mapeo de memoria desarrollado por Sunsoft para su uso en cartuchos de NES y Famicom. Conmuta la ROM de programa en bancos de 8 KB y 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 CPU , logrando así efectos de pantalla dividida con un uso mínimo de potencia de procesamiento. [ cita requerida ]
Esta versión del FME-7 contiene una variante del ampliamente utilizado Yamaha YM2149 (SSG), un derivado del popular chip AY-3-8910 . [ cita requerida ]
Algunos desarrolladores individuales ( homebrew ) y sin licencia han creado MMC personalizados para la NES, la mayoría de los cuales simplemente amplían la memoria disponible.
228 es una MMC de conmutación bancaria simple desarrollada para su uso en los juegos Action 52 y Cheetahmen II . No tiene un bit de control de tabla de nombres. En el multicart Action 52 , también contiene una pequeña área de registro de 16 bits que contiene la antigua selección del menú al salir de un juego.
GTROM o Cheapocadabra es una MMC autoflasheable desarrollada en 2015 para el mercado de homebrew. La placa contiene 512K de ROM PRG, 16K de ROM CHR y dos LED. Si bien la GTROM no contiene RAM PRG, es posible guardar partidas gracias a que la ROM PRG se puede flashear mediante el software de NES.
MXM-1 es un mapeador de memoria creado por Something Nerdy Studios para su uso en el juego Former Dawn. Permite utilizar atributos 8x1 para utilizar más colores, reproducción FMV, audio expandido (8 canales de audio PCM genuino, un buffer de eco, soporte para tabla de ondas e interpolación suave basada en función sinc) y acceso directo a 768 MiB de ROM (indirectamente, 2.8 GiB) y 1 MiB de RAM [18]