Arquitectura de la Super Nintendo

Un análisis práctico por Rodrigo Copetti

Edición clásica - Última actualización: 19 de abril de 2026

Idiomas disponibles: English, Español, Português (Brasil), 简体字, Añadir traducción


Acerca de esta edición

La edición 'clásica' es una versión alternativa a la contraparte 'moderna'. No requiere Javascript, CSS de última generación ni HTML complejo para funcionar, lo que la hace ideal para quienes usan herramientas de accesibilidad. Por otra parte, los lectores de papel y eBook pueden consultar las ediciones del libro. Como alternativa, si usas un navegador antiguo, prueba la edición 'blink'.

Esta edición es idéntica en cuanto al contenido. Sin embargo, los widgets interactivos han sido simplificados para funcionar con HTML puro, aunque ofrecerán un enlace al artículo original para quienes quieran probar la "versión completa".

Como siempre, este artículo está disponible en Github para que los lectores puedan reportar errores o proponer cambios. También hay una lista de lecturas de apoyo disponible para ayudar a entender la serie. El autor acepta donaciones y traducciones para mejorar la calidad de los artículos actuales y futuros.


Tabla de contenidos

  1. Imágenes de apoyo
  2. Una introducción rápida
    1. Modelos y revisiones
  3. CPU
    1. Modernizando el 6502
    2. La nueva CPU
    3. Las adiciones de Ricoh
      1. Acceso rápido a la memoria
      2. El fallo de segmentación de 16 bits
    4. (Mucha) más memoria
  4. Gráficos
    1. Diseño
      1. El chipset
      2. Modalidades de visualización
    2. Organizando el contenido
    3. Construyendo el frame
      1. Tiles
      2. Fondo
      3. Modos
      4. Sprites
      5. Resultado
    4. Esa característica
      1. Circuitos generosos
    5. Más magia de color
    6. Causa de la caída de fotogramas
    7. Una salida de vídeo conveniente
  5. Audio
    1. Arquitectura
    2. Control de tono
    3. Evolución desde la NES
    4. Uso avanzado
    5. Confusión estéreo
  6. Juegos
    1. Configuración de cartuchos
      1. Más allá de la convención
  7. Antipiratería / Bloqueo regional
  8. Eso es todo amigos
  9. Copyright and permissions
  10. Fuentes / Sigue leyendo
  11. Contribuir

Imágenes de apoyo

Modelo

Internacional
La Super Nintendo (en Europa) o Super Famicom (en Japón).
Lanzada el 21/11/1990 en Japón y el 11/04/1992 en Europa.
Americana
La Super Nintendo.
Lanzada el 13/08/1991 en América.

Placa base

Motherboard
Placa base
Mostrando la revisión 'SNS-RGB-CPU-01'.
Las primeras revisiones tenían el Subsistema de Sonido conectado como una placa hija; las posteriores unificaron ambas PPUs.
Motherboard
Placa base con las partes importantes etiquetadas

Diagrama

Diagram
Diagrama de arquitectura principal
Los buses 'A' y 'B' son buses de direcciones; el bus de datos sigue la trayectoria del bus 'B' y tiene 8 bits de ancho.

Una introducción rápida

Parece que Nintendo logró llevar la siguiente generación de gráficos y sonido sin recurrir a componentes costosos de catálogo. Pero hay un truco: la nueva consola también fue diseñada pensando en la expansibilidad. En un mundo donde las CPUs evolucionan más rápido que la velocidad de la luz, Nintendo dependía en última instancia de los cartuchos de juego para hacer brillar su consola.

Modelos y revisiones

Niños de todo el mundo conocieron esta consola bajo distintas formas, colores y nombres. No obstante, las diferencias internas eran menos llamativas. Como es sabido, debido a la diversidad de estándares analógicos, los modelos de distintas regiones presentan variaciones en sus señales analógicas (por ejemplo, la salida de vídeo) para adaptarse a dichos estándares. Comparada con su predecesora, sin embargo, las diferencias arquitectónicas son menos pronunciadas. Por ejemplo, en esta ocasión Nintendo no incorporó circuitería exclusiva para la expansión de audio, lo que influyó de forma significativa en la calidad de los juegos según la región.

La empresa también lanzó revisiones de hardware a lo largo de la vida útil de la consola, cuyo principal objetivo era reducir el número de componentes dedicados en la placa base y abaratar así los costes de fabricación.


CPU

La elección del procesador de la Super Nintendo es peculiar. A diferencia de su competencia, que incluía un 68000 de pleno derecho, el chip de la SNES no supone una ruptura radical con su predecesora. Como ya sabemos, la NES empleó una CPU 6502 modificada, un componente muy apreciado en los ordenadores de finales de los 70 y principios de los 80. Para adaptarse a la nueva década (los 90), Nintendo optó por una solución más conservadora (y más económica): el WDC 65C816, una extensión de 16 bits del 6502.

Modernizando el 6502

