Graficos 8bit/16bits Kindergarten

El primer paso es el más difícil, quisiera intentar el exponer brevemente como funciona una máquina DIGITAL DE VIDEO JUEGOS primitiva a lo Kindergarten sin muchos detalles técnicos.

http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento

Placa Mega drive (genesis)

Los primeros video juegos para uso no eran digitales, eran ANÁLOGOS. Mediante circuitos PASIVOS (resistencias y condensadores) con el uso de amplificadores operacionales y transistores Ralph Baer logró producir un cuadrado en movimiento en pantalla.

ralph_baer

Para 1976 ya se habían lanzado las primeras maquinas de vídeo juegos con micro procesadores. Para nuestra fortuna una consola de juegos viejuna DIGITAL tiene pocas partes y es un esquema que se repite y hablamos de tiempos donde no había troll de patentes, eran  tiempos de la ley de la selva.

Esquema contiene:

PROCESADOR – BUS DE DATOS – RAM – ROM – ENTRADAS – PROCESADOR GRÁFICO – SALIDA DE VIDEO

Tenemos un PROCESADOR es el corazón de la máquina, no es más que una serie de circuitos electrónicos interconectados y reducidos a la máxima expresión microchip.

El PROCESADOR está construido de tal manera que al introducir una serie de instrucciones o mandatos produce una salida, y lo hace como una calculadora de “esas LCD suma papas/manzanas”, porque el primer procesador INTEL está destinado a una calculadora

La primera calculadora digital con un INTEL 4004 desarrollada por Busicom en Japón

El PROCESADOR parece ser complicado, pero es más sencillo entender si se compara con una calculadora.

Para ejecutar cada una las instrucciones se utilizan una serie de pequeños bancos o REGISTROS  de 8 bits o 16 bits. Un poco más claro en número de monos humanos  hasta el 255 se puede almacenar en 8 bits y  hasta el 65535 en 16 bits.

Estos registros son poco y se destinan almacenar temporalmente los datos de entrada de las instrucciones, la instrucciones claro esta son el SOFTWARE.

Analogía de Kindergarten de la CPU es un ábaco no tiene mas que las líneas de ábaco así que sumar y restar es solo cambiar entre las líneas del ábaco.

Es claro que estos aparatos viejos solo trabajan con enteros positivos como las papas/manzanas/zanahorias que no son negativas, ni fraccionarias, ni irracionales.

Existen muchos tipos de instrucciones o mandatos que puede realizar el PROCESADOR. Algunas como la asignación de datos a un registro, operaciones aritméticas entre registros,  mover/copiar/borrar datos de la memoria RAM/ROM, comparación/suma/resta de números y saltos de programa (o salto-comparación).

EL SOFTWARE o esta serie de instrucciones son recibidas directamente desde un dispositivo de almacenamiento en nuestro caso una ROM o sencillamente una memoria,  “cartucho”, que es de solo lectura y que accede a través de un BUS DE DATOS.

borrar

La analogía Kindergarten es que un BUS DE DATOS es como una banda transportadora pero que solo puede transportar una caja a la vez

En otras palabras el PROCESADOR accede a todos los elementos como si se tratara de un libro de datos que se accede a través de un número de página. Claro el ancho de bus  es el mismo ancho o número los bits es el mismo que numero máximo del procesador que era  8 o 16 btis.

Lo genial porque cuando enciendes una consola viejuna esta lee directamente la ROM  en búsqueda de instrucciones y no tienes que esperar una pantalla de carga y el logotipo de la consola si existe se guarda en la ROM del juego.

Comprar un DLC esperar un parche etc son cosas muy chulas que no teníamos en los 80s, todo gracias a que no puedes modificar una ROM.

Este tipo de ROM permite borrado mediante luz ultravioleta y es el mas comúnmente usado en la actualidad

