Las siglas ROM significan Read Only Memory (memoria de sólo lectura). Es una memoria de semiconductor no destruible, es decir no se puede escribir en ella y es no volátil (mantiene los datos cuando se interrumpe la corriente). La memoria de sólo lectura es utilizada normalmente como medio de almacenamiento de datos. Casi todo el hardware lleva el código que necesita para empezar a funcionar grabado en una ROM. Podemos decir que donde hay algún procesador hay una ROM, algunos inclusos llevan la ROM incluida. Por ejemplo las BIOS de los ordenadores actuales son memorias ROM. En el caso de las máquinas de pinball, las ROMs son los chips donde se almacena el programa principal y los datos necesarios para su funcionamiento como gráficos, efectos o músicas. Por extensión, la palabra ROM puede utilizarse también para referirnos al archivo de datos que contenga la imagen de una memoria ROM. Los tipos de memoria ROM se pueden clasificar en los siguientes tipos: - Memorias PROM (Programmable Read Only Memory). La memoria de sólo lectura programable se puede programar con un programador PROM. Esta memoria sólo se puede programar una vez. - Memorias EPROM (Erasable Programmable Read Only Memory) Memoria de sólo lectura borrable/programable. Esta memoria puede borrarse con luz ultravioleta, y luego reprogramarse de nuevo sin problema. - Memorias Flash o EEPROM (Electrically Erasable Programmable Read Only Memory) Memoria de sólo lectura programable y borrable electrónicamente. Generalmente las ROMS de máquinas pinball son de tipo EPROM (2716,2732,2764,27c010,27Cxxx) aunque en la mayoría de los casos se pueden sustituir por sus EEPROMs equivalentes (28Cxxx). Después del rollo teórico vamos a ver cómo realizar las dos operaciones que más nos pueden interesar con las memorias ROM 1- Lectura de una memoria ROM específica. (Salvaguarda de los programas de máquinas antiguas) 2- Grabación de una memoria ROM específica. (Actualización a la versión de ROM más moderna o a una versión 'home' en máquinas americanas) Para empezar con el trabajo de campo necesitamos una serie de herramientas. Lo segundo que se
necesita es un ordenador con puerto paralelo (en caso de que no dispongamos de un willem usb), en el que instalaremos el
programa que sirve para manejar el willem. Por ejemplo, lo descargaremos de
http://www.sivava.com/ 1. Lectura de una memoria ROM. Empezaremos leyendo una
memoria de una máquina para guardarla. Esta memoria puede usarse para
tener un backup del programa de la máquina, que luego puede usarse para
emular la máquina con Pinmame o para hacerle cambios y volver a
grabarla en la máquina original; por ejemplo podríamos cambiar algún
efecto de sonido por otro o cambiar la música de fondo. Más difícil es
tocar el programa para que la máquina funcione de otra forma o tenga
otras reglas. Para hacer esto cómodamente haría falta el código fuente
del programa, ya que desensamblar a código máquina y meter mano ahí es
una tarea que necesita mucho tiempo y esfuerzo. En la imagen señalados en amarillo vemos cuales son los integrados de memoria ROM. Hay una en la placa de CPU que contiene el código principal, y cuatro en la placa de sonido que contienen los efectos de sonido y la música de esta máquina y una que contiene el código que utiliza la CPU de esta placa para reproducir el sonido. Por curiosidad, la CPU
que utilizan estas placas es un Z80, que es el que utilizan la gran
mayoría de máquinas de pinball electrónicas españolas por ser el más usado en la época; tambien es el mismo procesador que utilizaban
ordenadores antiguos de 8 bits como el Spectrum o el Amstrad, además de
muchos juegos de arcade que están basados en este chip. Y como el Z80
está perfectamente Para leer la ROM lo
primero que hay que hacer es extraer el integrado de la placa. Como
hacer esto dentro de la máquina es más difícil recomiendo extraer la
placa de la máquina primero (desconectando todos los cables y sacándola de los pivotes blancos que la sujetan con una pestaña). Antes de sacar
los chips de la placa os recomiendo marcarlos con letras (a,b,c, etc)
para recordar en que posición están y no confundir los chips unos con
otros después,
Una vez que la tengamos
fuera, tenemos que identificar el tipo de ROM que es para poder leerla
correctamente. Como normalmente tienen una pegatina, despegaremos el extremo hasta que veamos el modelo marcado en el chip . Arrancamos el programa
del Willem y seleccionamos el tipo de ROM que queremos leer (en nuestro
caso una 27C64). El programa nos indicará como tenemos que colocar los
interruptores DIP para configurar el willem para esa memoria:
Una vez correctamente colocado sólo hay que pulsar el botón de lectura para que nos lea la ROM. Después de esto pasaremos al buffer que nos mostrará el contenido de la memoria:
Si
el contenido del buffer es todo 00 o todo FF la lectura es incorrecta.
A mí me ha pasado que he tenido que levantar un poco el chip antes de
cerrar el ZIF para que hiciera buen contacto y me leyera correctamente
el contenido. Una vez que nos hemos asegurado que nuestra lectura es la buena, hay que grabarlo a disco poniendo al fichero el nombre con la letra que hemos marcado la ROM anteriormente (p.e. clown_a.bin, clown_b.bin, etc). Luego pasaremos al siguiente chip, si es el mismo modelo podemos mantener la configuración del willem, si cambiamos a otro modelo hay que cambiar el interruptor DIP como nos indique el willem. Cuando terminemos con todos los chips podremos respirar tranquilos, habremos salvado el código de nuestra máquina pinball. Tambien hay que acordarse de crear un fichero de texto para colocarlo junto a las roms y que nos de información de a que integrado de las placas corresponde cada fichero y su checksum y tipo de memoria. Ahí si
queréis podéis incluir información de la máquina, créditos o lo que
queráis que para Aquí tenéis el fichero con las ROMs extraídas en este ejemplo: clown_roms.zip Curiosidad. Si
queréis escuchar las músicas y los sonidos de esta ROM, podéis hacerlo con el programa GoldWave.
www.goldwave.com
(este es el que he utilizado yo pero cualquier otro editor de audio que
permita cargar formatos planos de audio especificando bits y velocidad
de muestras, vale perfectamente). Abrimos cualquiera de las roms (c,d,e
o f) que
contienen sonido, y seleccionamos tipo telephony, 4 bits, 8000 hz. Le
damos al play y a escuchar. Podemos incluso modificar algún efecto o
música. Para hacer esto tenemos que buscar un sonido que sea de la
misma duración exacta que el que queremos sustituir (ya que no podemos
tocar
el código) y pegarlo encima del otro sobrescribiéndolo sin modificar la duración del
archivo. Luego podremos grabarla en una nueva ROM para nuestra máquina. 2. Grabación de una memoria ROM Para este ejemplo vamos a actualizar una Indiana Jones. Esta parte es bastante fácil. Tendremos que conseguir de internet la última versión o la versión que queramos instalar en nuestra máquina. La máquina de ejemplo tiene instaladas la versión L-5 de código y la L-2 de sonido. Vamos a actualizar a L-7 de código y L-3 de sonido. En
el manual comprobamos que la Indiana Jones utiliza en todas las roms el modelo 27c040, necesitamos 2. El problema es que estos chips son
EPROMs
y para borrarlos necesitaremos luz ultravioleta intensa. Así que
procuraremos conseguir chips nuevos o que estén borrados. Tambien
podremos comprar un borrador de luz UV. Y la otra opción es encontrar
el modelo 28c040 EEPROM Descargamos las versiones que necesitamos por ejemplo de http://www.ipdb.org/machine.cgi?id=1267. Luego abriremos el programa de grabación y seleccionaremos el archivo de la ROM L-7.
Al hacerlo el programa nos indicará el checksum del archivo. Para asegurarnos que es correcto podemos comprobar el checksum que nos da Williams en http://www.planetarypinball.com/mm5/Williams/tech/roms/indyjones.html. Aquí vemos que el checksum es A607 el mismo que nos da el willem, así que todo es correcto. Ahora colocaremos el interruptor DIP en la posición del 24c040 y el chip en el zócalo ZIF con la muesca hacia arriba. Y ahora solo habrá que darle al botón de programar. Cuando termine, pulsaremos el botón de verificar varias veces para comprobar que nuestra grabación es buena. Si por cualquier causa no ha grabado bien, lee el chip grabado para ver si ha recogido algo, si sigue en blanco prueba de nuevo colocándolo bien. Si ha grabado algo, tendrás que borrarlo o utilizar otro. Si todo ha salido bien, enhorabuena, (si es un 27c040 tendremos que taparle la ventanita para evitar borrados accidentales) y ya solo hay que cambiar el chip viejo por el nuevo y a disfrutar de nuestra pinball reprogramada. Tutorial realizado por effect |