El 65C816 tiene su origen en Western Design Center (WDC), y en particular en Bill Mensch, exmiembro del equipo del 6502 (en MOS) y del equipo del 6800 (en Motorola). En 1978, un año después de dejar MOS, Mensch fundó Western Design Center, una empresa de semiconductores que produce clones del MOS 6502 con atractivas mejoras (diseño CMOS, opcodes adicionales, correcciones de circuitería, nuevos modos de direccionamiento, etc.).

Image
El chip WDC 65C816 en el Apple IIGS.

Un día, Apple se acercó a WDC para diseñar una variante del 6502, retrocompatible, que pudiera procesar mayores cantidades de datos. El fruto de ese encargo fue el WDC 65C816, lanzado en 1983. Curiosamente, Apple atravesó numerosos contratiempos en el desarrollo de un ordenador que usara el nuevo procesador, hasta que tres años después lanzó el Apple IIGS.

Image
Al final, el Apple IIGS y la Super Nintendo se convirtieron en los únicos grandes adoptantes del 65C816.

Mientras tanto, Nintendo mantenía una buena relación con Ricoh y su serie de chips hechos a medida para la NES. No he encontrado el documento exacto que explica cómo se conectaron Ricoh y WDC, pero lo que puedo confirmar es que en algún momento WDC acordó licenciar sus diseños del 65C816 a Ricoh [1]. En consecuencia, Ricoh lo adaptó a los nuevos requisitos de la Super Nintendo, convirtiéndolo en el Ricoh 5A22, suministrado en exclusiva a Nintendo.

La nueva CPU

Como ya hemos visto, el procesador principal de esta consola es el Ricoh 5A22, un superconjunto del 65C816.

Image
El chip Ricoh 5A22, que Nintendo denominó ‘S-CPU’.

A diferencia del Apple IIGS, que disfrutaba de compatibilidad con el software del Apple II, la Super Nintendo no es compatible con los juegos de NES. Hay que reconocer que, dada la elección del procesador, es posible que la SNES se planease originalmente con esa compatibilidad en mente, quién sabe.

La CPU emplea una velocidad de reloj variable que alcanza hasta 3,58 MHz en operaciones de registro y desciende a 1,79 MHz al acceder a los buses más lentos (por ejemplo, el puerto serie/controlador).

Para entender bien las capacidades del 5A22, conviene repasar primero lo que el 65C816 ofrece de serie:

Dicho todo esto, he de confesar que el 65C816 se antoja excesivamente engorroso para el rendimiento que ofrece. Comparado con propuestas como el Motorola 68000, no es difícil entender por qué el Apple IIGS fue el único ordenador personal en adoptar el 65C816. A lo largo de este artículo, sin embargo, verás cómo Nintendo y Ricoh supieron convertir las limitaciones de esta CPU en oportunidades para renovar su catálogo de juegos.

Las adiciones de Ricoh

En 1983, el 65C816 nació como sucesor generalista de su ancestro de 1975, con todas las exigencias y restricciones que eso conllevaba. Sin embargo, Nintendo planeaba que su consola durase toda la década de los 90, lo que obligó a Ricoh a dar un paso adelante.

Lo primero que había que solucionar eran las limitaciones aritméticas del chip: el 65C816 carece de instrucciones dedicadas para la multiplicación o la división. Por ello, Ricoh incorporó sendas unidades de multiplicación y división, que permiten a la CPU realizar estas operaciones por hardware en lugar de por software. En vez de instrucciones convencionales, se accionan mediante registros.

El multiplicador recibe números de 8 bits y devuelve resultados de 16 bits [6]. El divisor, por su parte, acepta un dividendo de 16 bits y un divisor de 8 bits, y retorna un cociente de 16 bits junto con un resto también de 16 bits [7]. Ambas unidades solo admiten números positivos (sin signo).

Cabe preguntarse qué relevancia tienen estas adiciones. Su importancia se hará evidente cuando exploremos las novedades de los chips gráficos de la Super Nintendo (en la sección ‘Gráficos’).

Acceso rápido a la memoria

El segundo reto era aumentar el ancho de banda de datos. Para ello, se añadieron dos DMAs (Acceso Directo a Memoria, del inglés ‘Direct Memory Access’) exclusivos que permiten mover datos sin la intervención de la CPU, obteniendo así mayores velocidades de transferencia. Para que este diseño funcione, las regiones de memoria se referencian mediante dos buses de direcciones distintos [8]:

Al configurar una transferencia DMA, el bus de origen debe ser distinto del bus de destino.

Además, los dos DMAs no son idénticos y cumplen funciones muy distintas [9]:

Por último, el sistema ofrece ocho canales para transferencias DMA, lo que permite despachar hasta ocho transferencias independientes a la vez.

El fallo de segmentación de 16 bits

El primitivo comportamiento de Open Bus también está presente en esta consola. Además, se especula con la existencia de un registro interno llamado Memory Data Register (MDR), que supuestamente almacena estos valores [10].