La velocidad de la lectura del programa la controla un reloj o más bien un oscilador de cuarzo que sincroniza el sistema (los famosos Hz hercios de potencia). De esta manera un contador en el procesador lee secuencialmente cada una instrucciones y las acata ordendamente. Algunas instrucciones pueden ejecutarse en un ciclo de reloj  (1 HZ) y otras pueden tomar 2 o 4 según lo indique el fabricante del procesador. La velocidad de procesamiento depende de la  respuesta de los semiconductores o  latencia,  y la precisión depende del número de integrados dentro del chip.

Imagen

La analogía kindergarten del reloj es el tipo que te latiga cada segundo para que te muevas más rápido. Si no te da látigo pues paras pero  a mas látigo mas rápido

Existe conectado al bus de direcciones y de lectura un chip que se encarga de almacenar  información o “memoria” RAM que se borra cuando se apaga.  En nuestros aparatos viejunos cuantos kilobytes son suficientes. Si comparamos con el 2016 estamos sugiriendo unos millones de veces mayor, les dejo el cálculo y  tampoco será un lió.

Que guardamos en la RAM?  pues información como puntuación, datos gráficos y cualquier cosa que podamos usar después. En consolas viejas no se guardan instrucciones en RAM!

https://i2.wp.com/imrannazar.com/content/img/jsgb-mmu-map.png
Mapa de memoria GB

Encontramos los SISTEMA DE ENTRADA  osea los botones.  Es claro son interruptores pulsadores apagado y prendido o un circuito que hace las veces de interfaces como el (S)NES.

Finalizando y siendo lo más importante en una consola viejuna esta el PROCESADOR DE VIDEO, que tiene muchos nombres según la consola retro así que a esta le enviamos instrucciones, sprites tiles, etc. Explicare algunos detalles antes de terminar este pequeño articulo.

https://i2.wp.com/emu-docs.org/Genesis/mega3.png

Arquitectura Mega Drive

Llegamos a unas aclaraciones muy importantes:

  1. No hay misterio en las consolas viejunas, son un libro abierto.
  2. Todas las consolas usan procesador y generalmente en los 80′ y 90´ eran clonicos  o derivaciones de versiones de otros procesadores. Como ejemplos los Zilog y los Motorola eran los más populares.
  3. Toda consola viejuna tiene un bus de direcciones y cuando miras una hoja. En explicaciones avanzadas veras como esta memoria se divide según cada aplicación o video consola.
  4. Pueden existir varios chip RAM para guardar diferentes datos, los datos del programa, los datos de video, sonido etc.
  5. El número de direcciones de RAM y ROM son muy limitadas por lo que los cartuchos podían implementar circuitos adicionales para engañar al sistema haciéndole creer que solo accedemos a la memoria direccionada cuando en realidad esta es mayor.
  6. Algunos cartuchos tiene ROM y RAM adicionales lo que era muy común, también agregaban una pequeña batería para guardar las partidas décadas antes de las flash-RAM (pendrives)
  7. Incluso el cartucho podía incluir procesadores adicionales.
  8. Las consolas más avanzadas como la Gameboy Advance (GBA) incorporan ya una DMA que en resumen es un controlador de memoria e independiente al procesador.
https://i2.wp.com/www.sqa.org.uk/e-learning/CompArch02CD/images/pic011.jpg

DMA

para aclarar una datos de BITS y MEGAHERCIOS pueden leer estos articulos:

PROCESADOR DE VIDEO

El trabajo de la CPU  de una consola retro no es crear imágenes que entienda una TV o un LCD ya que esto se encargo a un procesador especial de vídeo dedicado.

https://i0.wp.com/upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Nesppu.jpg/800px-Nesppu.jpg

PPU (Picture Processing Unit) Nintendo NES Ricoh RP2C07

Se confunde muchas veces GPU  con estas unidades de la consola viejuna. Si, tienen la misma función pero es que estos procesadores modernos realizan tareas muy diferentes y corresponden  a complejos cálculos 3D!

