PALETA DE LA NES/FAMICOM PARTE 1 – PARADOJA DE COLOR

¿Pero qué tiene de especial la Nintendo Entertainment System y el Famicom frente a los otros sistemas?

La NES/FAMICOM no genera señal de color RGB, por el contrario es el resultado de una fuente de tonos emitidos como señal NTSC/PAL  directamente desde el chip gráfico (PPU) en señal de VIDEO COMPUESTO a la TV.

NES DIRECTO.png

No existe una  referencia oficial de colores en NES/FAMICOM lo que la hace interesante ya que involucra muchos temas de TEORÍA DE COLOR y TV ANALOGO.
Diferentes paletas de la NES en RGB emulación Fuente Reddit

RESUMEN DE LA SERIE PALETA DE LA NES/FAMICOM

  • Prologo o “RGB resumen” pretende exponer la señal de RGB
  • En esta Primera parte describiré los dilemas de la paleta  del FAMICON/NES.
  • Segunda parte abordaré unas explicaciones sobre la modulación de cuadratura y su relación con la paleta
  • Tercera parte abordaré los temas de transistores JFET, el DAC  y  la Señal de modulación de la patente.

INTRODUCCIÓN

Los componentes de la NES/FAMICOM son reducciones o copias de procesadores populares de la época.

Es común encontrar que la PPU de la NES/FAMICOM deriva de alguna manera del TMS9918A de texas instrument y fue modificada por la RICOH para Nintendo Japón en 1980. En este punto las cosas no inician bien para el estudio de la paleta:

“Si bien las señales de impresión de datos variables no son exactamente equivalentes a los colores NTSC estándar, las diferencias pueden ser fácilmente ajustadas con los controles de color y matiz de lA TV usada” DATASHEET TMS9918A

También debemos recordar que la FAMICOM japonesa no disponía de  un conector RCA  de  VIDEO COMPUESTO en su primera versión de 1980, pero si  en la versión para el mercado norteamericano en 1985 denominada NES (Nintendo Enterteiment System).

nes ppu
Fuente: Flickr

Como comprenderán, existen muchos articulo sobre como funciona la NES/FAMICOM y sendas enciclopedias de desarrollo en inglés y  quiero llegar al grano. Si quieres profundizar en el tema a continuación algunos enlaces:

Fuera de toda discusión debería dejar claro que no abordo las versiones arcade de la placa FAMICOM el PlayChoice-10 y  Vs. Unisystem con capacidades RGB
Visitar: Nintendo’s PlayChoice-10 – The Arcade Advertisement

Fuente: Foros

Como intentare convencerles hasta final de este articulo mi intención no será sustentar una subjetividad de la paleta, sino todo lo contrario. En otras palabras, no terminaré exponiendo que la paleta depende del observador, sino que se debe a las características arbitrarias y enigmáticas de su creación.

Considerare 5 tipos de paletas:

  1. La leyenda de una paleta construida mitológicamente, creada para ser perfecta
  2. La generada según los documentos de la PPU 2202
  3. La que observa el programador moderno, (homebrew)
  4. Las paletas de emulación tanto en hardware como en software, que no son paletas reales, sino modernas paletas de 8 bits prefijadas
  5. Finalmente propongo un ejercicio de construcción de una paleta

LA  PALETA MITOLÓGICA

Cuenta la leyenda que en 1982, Masayuki Uemura,  creador de la  FAMICON/NES, con el fin de reducir el precio redujo intencionalmente o consecuentemente las capacidades de reproducción de color de la  nueva consola.  Con la colaboración del resto del personal seleccionarón  un conjunto de colores que la TV Análoga de la época pudiera mostrar. La leyenda también comenta que esta era una paleta tan maravillosa y revolucionaria que extasió hasta al mismo Shigeru Miyamoto.

La siguiente imagen representa una aproximación en RGB de los  64 colores de la paleta de la  PPU (procesador interno de vídeo).

Palette NTSC.png

Fuente: NES Palette

Quiero insistir en esta idea: “No existe referencia de esta paleta real” y esta debe  generarse por una NES/FAMICOM Original.  Los colores reales de la paleta se pueden obtener con un cartucho un pequeño programa y  la ayuda de un osciloscopio. La captura de datos permite determinar el tono, la saturación y el brillo de cada color. También es posible estimarla mediante la  captura de vídeo a un computador y la extracción de los valores RGB con un programa de edición.

Puedes visitar Ripping the NES Virtual Console palette

Image

Fuente:  Various questions about the color palette and emulators

LA PALETA REAL PPU

En este punto quiero anotar que a menos que los chinos tengan información de los esquemas internos la PPU es una caja negra. En este respecto es clara la información de entradas-salida, pero es muy complejo comprender el gran número de documentos existentes  que no ofrecen esquemas electrónicos.

La generación de señal de video desde la PPU es muy extensa, por lo que les invito a  visitar esta página de NesDEV: NTSC video

nes color

Fuente: Patente del PPU NES