En contraste, el 68000 emplea una tabla de vectores para gestionar excepciones, lo que garantiza que la ejecución se redirige ante cualquier fallo.

(Mucha) más memoria

Es fascinante comprobar la cantidad de contenido que la NES lograba mostrar con solo 2 KB de RAM. Pues bien, la Super Nintendo cuenta ahora con 128 KB de RAM (que sigue denominándose ‘Work RAM’ o WRAM) — un incremento del 6400% en memoria de propósito general respecto a su predecesora.

No obstante, mientras que la NES se beneficiaba de la rápida RAM estática (SRAM), Nintendo optó por usar RAM dinámica (DRAM) para la WRAM de la Super Nintendo. Dinámica, en este contexto, significa que la memoria debe refrescarse periódicamente. El 5A22 se encarga de ello automáticamente, pero durante cada operación de refresco la CPU queda en pausa, lo que supone una ralentización global de aproximadamente un 3% [11].

Dicho esto, ¿qué pueden hacer los desarrolladores con toda esa memoria? Lo que deseen, en realidad. La WRAM almacena datos variables del juego: cuanto mayor sea el espacio disponible, mayor será la cantidad de información que se puede gestionar (reduciendo así la dependencia del hardware del cartucho).

No obstante, como demostrarán las siguientes secciones, la Super Nintendo es una máquina bastante compleja (pese a su CPU ‘simplista’). Suelo referirme a esta consola como una ‘colección de mini-ordenadores/subsistemas’, y cada subsistema puede necesitar datos de la CPU. Por lo tanto, los programadores reservan porciones de la WRAM para gestionar esa información, lo que justifica la necesidad de los 128 KB.


Gráficos

Dicho todo lo anterior, el subsistema gráfico de esta consola es una auténtica obra de ingeniería. Teniendo en cuenta la limitada CPU, cabría pensar que la SNES nunca podría eclipsar a su competidora, que presume de un Motorola 68000 ‘de 32 bits’. Sin embargo, los ingenieros de Nintendo y Ricoh encontraron trucos ingeniosos que explotan el comportamiento de las pantallas CRT, expandiendo así las capacidades de la consola sin necesidad de componentes costosos de última generación.

Antes de profundizar, recomiendo encarecidamente leer el artículo sobre la NES primero, ya que introduce conceptos clave que se retoman aquí.

Diseño

Como cualquier otra consola de su generación, la Super Nintendo dibuja gráficos mediante tiles 2D (8 × 8 píxeles). La NES lo consiguió mediante su emblemática Picture Processing Unit (PPU), que emite la imagen en sincronía con una pantalla CRT. La Super Nintendo sigue el mismo camino, pero incorpora técnicas más sofisticadas para lograr resultados más ricos.

El chipset

La Super Nintendo alberga dos chips PPU distintos que constituyen el subsistema gráfico, conocidos conjuntamente como Super PPU o ‘S-PPU’.

Image
Los dos chips PPU.

Cada chip PPU cumple una función específica [12]:

Desde el punto de vista de la programación, esta separación es redundante, ya que en la práctica ambos chips se tratan como una sola unidad.

Modalidades de visualización

El sistema NTSC emite una resolución estándar de 256 × 224 píxeles a ~60 Hz [13]. La variante europea, conforme a la especificación PAL, emite 256 × 240 píxeles a ~50 Hz. Sea como sea, la mayoría de los juegos no aprovechan los píxeles adicionales y muestran en su lugar una letterbox (bandas negras).

Lo curioso es que los televisores tradicionales tienen una relación de aspecto de 4:3. Sin embargo, si hacemos los cálculos, la resolución de salida de la Super Nintendo tiene una relación de aspecto de 8:7. Por consiguiente, al proyectar la imagen en el televisor, esta aparece estirada horizontalmente, como si fuera un fotograma de 292 × 224 píxeles (en el caso de la variante NTSC) [14]. Dicho de otro modo: los píxeles de la Super Nintendo tienen una relación de aspecto de 8:7, en lugar de ser perfectamente cuadrados.

Image
Fotograma renderizado con una resolución de 256 × 224 píxeles. Esto es lo que la consola envía al televisor.
Image
Fotograma estirado visto desde el televisor (con una resolución aparente de 292 × 224 píxeles).
Kirby’s Dream Land 3 (1997).

La desviación de Nintendo respecto a la relación de aspecto estándar se explica por una cuestión de coste. Enseguida comprobarás que la S-PPU es extraordinariamente rica en funcionalidad, pero sin la velocidad necesaria para renderizarlo todo al ritmo del haz del CRT [15]. En lugar de añadir más circuitería a la placa, Nintendo optó por reducir la anchura de la imagen visible, dejando así más margen para el período de supresión horizontal.

No obstante, algunos juegos como Chrono Trigger tienen en cuenta este factor, por lo que sus formas aparecen deliberadamente aplanadas para lucir correctas una vez que el televisor las estira. Este sigue siendo, sin embargo, un caso excepcional.

Organizando el contenido