Igualmente la consola viejuna no puede  generar gráficos como los  PC’s y algunos viejos ordenadores en donde el programador viejuno que podían acceder a la memoria y escribir directamente en ella imágenes completas. Por el contrario, la consola viejuna dispone segmento de memoria en los cuales se almacenan recursos que son Sprites,  la Paleta de colores y los Tile maps.

LOS SPRITES

Son  físicamente bancos de memoria de tamaño determinado. Es decir, un sprite no tiene cualquier tamaño si no el que el generador gráfico permite, y estamos hablando de 8×8 *píxeles, 16×16, 16×8, es decir pequeños puntos de información digital o de memoria que se representan en pantalla.

Por razones prácticas las dimensiones alto y ancho de los sprites se escriben en múltiplos de 8 porque representan bits.

Generalmente es común que internamente los datos de sprite incluyen la posición en pantalla en píxeles.

Sprite de un juego que solo viejunos pueden reconocer

PALETA DE COLORES

Como vemos en colores y la TV es de color, pero el procesador primitivo viejuno no tenía capacidad de reproducir todos los colores como lo hacen las modernas maquinas en color verdadero RGB, en lugar de esto estas consolas solo  mostrar colores de una paleta pequeña por pantalla.

TILE MAPS

El procesador de vídeo no puede mostrar imágenes directas que no fueran diminutos cuadros tipo SPRITE. Se permitía reconstruirlas como si se tratara de  un rompecabezas mediante pequeños cuadros llamados TILES y que cuando se unían formaban el  tile map, en palabras  menos computacionales frikis el  procesador manipula los sprites y formaban un todo.

https://i0.wp.com/i155.photobucket.com/albums/s292/Deigo2006/grid1.png
Tilemap en pantalla
https://i2.wp.com/media.tojicode.com/zelda/root/texture/zelda-tiles.png
Si logras identificar la imagen es porque eres viejuno!

TAREAS DEL PROCESADOR DE IMAGEN

El procesador especializado en gráficos lee los elementos en segmentos de memoria de cada uno de los recursos de vídeo que se han colocado para formar parte del juego.

Para esto existen 2 opciones la primera opción o más primitiva  es generar el pulso de señal de VÍDEO COMPUESTO desde el procesador que es muy primitivo y poco común. La segunda opción más popular era generar la  señal RGB y luego pasarla a espacio de VIDEO COMPUESTO o de RADIO FRECUENCIA.

borrar

Aclaraciones sobre los procesadores de video:

  • El tamaño de memoria está limitado y de este depende el tamaño reservado para  los recursos.
  • En la medida que avanzamos en generaciones de consolas viejunas mejora la calidad de imagen reproducible.

LECTURAS AVANZADAS EN ESPAÑOL

Gráficos en consolas antiguas (I): Atari VCS 2600
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (II): Intellivision
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Graficos en consolas antiguas (III): Atari 5200.
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Graficos en consolas antiguas (IV): Colecovision
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (V): Famicom/NES
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (VII): Master System y Game Gear
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (VIII): Game Boy y Game Boy Colo
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (IX): Sega Genesis/Mega Drive
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (X): Generación de fondos y sprites.
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (XI): SNES
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (XII): Atari Lynx
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (XIII): Sega/Mega CD y Sega 32X
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en consolas antiguas (Rarezas japonesas I): PC-Engine y derivados
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en Consolas Antiguas (XV): Sega Saturn
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en Consolas Antiguas (XVII): El Mapeado de Texturas
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en Consolas Antiguas (XIX): Sony PlayStation
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Gráficos en Consolas Antiguas (XX): Nintendo64
https://josepjroca.wordpress.com/…/graficos-en-consolas-an…/

Imagen5

Imagen1Imagen2
Imagen3Imagen6Imagen7Imagen8Imagen9

Anuncios

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 )

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

Conectando a %s