La Video Computer System de Atari, conocida por sus siglas en su primer periodo de vida, VCS, y más posteriormente como Atari 2600. Se trata ni más ni menos que de la primera consola en ser un éxito de masas en todo el mundo y que consiguió popularizar a los videojuegos y llevarlos a millones de personas. Todo ello utilizando una tecnología única y totalmente rudimentaria en comparación incluso con lo que existía en la época.
Los orígenes de la Atari VCS (2600)
La marca Atari no se popularizó entre el público con la consola de la que estamos hablando, sino con un dispositivo llamado Atari Pong Home TV, el cual había conseguido miniaturizar la compleja placa de la primera máquina recreativa en un dispositivo de pequeño que se podía conectar al televisor y con un coste ínfimo, tanto que no pararon de salir clones por todos sitios y Nolan Bushnell, el por aquel entonces presidente de la compañía vio la necesidad de crear algo que el resto no pudieran copiar.
Por lo que Atari se planteó el uso de un microprocesador integrado, los primeros ya habían empezado a aparecer en el mercado. Estamos hablando del Motorola 6800, el Intel 8080 y su clon mejorado, el Z80 y el MOS 6502. El concepto era permitirles utilizar un mismo chip para diferentes juegos. Al final, la elección de los padres del Atari VCS (2600), Jay Miner y Joe Decuir quienes serían años más tarde los padres de los Atari PC de 8 bits y del Commodore Amiga, fue el chip de MOS.
¿La primera consola basada en cartuchos?
Un cartucho es una pequeña placa con varias memorias ROM que incluye un programa, normalmente un videojuego, al que la CPU de un sistema accede como si fuese parte de su memoria RAM, con la única diferencia de que no puede escribir sobre estos. No obstante, la Atari VCS (2600) no fue la primera consola en basarse en cartuchos de la historia, ya que dicho honor le corresponde a la Fairchild Channel F.
El nombre de Fairchild no os sonará, pero era una de las mayores empresas de microelectrónica de los años 60 y buena parte de los 70. No obstante, la empresa más modesta, Atari, fue la que se llevó el gato al agua y acabo, teniendo el producto más popular.
Inicialmente, Atari no tenía pensado que lo que sería su VCS (2600) usará cartuchos intercambiables, ya que se inició como un proyecto llamado Atari Tank II, el cual tenía que seguir el mismo concepto que la Atari Home Pong, pero mucho más complejo, dado que se basaba en el juego Tank de Kee Games, una marca blanca creada por la propia empresa de Bushnell para tener un falso rival. Sí, la primera guerra comercial en los videojuegos, al menos en recreativas, fue manufacturada.
Curiosamente, el primer juego desarrollado para la Atari VCS 2600 fue Combat, una versión del Tank de Kee Gamesi, por lo que no solo heredo los mandos de control. Claro está, que por aquel entonces los sistemas de juego único basados en recreativas empezaban a popularizarse en el mercado, no solo las basadas en Pong, sino también otros juegos famosos de la época.
Coleco Telstar
No solo la Fairchild Channel F precede a la Atari VCS 2600 como consola basada en cartuchos, sino también la Coleco Telstar Arcade, pero esta era distinta al concepto de una consola original, ya que toda la lógica del juego, en forma de conjuntos de chips TTL se encontraba dentro de sus cartuchos en forma de pirámide.
El concepto era mucho más complejo que el de las recreativas monojuego, ya que la Telstar Arcade ofrecía en un solo producto varias formas distintas de jugar por si el usuario se aburria de un título poder saltar al siguiente.
Para la Atari VCS 2600 se decidió descartar la lógica TTL y utilizar un microprocesador para mover los juegos, por lo que los de Nolan Bushnell solo tenían que preocuparse en distribuir las ROMS con los juegos grabados en estas en forma de cartucho. Lo que marcaría el inicio de la industria de los videojuegos tal y como la conocemos en la actualidad.
El interior de la Atari VCS (2600)
Comparada con otros sistemas de la época, poblada por decenas de chips de la serie 7400 o TTL, la circuitería de la Atari VCS (2600) era muy limpia, dado que había solo tres chips en total. Por lo que se trata de un diseño extremadamente sencillo, pero al mismo tiempo también excesivamente inteligente. Y es que la consola no tenía ni un solo chip de memoria RAM a la vista, aunque existe cierta trampa.
Los tres chips principales eran:
- Una CPU MOS 6502, una versión recortada del MOS 6502 con 13 pines de direccionamiento y capaz solamente de direccionar 8 KB de memoria. Por lo demás, era igual a su hermano mayor. En cuanto a su velocidad de reloj era de 1.19 MHz.
- No obstante, la mitad de los mismos se iba a los cartuchos, los cuales inicialmente tenían un tamaño máximo de 4 KB.
- El segundo chip era un MOS 6532 o RIOT, siglas de RAM-I/O-Timer que contenía los siguientes componentes:
- 128 bytes de memoria SRAM.
- Dos interfaces de E/S para periféricos de 8 bits bidireccionales para los mandos.
- Un reloj programable.
- Y ya para terminar el Atari TIA, o Television Interface Adapter, creado por Joe Decuir y Jay Miner, se trata del primer chip gráfico de la historia de los videojuegos y su trabajo era el de generar tanto los gráficos en pantalla como el sonido, será en este chip en el que nos centraremos a partir de este punto.
¿Cómo generaba la Atari VCS (2600) sus gráficos)
La memoria RAM de la Atari VCS (2600) es muy limitada, tiene un total de 128 bytes situados en el MOS 6532, lo cual es una cantidad de memoria insuficiente para cualquier tipo de búfer de imagen: incluyendo un Tile Map o un Line Buffer. Es por ello que se requiere que los juegos generen sus gráficos en pantalla a medida que el haz de electrones viajaba por la pantalla del CRT.
La forma de generar los gráficos del TIA en la Atari VCS (2600) consistía en leer una serie de direcciones de memoria concretas en los 128 bytes que había dentro del chip RIOT, cuyos valores se cambiaban durante los periodos HBlank VBlank y Overscan, el cual en que el haz de electrones del televisor CRT saltaba a la siguiente línea de escaneo, por lo que los desarrolladores tenían que ir contando los ciclos de reloj del TIA, el cual funcionaba a 3.58 MHz, el mismo que la portadora de color del estándar de televisión NTSC. Todo ello para formar una imagen en pantalla a 192 x 160 píxeles a una tasa de refresco de 60 Hz
La forma de generar gráficos en la Atari VCS era cuanto menos extraña para la época, ya que al contrario de otros sistemas de la época como algunas máquinas recreativas o el Apple II no utilizaba gráficos basados en caracteres. Más bien lo que hacía era dibujar usando líneas, esto queda muy claro en la imagen arriba de estas líneas, el cual corresponde a la conversión de Space Invaders de TAITO para la consola, el que fue su mayor éxito. Por lo que no estamos ante un hardware que se basará en terminales de texto como si ocurría con los sistemas contemporáneos al mismo.
Versiones PAL y SECAM
Dado que en Europa no se utilizaba el estándar NTSC, sino el estándar PAL y en el caso de Francia el SECAM, los tiempos eran distintos, esto hacía que Atari no solo tuviese que rehacer la consola al completo para respetar los tiempos, sino que además los juegos también requerían una reprogramación interna, la cual no solo afectaba los gráficos, sino también al sonido debido a que la tasa de refresco PAL es de 50 Hz.
¿Diferencias entre ambas versiones? Las versiones PAL dispone solo de 104 colores distintos, pero la que peor se lo lleva es la versión SECAM cuya paleta se vio limitada a solo 8 colores diferentes en pantalla. Lo cual hacía que los títulos tuviesen un colorido un tanto … diferente, en la versión francesa de la consola.
Los registros del TIA
Para generar la pantalla, la CPU, el MOS 6507, escribe en una serie de direcciones de memoria en los 128 bytes dentro del RIOT que luego el TIA lee para generar la siguiente línea de escaneo. Lo que obliga a los programadores a contar los ciclos de reloj en el código para ir dibujando la imagen, tanto del 6507 como del TIA. A este se le llama Racing the Beam o correr contra el haz (de electrones), ya que es literalmente lo que se hacía.
Hemos de partir del hecho que si bien buena parte de las funcionalidades del TIA podría hacerlas la CPU, no las haría con la velocidad suficiente del chip gráfico de la Atari VCS (2600) y requerirían grandes cantidades de memoria. Por lo que la idea con los registros del TIA es simple, el escribir ciertos datos en ciertas direcciones de memoria lo que hace es activar ciertas funciones, lo que convierte al diseño del chip creado por Joe Decuir y Jay Miner en algo tan sencillo como elegante.
Todos los registros son de 8 bits, sin embargo, alguno de ellos solo necesitan ser invocados para que se active su función. Los hemos ordenado en diferentes secciones para que sean más comprensibles. En todo caso, esto no es un manual de programación de esta consola, sino una descripción del hardware y más bien los ponemos en este artículo para complementar la descripción de la consola.
Campo de juego (Playfield)
El campo de juego son las partes que no son móviles del escenario, en el caso del Atari VCS (2600) todo el Playfield es de un mismo color, definido por el registro COLORPF. Mientra que el color de fondo o Background se define en el registro COLORBK.
En cuanto a la forma de dibujarlo, esto se hace con 3 registros distintos (PF0, PF1, y PF2), los cuales son de 4 bits el primero y 8 bits los otros dos, lo que hacen un total de 20 bits para definir cada línea del escenario. Obviamente dichos registros se han de renovar en cada línea de escaneo. Cada bit aquí representan 4 píxeles del escenario, por lo que esto nos permite definir la mitad del escenario.
Otro registro muy importante es el CTRLPF, ya que:
- El bit 0 indica si se refleja el escenario en la otra mitad de la pantalla, fijaos que en muchos títulos del VCS la mitad derecha es una versión espejo de la mitad izquierda.
- En cuanto al bit 1, este permite tener un marcador con colores diferentes al escenario.
- Si el valor es 0 el color es el del registro del COLORPF
- En cambio, si el valor es 1, la mitad izquierda del COLUP0 y la mitad derecha del COLUP1.
- Podemos colocar los objetos móviles detrás del escenario o delante con el bit 2.
- El bit 3 no se usa.
- Los bits 4 y 5 marcan el tamaño del objeto móvil bola.
- 00: 1 píxel
- 01: 2 píxeles
- 10: 4 píxeles
- 11: 8 píxeles
- Los bits 6 y 7 no se usan.
Objetos móviles
écnicamente, el Atari VCS 2600 define los gráficos en tres categorías: el campo de juego, el cual ya hemos descrito, el jugador 1 y el jugador 2. Sin embargo, hemos de partir del hecho que fue el videojuego Combat la base para el diseño de la Atari VCS (2600) por lo que los objetos móviles se definen como una serie de registros para el jugador 0 y el jugador 1.
- Los registros GRP0/GRP1 define el gráfico del jugador 0 y el jugador 1 en todos sus 8 bits.
- Para controlar el movimiento del jugador 0 y 1 se utilizan los registros HMP0/HMP1
- Si activamos el bit 3 de los registros REFP0/REFP1, entonces mostrará los gráficos en modo espejo.
- NUSIZ0/NUSIZ1 nos permite colocar varias copias y variar el tamaño del gráfico del jugador 0 y 1.
- Los gráficos Missile son elementos de 1 solo píxel, los cuales representaban el disparo de cada uno de los tanques:
- ENAM0/ENAM1 activa o desactiva los misiles en la próxima línea de escaneo.
- HMM0/HMM1: índica cuantos píxeles se desplaza el misil correspondiente respecto a la anterior línea de escaneo.
- RESMP0/RESMP1: coloca el misil en la misma posición que el jugador 0 o 1.
- La bola es un objeto independiente, usa el color del escenario y su movimiento se controla con el registro HMBL
Detección de colisiones y audio
La detección de colisiones ocurre cuando dos objetos se encuentran en el mismo lugar de la pantalla, pues bien, el TIA de la Atari VCS (2600) es capaz de informarle a la CPU cuando esto ocurre, lo que evita el tener que desarrollar una rutina compleja para ello. A diferencia de los registros para dibujar los objetos en pantalla, estos no se generan por la CPU para que los lea el TIA, sino a la inversa.
En cuanto al audio, en el Atari VCS (2600) este es bastante primitivo, no mucho más que el de un altavoz integrado, ya que dispone solo de 2 canales de audio generando una onda cuadrada que se controla a través de 3 registros distintos por canal:
- El tono es controlado por 4 bits de los registros AUDC0 y AUDC1.
- La frecuencia es controlada por 5 bits de los registros AUDF0 y AUDF1.
- El volumen por 4 bits de los registros AUDV0 y AUDV1.
Esto es todo, esperamos que os haya sido informativo este documento para haceros una idea del funcionamiento de la Atari VCS (2600), una consola única en su arquitectura y que popularizo los videojuegos.
Más allá de la VCS
Bajo el mandato de Nolan Bushnell el sucesor de la VCS 2600 tenia que ser lanzado en 1979, pero cuando la empresa fue vendida a la Time Warner el mapa de ruta cambio por completo dejando al sistema pensado para 1979 completamente abandonado, pero principalmente Atari se vio complemente influenciada por el enorme éxito del Apple II en el nuevo mercado que acababa de nacer.
La evolución lógica del hardware de la VCS lo vimos en forma del hardware del ordenador Atari 800 y sus sucesores, los cuales formaron el hardware común para los ordenadores de Atari de 8 bits que fueron lanzados de 1979 en adelante. Se dice que lo que termino siendo la Atari 400, que iba a ser originalmente una consola, quién sabe, de lo que si que tenemos referencias es de un proyecto llamado Atari 3200 o Super-Stella, también conocido internamente como Sylvia. ¿Sus especificaciones técnicas?
- Super TIA
- FRANTIC
- 6502 «Sally» (Por lo que la consola puede direccionar hasta 64KB de memoria, esto significa al mismo tiempo que los cartuchos aumentan su capacidad a unos 32KB.
- 6532 como E/S y para la compatibilidad hacía atrás.
- 2KB de SRAM (No accesible en modo VCS)
Como se puede ver, el hardware inicial tomaba algunos elementos del hardware del Atari 800 y del VCS, pero reduciendo altamente los costes para que fuese viable como consola de videojuegos.