Image
Arquitectura de memoria de la S-PPU.

Por razones de coste y rendimiento, los datos gráficos se distribuyen en tres regiones de memoria:

La VRAM se implementa mediante dos chips de 32 KB, a cada uno de los cuales se accede simultáneamente a través de un bus de 8 bits independiente. Esto permite a la PPU 1 obtener valores de 16 bits por ciclo, lo que resulta especialmente eficiente para recuperar varios píxeles consecutivos en tiempo real [16]. Además, cada chip de VRAM cuenta con su propio bus de direcciones de 16 bits, en lugar de uno compartido. Esta configuración resultará útil cuando la PPU 1 necesite acceder a disposiciones de memoria alternativas, algo que exploraremos al hablar del ‘Modo 7’.

Construyendo el frame

Veamos ahora cómo se renderiza un frame en la consola y se muestra en el televisor. Para la demostración, se usará Super Mario World como ejemplo.

Tiles

Image
Algunos tiles de 16×16 encontrados en la VRAM.

Al igual que su predecesora, la S-PPU utiliza tiles para construir gráficos sofisticados, aunque con mejoras significativas respecto a la PPU original:

Fondo

Image
Capa de fondo 1 (BG1).
Image
Capa de fondo 2 (BG2).
Image
Capa de fondo 3 (BG3).
Mapas de fondo en la VRAM.
Image
Capa de fondo 1 (BG1) renderizada.
Image
Capa de fondo 2 (BG2) renderizada.
Image
Capa de fondo 3 (BG3) renderizada.
Image
Capas de fondo renderizadas combinadas.
Las capas de fondo renderizadas tras aplicar selección y transparencia.

La Super Nintendo puede generar hasta cuatro planos de fondo distintos. Con tiles de 8×8 o 16×16 píxeles, los bloques se componen de 32×32 píxeles (2×2 tiles). Cada capa de fondo puede extenderse hasta 1024×1024 píxeles (32×32 tiles). La región de la VRAM donde se configuran estas capas se denomina Tilemap y se estructura como una tabla (valores continuos en memoria).

Cada entrada del Tilemap contiene los siguientes atributos:

Como siempre, estos planos son desplazables. No obstante, el número de funciones disponibles —profundidad de color, número de capas, regiones de desplazamiento independientes y tamaño de la selección— depende del modo de fondo activo en la S-PPU, lo que nos lleva a la siguiente sección…

Modos

La S-PPU ofrece numerosas opciones para los fondos, aunque no son de libre elección. Los programadores deben escoger entre ocho modos de fondo, cada uno con un conjunto distinto de características [17]:

Como puede verse, los programadores pueden decidir si priorizar la profundidad de color, el número de capas, los efectos especiales o la resolución.

Sprites

Image
Capa de sprite renderizada.

Una región de memoria dedicada llamada Object Attribute Memory (OAM) almacena una tabla con referencias de hasta 128 sprites, cada uno con las siguientes propiedades [18]:

La S-PPU puede renderizar hasta 32 sprites por línea de escaneo; si se supera este límite, los de menor prioridad quedan descartados.

Resultado

Image
¡Tachán!

La S-PPU renderiza cada línea de escaneo sobre la marcha, procesando primero la porción correspondiente de cada capa y mezclándolas a continuación.

Una de las principales limitaciones de los juegos de NES era que las actualizaciones gráficas solo podían producirse durante el V-Blank — el breve intervalo en que el haz del CRT regresaba al punto de inicio ofrecía un margen de tiempo razonable para reorganizar algunos tiles sin romper la imagen.

Pues bien, con las nuevas capacidades de la SNES, esa limitación adquiere otro significado.

Verás, como las nuevas unidades DMA/HDMA permiten a los programadores realizar transferencias de memoria sin esperar el V-Blank [19], los juegos pueden actualizar tiles, colores y registros sin aguardar a que se dibuje el frame completo. Y las posibilidades van aún más lejos: dado que los juegos pueden modificar los ajustes de la S-PPU a mitad de frame, es posible activar distintos modos de fondo en diferentes etapas del mismo frame, lo que abre la puerta a diseños de juego nuevos y originales.

Esa característica

A decir verdad, aún no he mencionado la característica más importante de esta consola…

Image
Capa de fondo renderizada.
Image
Mapa de fondo asignado.
Image
Frame renderizado en pantalla.
El primer cuarto de las líneas de escaneo usa otro modo para simular distancia; el Modo 7 arranca en el segundo cuarto (posible gracias al HDMA).
Deconstrucción de F-Zero (1990).

Presentamos el Modo 7, otro modo de fondo, pero esta vez con un funcionamiento radicalmente distinto. Aunque solo puede renderizar una única capa de fondo de 8 bpp, ofrece la capacidad exclusiva de aplicar las siguientes transformaciones afines sobre ese plano [20]:

