Con solo 2 millones de consolas vendidas en todo el mundo, la Atari 7800 perdió por completo la guerra comercial frente a la Master System de SEGA que llegó a los casi 10 millones en ventas y aún más frente a los 62 millones de la Famicom/NES de Nintendo, por lo que marco el colapso y la falta de confianza de los usuarios en Atari. Sin embargo, se trata de una consola con un hardware con uno de los chips gráficos más interesantes de su época.
La consola que nadie esperaba
En 1981 Atari llevó a los juzgados una empresa llamada General Computer Corporation o GCC, el motivo de la demanda era que crearon una versión modificada de la recreativa Missile Command en forma de Super Missile Comand, al final acordaron que GCC dejase de vender dichas modificaciones, pero viendo el talento que tenían fueron contratados, primero para hacer juegos de la 2600, luego produjeron la mitad del catálogo de la 5200, pero sobre todo se les recuerda por ser los creadores de la Atari 7800.
En pleno 1983 y viendo cómo la 5200 era un fiasco, el todavía presidente de Atari Ray Kassar mandó a la gente de GCC la creación de una consola con capacidades iguales o superiores a la de la 5200, pero que fuese mucho más barata y que fuese compatible hacia atrás con todo el catálogo de la Atari VCS. El resultado fue un proyecto inicialmente llamado Atari 3600 que evolucionó con el tiempo a Atari 7800 y cuyo lanzamiento tenía que producirse en 1984.
Sin embargo, Atari se vendió dividida en dos mitades. Una encargada del desarrollo de videojuegos terminaría en manos de Namco y recibiría el nombre de Atari Games, centrándose en las recreativas. La otra, Atari Corporation terminó en manos de la familia Tramiel tras ser echados de Commodore, quienes lanzaron de mala gana la consola en 1986 y con un total desprecio comercial.
D
Las entrañas de la Atari 7800
Dado que la consola se pensó para ser compatible hacia atrás con los cartuchos de la VCS, la Atari 7800 reutiliza parte de su circuitería, principalmente dos chips:
- El Television Interface Adapter o TIA que se utilizaba para generar los gráficos y el sonido en dicha consola.
- En el modo 7800 solo se usa como chip de sonido, pero dado que era inferior a otros chips de la época, se da la posibilidad de integrar un chip alternativo en los cartuchos.
- El RIOT o MOS 6532, que en la VCS contiene sus escasos 128 bytes de RAM y el control de los periféricos. La 7800 utiliza solo la segunda función cuando ejecuta sus juegos.
Sin embargo, el primer cambio respecto a la VCS se encuentra en la CPU. En vez de usar el limitado MOS 6507, utiliza un MOS 6502 custom de Atari a 1.79 MHz, es decir, el mismo chip Sally de la Atari 7800. En todo caso, se trata del mismo chip, con el 6502 capaz de direccionar 64 KB de RAM y el 6507 solo 8 KB. Cuando la consolas se usa en modo VCS, funciona a 1.19 MHz para mantener el timing de dicha consola.
Por lo que las novedades importantes se encuentran en los 4 KB de memoria RAM, divididos en dos chips de 2 KB cada uno con un bus de 8 bits, 4 KB de ROM interna en la consola y el chip gráfico GCC1702, conocido coloquialmente como María, el cual es totalmente custom y exclusivo de la consola.
María, un chip gráfico de la Atari 7800
El nombre coloquial del chip gráfico de la consola se debe a un juego de palabras con el chip TIA y cierto licor. En todo caso, GCC tuvo la experiencia de programar para la Atari 5200, ya que la mayoría de conversiones a dicha consola las hicieron ellos, lo que les sirvió de experiencia para diseñar y crear el GCC1702, el cual funciona a una velocidad de 7.16 MHz, cuatro veces más rápida que la CPU y el doble que el TIA, pero la misma que la RAM del sistema.
La Atari 7800 es el único hardware de 8 bits de Atari que no emplea la combinación ANTIC+GTIA de los ordenadores Atari de 8 bits y de la 5200, por lo que no es compatible con los juegos para dichas plataformas. Existe un debate acerca de qué hardware es mejor a nivel técnico, pero, mientras el hardware gráfico de la Atari 800 se pensó para ordenadores y se escaló años después a una consola, el GCC1702 o María se diseñó desde un principio pensando en la estructura de costes distinta.
No tiene memoria local propia, sin embargo, dispone de dos line búfers internos de 160 x 5 bits cada uno de ellos, lo que le permite una resolución de 160 píxeles en horizontal con 16 colores o 320 píxeles con 4 colores. El primer búfer de línea es de solo lectura se envía a la interfaz de vídeo y es la línea actual que se dibuja en el televisor, mientras que el segundo es donde el GCC1702 genera la siguiente línea y, por tanto, es de escritura. Todo ello reduce los accesos a la RAM principal, dejando más tiempo a la CPU.
Listas de pantalla
El GCC1702/María de la Atari 7800 usa la estrategia de listas de pantalla, cada una de ellas se refiere a 8 o 16 líneas de escaneo de la pantalla. Dicho valor vendrá marcado por la altura en píxeles de los patrones gráficos que se utilizarán para generar el frame.
Cada lista de pantalla contiene 128 bloques de 4 bytes, donde cada uno de ellos contiene la información de cada patrón que se dibujará en pantalla. Estas se pueden encontrar en la RAM del sistema o en el cartucho, codificados de la siguiente manera:
- Byte 0: primera mitad de la dirección de memoria donde se encuentra el patrón gráfico.
- Byte 1:
- Bits 0-4: tamaño horizontal del patrón (hasta 32 píxeles).
- Bits 5-7: paleta de colores utilizada.
- Byte 2: segunda mitad de la dirección de memoria donde se encuentra el patrón gráfico.
- Byte 3: indica la posición horizontal del patrón en pantalla.
Esto significa que no hay separación entre los mapas de tiles que se usan de fondo en otras consolas y los sprites, soportando superposición en una misma posición. En el caso de la Atari 7800, todo es un sprite, es decir, un patrón en movimiento, por lo que su capacidad en ese aspecto es superior a la de otros sistemas de la época como los derivados del TMS9918A que reproducen una lista finita de sprites por frame.
Cabecera y unidad DMA
Así pues, cada lista de pantalla ocupa 512 bytes, pero estas tienen una cabecera de solo 3 bytes bautizada como DLL o lista de listas de pantalla, la cual se escribe al principio de cada fotograma, por lo que se utiliza de forma combinada junto a la lista de pantalla para generar cada uno de los frames.
- Byte 0:
- Bits 0 a 3: indican la altura en líneas de escaneo que tendrán los gráficos de cada una de las listas de pantalla.
- Bit 4: reservado (siempre 0).
- Bit 5: indica que la unidad DMA ha de acceder a la RAM para obtener los datos de la siguiente lista de pantalla tras la octava línea de escaneo.
- Bit 6: lo mismo que el bit 5 con el que va conmutado, solo que la lectura a memoria se hace cada 16 líneas de escaneo.
- Bit 7: si está activo, se genera una interrupción no enmascarable que hace que el GCC/1702 no dibuje en pantalla.
- Byte 1 y Byte 2: dirección de memoria donde se encuentran las listas de pantalla que sirven para generar el frame.
La resolución de pantalla en horizontal es de libre elección por los programadores, por lo que puede ser de 192 líneas de escaneo, 224 o incluso 240. Simple y llanamente, cada lista de pantalla se refiere a lo que ocurre en 8 o 16 líneas de escaneo. Por lo que sí tomamos una resolución de 320 x 192 píxeles esto son 12 regiones y, por lo tanto, 6 KB de memoria, sin embargo, la consola tiene trucos para ahorrar memoria.
Cuando se genera una interrupción no enmascarable, la función de generar gráficos de la Atari 7800 se para en seco, pero el Line Buffer que lee la salida de vídeo queda activo, esto hace que se repita varias veces lo que tiene almacenado en el búfer de línea, lo cual es un truco para ahorrar en memoria.
Iba a ser casi un ordenador
El proyecto que dio luz a la Atari 7800 empezó en la era en la que Time Warner era la propietaria de Atari y Ray Kassar su presidente. Su idea no era solo hacer una consola de videojuegos competitiva, sino además mucho más barata que la 5200, sino además reemplazar la gama de ordenadores de 8 bits, en especial cuando se dieron cuenta de que la estructura de costes del Commodore 64 estaba mejor pensada y le permitió a Jack Tramiel bajar el precio por debajo de la competencia.
Uno de los periféricos inicialmente planeados para la consola era un teclado, el cual iba a incluir una serie de interfaces típicas de los ordenadores de Atari de la época. Al mismo tiempo, dicho teclado tenía que venir acompañado de un cartucho con un intérprete BASIC+RAM adicional. ¿El objetivo? Convertir la Atari 7800 en un ordenador, e incluso llegar a lanzar una versión completa llegado el momento, por desgracia, la división de ordenadores de 8 bits no se llevó a cabo.
Todo ello provocó que la 7800 se pasara dos años cogiendo polvo y en vez de lanzarse el planeado 1984 lo hiciera en 1986 tras que la nueva Atari observase las buenas ventas iniciales de una consola de la por aquel entonces desconocida, al final los Tramiel decidieron lanzarla como sucesora de la VCS, sin embargo, sin apoyo real de ningún tipo, ya que la hicieron competir contra los Atari Xe, los cuales tuvieron mucho más marketing.