Graficos en consolas antiguas (III): Atari 5200.

El caso de la Atari 5200 es curioso, ya que es una consola que nunca debió existir.

/home/wpcom/public_html/wp-content/blogs.dir/247/15559801/files/2014/12/img_0251.jpg

Fue una consola que nunca debió haber salido a la luz y que mirando en perspectiva uno se pregunta… ¿En que estaban pensando los directivos de Atari cuando la lanzaron? Para empezar pese a que fue lanzada en 1983 no es más que un reciclaje del hardware de los Atari 400 y Atari 800 que habían sido lanzados en 1979 pero con la diferencia que no eran compatibles entre si ya que:

  • Ciertas direcciones de memoria estaban cambiadas de posición por lo que para los desarrolladores
  • La 5200 no podía cargar cartuchos para la serie Atari 400/Atari 800.
  • Atari tenía un proyecto interno con mejor hardware, la 3600 que acabo por convertirse en la 7800.
  • Por no hablar de su porquería de controlador.

Sus especificaciones técnicas fueron:

  • CPU MOS 6502 a 1.78Mhz.
  • Sistema Gráfico: ANTIC+GTIA.
  • RAM: 16KB.
  • Sonido: GTIA.

Lo que llama la atención a simple vista es el salto de los 128 bytes de memoria desde la VCS 2600 a los 16KB de memoria de la 5200 (un salto de 128 veces más memoria) y esto significaba que la consola podía tener un búfer de imagen completo en pantalla, desgraciadamente las cosas no fueron así ya que Atari fue bastante continuista en el desarrollo del hardware (el cual fue desarrollado en 1978 y por tanto justo después que el de la VCS 2600), Atari no quiso romper el paradigma de desarrollo de la VCS 2600 en sus ordenadores de 8 bits por lo que se puede considerar una versión avanzada de la VCS 2600 de cara al desarrollo, por lo que os recomiendo mirar la entrada dedicada a dicha consola.

El hardware de la 5200 añadía un elemento adicional a la ecuación llamado ANTIC, este podría considerarse hoy en día el equivalente al procesador de comandos de una GPU. El ANTIC al contrario del GTIA no era una máquina de estado sino que tenía su propio set de instrucciones y corría código propio, no obstante tenía una limitación enorme, no podía escribir datos en la RAM y solo podía leer de esta por lo que las manipulaciones de los datos seguían corriendo de manos de la CPU.

¿Entonces cual era el trabajo del ANTIC? En cada fotograma la CPU generaba una lista de pantalla que luego el ANTIC cargaba en su memoria interna y ejecutaba el código durante la etapa de dibujado. Es decir, cuando terminaba el periodo del VBlank y el VSync la CPU la pasaba el control al ANTIC para que dibujase la escena. Dado que el acceso a la RAM es intercalado entre el ANTIC y la CPU se producía el problema que cuando un procesador accedía a la memoria el otro no podía hacerlo, no es que el MOS 6502 estuviese parado mientras se dibujaba la escena sino que este accedía a memoria para leer cada dos ciclos por lo que el ANTIC accedía a memoria un 50% del tiempo y el 6502 otro 50% del tiempo, dejando la CPU de la consola inactiva la mitad del tiempo.

Ahora bien, el GTIA no soportaba patrones/sprites por el hecho de no poder acceder a memoria pero el ANTIC si que podía acceder a memoria, Esto significa que la consola en teoría no utilizaba sprites/patrones como la Intellivision, sino que para dibujar la escena utilizaba una versión más avanzada del TIA llamada GTIA, la cual seguía sin tener un acceso directo a la memoria por si mismo, Atari añadió una serie de mejoras al GTIA respecto a su predecesor:

  • Paleta de colores de 256 colores en vez de 128 colores.
  • No hay un solo registro para el color del campo de juego sino que ahora hay 4.
  • Los registros jugador y misil han sido duplicados.
  • Ya no existe el registro bola.
  • La resolución seguía siendo la misma: 160×192.

Sí miramos los juegos que tenia la consola esta podía hacer funcionar sprites/patrones.

gremlins5200Screen

frogger5200Screen

La clave estaba en que el ANTIC realizaba lo que se llama Horizontal Blanking Interrupt/Raster Interrupt. Este es el acceso a la memoria principal durante el periodo de HBlanking para cambiar los valores dentro de la memoria de video. En el caso de la 5200 el GTIA no tenía memoria propia y lo que hacía el ANTIC era cambiar el valor de los registros del GTIA en cada Horizontal Blanking en vez de hacerlo solo durante el VBlank. Otra de las novedades que permitió el ANTIC fue el scroll (desplazamiento de pantalla), en el caso de la Intellivision y la VCS 2600 estas no soportaban desplazamiento de pantalla y los juegos disponibles para las mismas eran de una sola pantalla.

Dado que el ANTIC tenía su propio set de instrucciones los desarrolladores podían crear listas de pantalla en el código dirigidas directamente al ANTIC en el código del juego.  El 6502 solo se encargaba de controlar el periodo de VSync+VBlank y el del overscan, por lo que esa era la única parte del código gráfico que corría en la CPU. Una vez terminado el dibujado de la escena el 6502 llenaba el registro WSYNC del GTIA para realizar el overscan, reactivaba el registro VSync llegado el momento para resetear la pantalla 0, realizaba el periodo de VBlank y le pasaba luego el control al ANTIC repitiendo así el ciclo en cada fotograma.

Teniendo en cuenta que el hardware original es de 1979 es bastante impresionante pero no lo fue para 1983, año en que la Colecovision con el superior TMS9918a ya se encontraba en el mercado.

challenger

Comentario original:

Molan tus entradas sobre consolas retro. Yo aun recuerdo mi atari XE con morriña

Ah, el Atari XE Game System,

Atari_XEGS

 

Pues su hardware era exactamente el mismo que la 5200, se trataba de lo que tenia que haber sido la 5200 ya que:

  • Tenía control decente en comparación con la 5200.
  • Funcionaba con los cartuchos de juegos para los ordenadores de 8 bits de Atari.
  • Se trataba de un Atari 65XE en formato consola, por lo disponía de 64KB de memoria RAM. Obviamente no podia acceder a todos ellos dado que el 6502 como mucho podía direccionar esa cantidad de memoria por lo que la RAM disponible era menor ya que el resto del direccionamiento se iba al cartucho.

¿El problema? Llego demasiado tarde al mercado ya que fue lanzado en… ¡1987! Año en el que la NES empezaba a despuntar.

Eso es todo, si tenéis alguna duda utilizad los comentarios.

Anuncios