El Modo 7 se controla mediante una matriz de rotación que altera sus parámetros. Sin entrar en álgebra lineal, dependiendo del efecto deseado, la CPU debe calcular ciertas funciones trigonométricas (seno y coseno) para completar las entradas de esta matriz. Esta operación es computacionalmente costosa para el 65C816, incluso con aritmética de punto fijo. Por esa razón, en el 5A22 Ricoh incorporó registros de multiplicación y división para aliviar la carga de la CPU.

Por cierto, cabe señalar que la lista de transformaciones no menciona la perspectiva, que es precisamente lo que se aprecia en el juego de ejemplo (F-Zero) [21]. Este efecto se consigue ajustando la matriz de rotación en cada llamada de HDMA, creando un efecto pseudo-3D en el proceso. Esto debería darte una idea de lo versátil que resulta la S-PPU.

Por último, el uso de transformaciones afines hace que ya no sea ventajoso obtener píxeles adyacentes de la VRAM. Para mantener un ancho de banda aceptable, el mapa de memoria se reorganiza en beneficio del nuevo pipeline: el primer chip de VRAM almacena el Tilemap (donde se referencian los tiles), mientras que el segundo guarda el Tileset (donde se almacenan los tiles). Como las entradas de ambas tablas ocupan 8 bits, esta configuración permite a la PPU 1 obtener referencias y tiles en un solo ciclo.

Circuitos generosos

Como el Modo 7 requiere cálculos adicionales, la PPU 1 incorpora circuitería dedicada para procesar la matriz de rotación. Lo realmente llamativo es que también expone esos registros a los desarrolladores cuando está inactiva (es decir, al usar los modos del 0 al 6, o durante el V-Blank) [22].

El multiplicador de la PPU 1 es a la vez más rápido y más capaz que el de la CPU, ya que admite números de 16 bits tanto positivos como negativos (con signo).

Al reflexionar sobre esto treinta años después, no puedo sino ver en ello un precursor de los shaders de computación modernos.

Más magia de color

Detrás de cada frame rico en detalle hay un pipeline de renderizado flexible. Como si todo lo anterior fuera poco, la S-PPU incluye un mezclador de colores versátil que permite personalizar cómo se combinan las capas. A diferencia de otros motores de sprites con pasos de renderizado fijos, los ingenieros de Nintendo habilitaron múltiples parámetros dentro del pipeline de la S-PPU, lo que permite a los desarrolladores alterar la interacción entre los píxeles de distintas capas para formar el frame final.

Esta funcionalidad se conoce colectivamente como Color Math [23], aunque también recibe el nombre de ‘Suma/Resta de Pantalla’, a pesar de admitir también la división entre dos. Sea como sea, esto abrió el camino a transparencias realistas, iluminación dinámica y otros efectos creativos.

Image
La lámpara oscila junto con la luz; este inquietante efecto se consigue alterando las opciones de enmascaramiento de la S-PPU.
Image
El loro te sigue con una antorcha que puede apuntar en ambas direcciones y rebotar. El efecto encaja a la perfección con la atmósfera del juego.
Donkey Kong Country (1994) exprimió las capacidades del mezclador de la S-PPU hasta límites asombrosos.

En esencia, el proceso funciona así [24]:

  1. Internamente, la S-PPU alberga dos pipelines de renderizado: el Main Screen (o Pantalla Principal) y el Sub Screen (o Pantalla Secundaria), a los que los programadores pueden asignar capas de fondo y la capa de sprites.
    • El Sub Screen también puede rellenarse con un color sólido en lugar de recibir capas.
    • Los modos de alta resolución (Modo 5 y 6) consumen los recursos del Sub Screen, por lo que el Color Math no funciona en dichos modos.
  2. Los píxeles de ambos pueden enmascararse mediante parámetros de ventana individuales.
  3. La S-PPU combina por separado las capas de fondo del Main Screen y del Sub Screen, respetando la prioridad de cada capa y los ajustes de ventana.
  4. Por último, la S-PPU permite a los programadores decidir cómo combinar el contenido de ambas pantallas: puede sumar o restar las dos pantallas y luego dividir el resultado entre dos (obteniendo efectos de transparencia).
    • La división entre dos es computacionalmente barata en circuitos digitales, ya que solo requiere desplazar el valor una posición a la derecha.

En el segundo ejemplo de Donkey Kong Country [25], el Main Screen consiste en una única capa blanca, mientras que el Sub Screen contiene el resto del escenario, codificado con colores invertidos. En la etapa final del pipeline, la S-PPU aplica resta y división, produciendo un frame con los colores correctos, efectos de transparencia y mayor brillo —simulando así la luz de la antorcha de forma convincente.

Causa de la caída de fotogramas

Dicho esto, ¿qué provoca los tirones en los juegos? Cuando se activa la interrupción de V-Blank para permitir la actualización de gráficos, a veces el juego todavía está ejecutando código costoso y deja escapar la ventana de V-Blank. Como consecuencia, los gráficos no pueden actualizarse hasta la siguiente llamada de V-Blank, y como el frame no cambia, esto se manifiesta como una caída en la tasa de frames [26].