La PPU dispone de un banco de RAM (35) interna, no es accesible desde el exterior. Cada registro en esta RAM es de 6 bits,  los 2 bits más significativos del registro corresponden al nivel de color  y los 4 bits restantes que seleccionan 1 de 12 tipos de señal de fase.

543210
||||||||
||     ++++- Fase (direcciona la 12 tipos de fase)
||++----- Level (determina el nivel de color)

La PPU genera 12 tipos de señal en frecuencia de colorburst de onda cuadrada (~3.58 MHz NTSC PALN) en diferentes FASES. Con diferentes niveles de tensión de referencia.

fases.png
Importante! Imagen es orientativa posiblemente no sea la verdadera forma de los patrones de tono

Fases de señal senoidal (Pashe shift):  las funciones trigonométricas como el seno y coseno pueden trasladarse matemáticamente en el tiempo a esta diferencia de ángulo con el origen se llama Pashe shift.

Fuente: http://images.tutorvista.com/

La señal es CODIFICADA y enviada a un DAC (Conversor DIGITAL A ANÁLOGO)  de 8 Bits, en otras palabras 9 resistencias.  Es claro que no genera señal suave pero si una señal dentada.

Fuente:  ANALOG AND DIGITAL

En el tema de COLOR las compuertas en el DAC es complicado pero tiene algo de lógica, la LUMA se suma a la fase para completar el color. Pero la fase es una señal que oscila, es el cambio de frecuencia de la fase lo que modula la señal en las compuertas (NAND + MOSFET suman la señal de salida en COLOR) o algo similar.

La imagen inferior es aproximación una educativa, pero la clave se encuentra en los tonos base y son el principal enigma de la paleta real.

SEÑAL 256
El DAC de la NES/FAMICOM puede representar 256 valores, estimando 12 niveles para cada escalón de brillo correspondiente a los valores de Crominancia

En este punto todo parece muy confuso y realmente lo es. NINTENDO optó por cuatro niveles de LUMA por 12 posibilidades de tono diferente.

Bajo este resumen educativo la NES/FAMICOM genera 12 x 4=48 tonos diferentes de color real pero obviando los tonos grises y  tonos negro. En este caso debemos obviar los primeros tonos de gris que son solo variaciones de LUMA Y y no de  información de color.

fases

En la paleta del NES/FAMICOM   segun  NesDEV FAQ:

  • Ausencia de color AMARILLO  PURO (#FFFF00, H60°-S100%-L50%)
  • Una  predominante cantidad de color NEGRO de relleno.

En este punto me temo debo creer, que esta es una forma arbitraria de generar el color puede ser causado por: 1) el interés hacer confusa la patente  o 2) por una estrategia de reducir los costos.   Es el secreto de la paradójica paleta de NES/FAMICOM

Nota: Es de observar que eL TMS9918A no genera color de esta manera extraña, pero sin en señal de color RGB.

Finalmente, existen limitaciones en la modulación de color por la velocidad del procesador, el tamaño de la RAM de los colores generados y  el ruido en la salida de VIDEO COMPUESTO. Esto se puede simular por software EMULADOR. En la imagen inferior muestran las  capturas de pantalla de dos emuladores diferentes y  con sus respectivos filtros NTSC. Estas capturas no usan sombreadores (SHADERS).

NESTOPIA

FCEUX.png

LA PALETA  PARA EL PROGRAMADOR MODERNO

La NES/FAMICOM facilita ÍNDICES/ARREGLOS que apuntan a la paleta principal. Cada uno de estos son separados, se dispone de  un ÍNDICE para el fondo y uno para los SPRITES.

  • Dispone de  4 ÍNDICES por Sprite para apuntar a 12 colores.  En los SPRITES se reserva un color para la transparencia, es decir este no se dibuja sobre el fondo.
  • Solo se dispone de un ÍNDICE para el fondo con 13 colores
  • Es posible aumentar  el tamaño los ÍNDICES en el cartucho mediante el uso de RAM adicional dentro del cartucho

Fuente: NES System Architecture

11-sample-Palette

Fuente Color of NES

LA PALETA EMULACIÓN DE HARDWARE

Para explicar un poco quiero describir la solución desarrollada por NESRGB  http://etim.net.au/nesrgb/, mediante la implementación de hardware en PLD (dispositivo de lógica programada).NES RGB

El PLD se conecta entre la PPU y el bus de datos de la CPU. Cuando la CPU envía los datos en la paleta de RAM (Generador de color), es entonces como  la PLD los captura y almacena. Los datos modificados de color se pasan a la PPU para que esta no quede sin informacion.

El resto de la información de señal requerida se extrae de la salida de VÍDEO COMPUESTO mediante circuitos comparadores, y corresponden a las señales de sincronización vertical y horizontal.

Visita: Instalación de NESRGB en NES top loader por Artemio Urbina

Los datos de vídeo se decodifican como una nueva paleta seleccionada prefijada en el PDL en RGB y pasa hacia una DAC de vídeo incorporado en el mismo. Generalmente la generación de color se da en espacio de color moderno R8G8B8 o R16G16B16.

