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'.
Cada chip PPU cumple una función específica :
- PPU 1: renderiza los gráficos (tiles) y les aplica transformaciones como rotación y escalado.
- PPU 2: proporciona efectos visuales —ventana, mosaico y fundidos— sobre los gráficos ya renderizados.
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 . 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) . 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.

Fotograma renderizado con una resolución de 256 × 224 píxeles. Esto es lo que la consola envía al televisor.

Fotograma estirado visto desde el televisor (con una resolución aparente de 292 × 224 píxeles).
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 . 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

Arquitectura de memoria de la S-PPU.
Por razones de coste y rendimiento, los datos gráficos se distribuyen en tres regiones de memoria:
- 64 KB de VRAM (RAM de Vídeo): almacena tiles y mapas (tablas) para construir las capas de fondo.
- 512 B de CGRAM (RAM de Gráficos en Color): almacena 512 entradas de paleta de colores, cada una del tamaño de una palabra (16 bits).
- 544 B de Object Attribute Memory (OAM): contiene tablas con referencias de 128 tiles que se usarán como sprites, junto con sus atributos.
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 . 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

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:
- Los cartuchos de juego ya no están cableados directamente a la PPU, por lo que los tiles deben copiarse primero a la VRAM (de forma similar a la Mega Drive de Sega). Aquí es donde la unidad DMA resulta de gran utilidad.
- Los tiles ya no están restringidos a sus dimensiones tradicionales (8×8 píxeles): ahora pueden alcanzar hasta 16×16 píxeles.
- Cuando los tiles se almacenan en memoria, se comprimen según la profundidad de color (es decir, el número de colores por píxel). La unidad de medida es el bpp (bits por píxel). El valor mínimo es 2 bpp, donde cada píxel ocupa dos bits y solo tiene 4 colores disponibles. El máximo es 8 bpp, que permite 256 colores por píxel (a costa de consumir un byte completo).
Fondo
Mapas de fondo en la VRAM.
Capa de fondo 1 (BG1) renderizada.

Capa de fondo 2 (BG2) renderizada.

Capa de fondo 3 (BG3) renderizada.

Capas de fondo renderizadas combinadas.
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:
- Valores de inversión vertical y horizontal.
- Prioridad (
0o1). - Referencia de paleta de la CGRAM.
- Referencia de tile.
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 :
- Modo 0: 4 capas con 4 colores cada una.
- La paleta de colores es especialmente limitada, ya que este modo prioriza el mayor número de capas posible.
- Modo 1: 2 capas con 16 colores cada una + 1 capa con 4 colores.
- Una capa puede dividirse en primer plano y fondo.
- Es el modo más utilizado.
- Modo 2: 2 capas con 16 colores cada una.
- Incluye un efecto adicional: cada columna de las capas puede desplazarse de forma independiente (similar al efecto de tambaleo de la Game Boy, pero aplicado verticalmente).
- Modo 3: 1 capa con 256 colores + 1 capa con 16 colores.
- Los colores pueden definirse como valores RGB en lugar de referenciar la CGRAM.
- Modo 4: combinación del Modo 2 y el Modo 3 (desplazamiento de columnas + mapeado de color RGB).
- La primera capa admite 256 colores; la segunda queda limitada a solo 4.
- Modo 5: 1 capa con 16 colores + 1 capa con 4 colores.
- El área seleccionada dispone de una resolución excepcional de 512 × 224 píxeles, que se comprime horizontalmente para ajustarse a la pantalla (la salida final sigue siendo de 256 × 224 píxeles). Esto conlleva renderizar los tiles de 16×8 píxeles como de 8×8, y los de 16×16 como de 8×16.
- Además, la resolución vertical puede ampliarse activando el entrelazado, alcanzando 512 × 448 píxeles, lo que mantiene las proporciones correctas con el frame de salida. A cambio, el mismo efecto de compresión afecta a los tiles, ahora también en vertical. Es útil cuando la pantalla debe mostrar mayor cantidad de información (por ejemplo, en multijugador o pantalla dividida).
- Modo 6: combinación del Modo 2 y el Modo 5 (alta resolución + desplazamiento de columnas), aunque se limita a una sola capa con 32 colores.
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
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 :
- Tamaño: la S-PPU puede combinar hasta 16 tiles en un cuadrante de 4×4 tiles para construir un sprite.
- Referencias de tiles: especifica los tiles utilizados para dibujar el sprite.
- Posición en pantalla: solo se renderizan los sprites dentro del área visible.
- Prioridad: cuando varias capas se superponen, se muestra el gráfico con mayor prioridad, determinada también por el modo de fondo activo.
- Ranura de paleta de colores: permite elegir entre 9 ranuras de la CGRAM.
- Inversión X/Y: habilita el reflejo horizontal y vertical.
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
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 , 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...

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).
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 :
- Traslación.
- Escalado.
- Rotación.
- Reflejo.
- Cizallamiento.
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) . 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) .
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 , 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.

La lámpara oscila junto con la luz; este inquietante efecto se consigue alterando las opciones de enmascaramiento de la S-PPU.

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.
En esencia, el proceso funciona así :
- 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.
- Los píxeles de ambos pueden enmascararse mediante parámetros de ventana individuales.
- 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.
- 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 , 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 .
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 .
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 .
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.