A la inversa, un procesamiento excesivo durante el V-Blank puede impedir que la S-PPU emita la señal de vídeo, ya que el bus permanece ocupado. Esto puede provocar la aparición de líneas negras durante el escaneo, aunque el efecto apenas se percibe dado que los frames se actualizan 50 o 60 veces por segundo.

Una salida de vídeo conveniente

Todos los avances mencionados serían inútiles si la consola no pudiera transmitir la imagen al televisor a través de un medio que ambos comprendieran. Con la Super Nintendo, la compañía presentó una conexión universal pero propietaria denominada Multi Out, capaz de transportar simultáneamente varios tipos de señal, incluidas Composite, S-Video y RGB [27].

Nintendo incluyó con la consola un cable ‘Multi Out a Composite’, ya que el vídeo compuesto era prácticamente el mínimo común denominador de los televisores de la época.

En Europa, sin embargo, el puerto SCART gozaba de gran popularidad, especialmente en decodificadores y videograbadoras. Una de sus principales ventajas era la capacidad de soportar múltiples tipos de señal, lo que permitía a los equipos AV seleccionar el formato óptimo sin problemas de compatibilidad. Que yo sepa, solo los consumidores franceses recibieron un cable SCART oficial que aprovechaba los pines RGB de la Super Nintendo [28].

En consecuencia, Nintendo modificó la disposición de pines de sus consolas PAL para cumplir con el protocolo SCART, reemplazando el pin de ‘sincronización compuesta’ por uno de 12 voltios —que indica al televisor que use una relación de aspecto de 4:3—. Así pues, aunque Multi Out es teóricamente universal, los cables RGB resultantes son específicos de cada región.

En mi opinión, los beneficios prácticos de Multi Out se hicieron más evidentes en años recientes, al permitir a los usuarios aprovechar la señal RGB en sus televisores modernos sin necesidad de modificar el interior de la consola. No obstante, a diferencia de Composite y S-Video, RGB requiere una señal de ‘sincronización’ adicional. Para ello, los cables pueden capturar la señal de sincronización de Composite o S-Video o, para obtener mejores resultados, usar una línea dedicada llamada ‘sincronización compuesta’. Por desgracia, como ya se indicó, esta última señal es exclusiva de las consolas NTSC.


Audio

Al igual que en el apartado gráfico, el departamento de audio de esta consola experimentó una renovación significativa. Me atrevería a decir que incluso ofrece las técnicas de síntesis más avanzadas de su generación.

Arquitectura

Algunas empresas se asociaron con Yamaha, mientras que otras idearon una solución propia. Nintendo, por su parte, se alió con Sony —el conglomerado electrónico autor del Walkman— para que le suministrara un sofisticado sintetizador.

De este modo, Sony entregó todo un subsistema de audio compuesto por los siguientes elementos:

El subsistema de audio opera en paralelo con la CPU principal. Al encender la consola, el SPC700 ejecuta una ROM interna de 64 bytes que lo configura para recibir comandos de la CPU principal [30]. Tras esa fase de inicialización, permanece inactivo hasta recibir instrucciones.

Canales usados para la melodía.
Los tambores se discriminan con fines demostrativos.
Todos los canales de audio.
Osciloscopio de Star Fox (1993).

Para que el S-SMP opere de forma autónoma, necesita cargar un tipo de programa conocido como Controlador de Sonido. Este software instruye al chip sobre cómo manipular los datos de audio en bruto que la CPU principal envía a la PSRAM, y también cómo controlar el S-DSP.

Teniendo en cuenta las capacidades globales del sistema, la mayoría de los juegos incluían controladores de sonido que realizaban secuenciación musical. De forma similar al MIDI, estos controladores ordenaban al S-SMP y al S-DSP que leyeran datos de instrumentos sampleados y los reprodujeran a distintos tonos y efectos para generar la partitura musical. Era algo en lo que esta consola destacaba notablemente.

Como puede apreciarse, el subsistema de sonido supuso un gran salto adelante respecto a generaciones anteriores, aunque también planteó retos de programación considerables. Nintendo solo proporcionó un controlador oficial, el Nintendo SPC Sound Engine [31]. Además, la documentación era célebre por sus explicaciones vagas y la omisión de características importantes.

Todo esto obligó a los desarrolladores a investigar por su cuenta y crear sus propias implementaciones si querían funcionalidades adicionales. Como consecuencia, surgió en el mercado una gran variedad de controladores de sonido [32], algunos de los cuales descubrieron capacidades impresionantes del hardware.

Control de tono

El cambio de tono permite producir notas distintas usando la misma muestra. El S-SMP incluye un control que permite alterar el tono con suavidad. Echa un vistazo a este canal extraído de Mother 2/Earthbound [33]; ambos ejemplos provienen de la banda sonora original, pero el primero tiene el control de tono desactivado.

Sin cambio de tono.
Con cambio de tono activado.
Osciloscopio de Mother 2/Earthbound (1994).