borrar

Fuente:  NES RGB Color Palette Demo

El MOD RGB de la NES se instala de manera que pueda capturar los datos desde la PPU, colocar  paleta prefijada obviar la PPU y proponer nuevos colores en RGB arbitrariamente seleccionados por el fabricante del MOD.

En la mayoría de los documentos leídos sobre NES emulados con lógica programable FPGA el bloque de generación color de la PPU es reemplazado por un nuevo bloque de color moderno  con capacidades RGB con paletas pre-construidas. Mientras los otros elementos como los multiplexores, los generadores de sprites, etc. son efectivamente implementados.

nes FGPA

Fuente  The Design and Implementation of the Nintendo Entertainment System 

En el caso hardware clónico el tema no es tan claro, pero es lógico comprender que los colores no son necesariamente similares.  También puede visitar  Famicom AV, PAL NES & Dendy chips decapsulation (progress!)

Fuente Wikipedia

LA PALETA EN  LA EMULACIÓN DE SOFTWARE

La emulación de color RGB del NES/FAMICOM no es  real como pudiera ser en otras consolas en RGB nativo.

El emulador como la comenta “Rupert Shuttleworth en su documento Emulating the Nintendo Entertainment System (NES) ”  toma directamente los datos desde el cartucho (quiero decir archivo de la ROM) para la generación de los gráficos.

Al igual que con el HARDWARE El EMULADOR EN SOFTWARE se encarga de construir los gráficos a partir de la escritura de  los registros de la PPU realizadas desde la CPU. En otras palabras no se emula la PPU del NES/FAMICOM  y el EMULADOR plantea una paleta alternativa.

Fuente: NES System Architecture

Es por esta razón que la gran mayoría de los EMULADORES de NES/FAMICOM permiten al usuario cargar paletas de color, para que los más puristas puedan obtener paletas a su gusto, aunque claro es siempre muy discutible si son las del hardware real en VIDEO COMPUESTO. Un ejemplo de paletas construidas automáticamente las puedes encontrar   NTSC NES palette generator por Joel Yliluoma.

Visitar foro: How the NES could have made SNES-level of graphics

EJERCICIO DE UNA PALETA DE 3 BITS o R7G7B7

Como crear una paleta de color arbitraria

La idea propuesta es tan simple como tomar una paleta arbitraria y luego convertir la paleta en 3 bits y observar.  La idea también proviene un poco de la lectura de How to generate color video signals in software – Introduction.

El método más común es el uso de resistencia ponderadas para la transformación de la señal análoga a digital.

Estas se selecciona para conformar un arreglo de tal manera el bite mayor (más significativo) debe producir la menor caída de tensión a la salida.

Es claro se puede requerir de un amplificador para evitar una descompensación (acoplamiento de la impedancia de la salida). Ver figura inferior.

Figura 1.  ADC circuito.

Fuente de la imagen http://smdelectronicayalgomas.blogspot.com.co

Las resistencias reales son elementos fabricados en carbono o elementos similares  y con ciertos valores de error (tolerancia). La distribución de los valores y los errores no son erráticos sino que se deben a una distribución estadística.

“Las resistencias y otras piezas electrónicas están clasificadas para estar dentro de un cierto porcentaje del valor especificado. Un resistor de 1000 ohmios con una tolerancia de ± 10% podría tener un valor real entre 900 y 1100 ohmios.”
De la imagen y texto Fuente: Actual values of 10% tolerance resistors

Las resistencias están presenten en todo tipo de equipos electrónicos, además existen muchos otros  elementos  que  también contienen valores de error.

Bajo esta idea y con un  DAC de 3bit podría ser similar al usado para la versiones árcade de la placa NES/FAMICOM . Ahora bien, en teoría con 3 bits por canal se pueden representar 8 x 8 x 8 =512 colores.

Click en la imagen para alargar de la paleta estimada con 3 bits por color:

nes pallette

Se puede observar; existe una rotación de los bits. Asumo que esta rotación es el resultado del DAC 3 bits y es claramente conveniente  para mantener el sentido didáctico de esta paleta.

Ahora bien el principal inconveniente de la paleta es el color R146G255B219  que es claramente incorrecto y debe ser modificado a  R0G255B255. Irónicamente este color corresponde al fondo del juego SUPER MARIO BROS.

Las siguientes imágenes son el resultado con el color corregido de este pequeño experimento :

SUPER MARIO BROSS.png

Palabras finales

  1. Un poco la idea de todo este cuento es recordar que la NES/FAMICOM fue realizada bajo la premisa de ahorrar dinero y maximizar beneficios a su fabricante NINTENDO.
  2. Sin embargo,  la comodidad de los sistemas de color real 8 bits a 16 bits actuales a convertido esto en un tema innecesariamente complejo e ignorado.
  3. Finalmente, pienso que la paleta es tan enigmática y paradójica como sus creadores.

Anuncios

Un comentario en “PALETA DE LA NES/FAMICOM PARTE 1 – PARADOJA DE COLOR

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s