Mini-guia: construcción de cartuchos Atari 2600

Los cartuchos de videoconsola están formados por memorias ROM que vienen grabadas de fábrica, y generalmente no son reprogramables. Estas memorias contienen muchas posiciones o casillas, casi siempre de 8 bits, donde se guarda la información. A cada una de estas posiciones se accede mediante un bus de direcciones y un bus de datos. A través del bus de direcciones la consola indica al cartucho cuál es la casilla que quiere leer, y por el bus de datos es por donde el cartucho entrega a la consola el dato que ésta le pide.

La idea sería volcar el contenido de cada una de las posiciones de la ROM del cartucho original, accediendo casilla a casilla, sobre cada una de las posiciones de una memoria ROM virgen. Así obtendríamos otra ROM cuya información sería identica a la del cartucho original. Existen distintos tipos de memorias que serían útiles para este proposito:

Memorias no volátiles

PROM: sólo son programables una vez.
EPROM: lse pueden programar todas las veces que se quiera, pero para borrarlas se necesita una lampara de UV.
EEPROM: iguales que las anteriores, pero para borrarlas no hace falta lapara UV.
FLASH: otro tipo de memoria más, programable "in situ".


Memorias volátiles

SRAM: se pueden programar todas las veces que se quiera, pero al retirar la alimentacion pierden todos sus datos.


En un principio serviria cualquiera de estos tipos de memoria, siempre y cuando consten de bus de datos y bus de direcciones (hay modelos a los que se accede mediante protocolos serie, un poco más complejos). Otros aspectos a tener en cuenta son la capacidad de la memoria, el tiempo de acceso a esta, u otros parámetros electrónicos como la tensión a la que trabajan etc. Existen infinidad de modelos y seguro que alguno encajaría con las necesidades de un cartucho específico.

Para programar estas memorias se necesita un programador apto para el modelo de memoria escogido. En las tiendas de electrónica venden programadores universales, aunque son un poco caros. Otra opción, suponiendo que se tienen nociones de electrónica, sería construirse uno: habría que hacer un trasto que llenara la ROM virgen posición a posición. A partir de la información leída de un cartucho original, o a partir de la informacion de un archivo ROM del emulador telecargado mediante un PC.

También se debería insolar la placa donde soldar las memorias: en internet existen fotolitos para muchos modelos de consolas.

Esta es, a grandes rasgos, la teoría. Pero el problema es que muchos cartuchos no son simples memorias ROM. Existen bastantes cartuchos que, a parte de los integrados de memoria, incorporan otros chips con funcionalidades especiales. Por ejemplo algún juego de Super Nintendo creo que incorporaba un integrado 3D para agilizar determinados efectos tipo 3D. En el caso de la Atari 2600 muchos programadores aplicaban una técnica denominada bankswitching, que les permitía trabajar con cartuchos de mayor capacidad que la nominal de la consola...

En www.atariage.com se puede encontrar un montón de información sobre la Atari2600.

En Multi Console Copier se muestra como construir un cartucho universal, con su cargardor, para Megadrive y SuperNintendo. De hecho un cartucho para Atari 2600 seria bastante más sencillo que el que aparece en esta web.

Tiempo atrás también había otro proyecto abierto denominado CartDisk parecido al MultiConsoleCopier, aunque creo que se centraba en el proceso inverso: pasar roms originales al PC. Antes había bastantes enlaces sobre este, pero he buscado un poco y parece que la cosa está algo muerta...

En fin, creo que si se tienen algunas nociones de electrónica, siguiendo la estrategia aquí descrita e informándose un poco, se podría construir un cartucho universal para jugar a la mayor parte de los juegos existentes para la Atari 2600. ¡Suerte!

Autores

Texto: Toalemon

Protecciones anticopia en el Spectrum 48K