Evolución desde la NES

Para visualizar la evolución del sonido entre la NES y la Super Nintendo, aquí hay un fragmento de dos partituras: una de un juego de NES y otra de su secuela en Super Nintendo. Ambas emplean la misma composición.

Mother (1989).
Mother 2/Earthbound (1994).
Osciloscopio de la misma partitura en ambos juegos.

Uso avanzado

Canales usados para la melodía.
Canales usados para los tambores.
Todos los canales de audio.
Osciloscopio durante una partida de Kirby’s Dream Land 3 (1997).

La composición siguiente, más rica en instrumentos, aprovecha en gran medida el cambio de tono, el eco y el envolvente.

Esta combinación de técnicas permitió que la música solo requiriera cinco canales en total, dejando los otros tres para efectos de sonido.

Confusión estéreo

Los controles de volumen del S-DSP se organizan en valores de 8 bits con signo [34], lo que significa que el volumen puede configurarse con valores negativos. Pero espera, si el ‘0’ representa el silencio, ¿qué ocurre al poner ‘-1’? Pues bien, invierte la señal.

Esta técnica es especialmente útil para crear un efecto envolvente, que se consigue configurando los canales estéreo para emitir en desfase: un canal emite la señal normal y el otro emite la misma señal pero invertida.

Por desgracia, abusar de esta característica produce resultados muy desagradables —como la sensación de que la música suena dentro de la cabeza—, por lo que la mayoría de los emuladores de SNES pasan por alto esta configuración.

Además, el estéreo desfasado se cancela en dispositivos mono, por lo que los juegos que lo usaban debían incluir un selector estéreo/mono para evitar silenciar su propia banda sonora.


Juegos

A decir verdad, el programa principal está escrito en puro ensamblador 65816 y el controlador de música en ensamblador SPC700. No encontrarás ninguna de las comodidades disponibles en equipos del siglo XXI.

Sin embargo, Nintendo, Intelligent Systems y Ricoh distribuyeron algunas herramientas para facilitar la vida de los programadores, entre ellas [35]:

Curiosamente, varios estudios —entre ellos Argonaut Software, Accolade y SN Systems— desarrollaron su propio equipamiento interno que ofrecía más capacidades que las herramientas oficiales (por ejemplo, editores de memoria, lectores de disquetes, devkits en forma de tarjeta ISA, etc.) [36].

Configuración de cartuchos

En cuanto al acceso al cartucho, las cosas se complican bastante más que con el modelo de mapeado relativamente sencillo de la NES. Es un asunto que merece atención, especialmente por lo que revela sobre sus posibilidades de expansión.

El 65C816 cuenta con un bus de direcciones de 24 bits que le permite acceder a hasta 16 MB de datos. No obstante, debido a la arquitectura de la consola, parte del espacio de direcciones queda reservada para componentes mapeados en memoria. Además, el 65C816 solo dispone de 16 líneas de dirección, que se combinan con registros internos para construir una dirección de 24 bits. Esto es análogo a alojar un mapeador interno y requerir cambio de bancos para acceder a datos adicionales más allá de los límites del bus de direcciones. Si has explorado otros sistemas de la misma generación, esta metodología te resultará familiar.

Image
Placas de cartucho de ejemplo diseñadas con distintas configuraciones [37].
De arriba a abajo: LoROM (ROM dual con SRAM con batería), LoROM (ROM única con SRAM con batería) y LoROM (ROM única).

Dicho esto, a la hora de diseñar un cartucho existen múltiples formas de conectar eléctricamente los pines de dirección entre la ROM y la CPU, cada una aprovechando el cambio de bancos de un modo diferente.

Hay dos modelos fundamentales que permiten acceder a hasta 4 MB de ROM y 64 KB de SRAM [38], y funcionan así:

En ambos casos, una porción significativa del espacio de ROM se duplica en el área sobrante del espacio de direcciones de la CPU. Lo interesante es que una mitad del espacio opera a ~2,68 MHz mientras que la otra puede alcanzar 3,58 MHz — pero solo si el chip de ROM soporta la velocidad mayor y el flag FastROM de la CPU está habilitado [40].

Además, los cartuchos que incluyen SRAM deben alojar un chip MAD-1 (o similar) para realizar la decodificación de direcciones. Este componente es fundamental para gestionar correctamente los pines que seleccionan entre los chips de ROM y SRAM [41].

Más allá de la convención

Cuando los programadores necesitan más espacio, entran en juego los modelos derivados de LoROM y HiROM. Dos variantes habituales, conocidas como ExHiROM y ExLoROM, amplían el espacio de direccionamiento de la ROM reduciendo el área duplicada. Ambas pueden acceder a ~7,9 MB de ROM.

Image
Star Fox (1993) usa el chip Super FX GSU para renderizar superficies 3D. En segundo plano, la S-PPU solo ve una capa de fondo compuesta de tiles erráticos.

Alternativamente, y lo más importante, LoROM y HiROM también pueden adaptarse para alojar chips de mejora dentro del cartucho: procesadores adicionales que amplían las capacidades de la consola. Algunos ejemplos de nuevas configuraciones:

Es difícil ignorar el impacto que esta ingeniería tuvo en los juegos de los años 90: muchos títulos superaron con creces las expectativas de la consola sin necesitar módulos de expansión ni nada por el estilo. Podría decirse que esto complicó los planes de Nintendo para un sucesor, lo que quizás explica la cancelación de juegos avanzados como Star Fox 2.


Antipiratería / Bloqueo regional

Con la Super Nintendo, Nintendo volvió a erigirse como única autoridad en la distribución de juegos. Con el fin de imponer sus condiciones, la empresa ideó tres capas de protección para impedir la distribución no autorizada de cartuchos y la evasión de royalties.

En primer lugar, la forma exterior de los cartuchos difiere entre regiones, por lo que no encajan en consolas de otras áreas. Sea como sea, cualquiera podría sortear esto fácilmente con un adaptador de terceros.

En segundo lugar, al igual que la NES, esta consola todavía incorpora el sistema de protección 10NES para bloquear a los distribuidores no autorizados. No obstante, el chip CIC acabó siendo clonado.

Como capa final —diseñada específicamente para combatir la piratería—, los juegos incluían en su código una cadena de comprobaciones:

  1. Verificación del tamaño de la SRAM: los cartuchos piratas suelen incorporar bloques grandes de SRAM para adaptarse a cualquier tipo de juego.
  2. Comprobaciones de integridad del código: una serie de checksums distribuidos por el código del juego verifican si las rutinas de verificación del tamaño de SRAM anteriores han sido eliminadas. Estas comprobaciones se dispersan en distintas etapas del juego, lo que dificulta encontrarlas y eliminarlas.

Aunque estas medidas podían anularse extirpando las rutinas manualmente, la tarea era larga. Al fin y al cabo, estaban repartidas por todo el juego para fastidiar al jugador y empujarlo finalmente a adquirir una copia legítima. Lo cierto es que comprobarás que la mayoría de las ROMs que circulan por internet ya tienen eliminadas todas sus comprobaciones antipiratería.


Eso es todo amigos

Image
Mi SNES modificada con un cartucho americano.
Ese juego solo se lanzó en Estados Unidos. Por suerte, un chaval lo estaba vendiendo en Glasgow.

Contribuir

Este artículo forma parte de la serie Arquitectura de las consolas. Si te ha resultado interesante, por favor considera donar. Tu contribución se usará para adquirir más herramientas y recursos que ayudarán a mejorar la calidad de los artículos actuales y futuros.

Donate with PayPal
Become a Patreon

También puedes comprar las ediciones del libro en inglés. Trato las ganancias como donaciones.

Book edition

Esta es la lista de herramientas adquiridas o interesantes para este artículo:

Interesting hardware to get (ordered by priority)

Acquired tools used

Como alternativa, puedes ayudar sugiriendo cambios y/o añadiendo traducciones.


Copyright and permissions

This work is licensed under a Creative Commons Attribution 4.0 International License. You may use it for your work at no cost, even for commercial purposes. But you have to respect the license and reference the article properly. Please take a look at the following guidelines and permissions:

Article information and referencing

For any referencing style, you can use the following information:

For instance, to use with BibTeX:

@misc{copetti-snes,
    url = {https://classic.copetti.org/writings/consoles/super-nintendo/},
    title = {Super Nintendo / Famicom Architecture - A Practical Analysis},
    author = {Rodrigo Copetti},
    year = {2019}
}

or a IEEE style citation:

[1]R. Copetti, "Super Nintendo / Famicom Architecture - A Practical Analysis", Copetti.org, 2019. [Online]. Available: https://classic.copetti.org/writings/consoles/super-nintendo/. [Accessed: day- month- year].

Special use in multimedia (Youtube, Twitch, etc)

I only ask that you at least state the author’s name, the title of the article and the URL of the article, using any style of choice.

You don’t have to include all the information in the same place if it’s not feasible. For instance, if you use the article’s imagery in a Youtube video, you may state either the author’s name or URL of the article at the bottom of the image, and then include the complete reference in the video description. In other words, for any resource used from this website, let your viewers know where it originates from.

This is a very nice example because the channel shows this website directly and their viewers know where to find it. In fact, I was so impressed with their content and commentary that I gave them an interview 🙂.

Appreciated additions

If this article has significantly contributed to your work, I would appreciate it if you could dedicate an acknowledgement section, just like I do with the people and communities that helped me.

This is of course optional and beyond the requirements of the CC license, but I think it’s a nice detail that makes us, the random authors on the net, feel part of something bigger.

Third-party publishing

If you are interested in publishing this article on a third-party website, please get in touch.

If you have translated an article and wish to publish it on a third-party website, I tend to be open about it, but please contact me first.


Fuentes / Sigue leyendo

Audio

CPU

Juegos

Gráficos

Fotografía