Acciones

Episodio 055 - ¿De dónde vienen las ROMs? Preservación de cartuchos

De Panda Disk System

Metadatos

  • Número: 055
  • Título: ¿De dónde vienen las ROMs? Preservación de cartuchos
  • Invitados:
  • Duración: 0:26:50
  • Publicado: 2026-06-26
  • Categoría: Consejos
  • Etiquetas: NES, 8bit, emuladores, maskrom

Escuchar

(De momento solo disponible en iVoox)

Descripción

En qué consisten los cartuchos de videoconsolas de tipo (principalmente NES), cómo tienen guardados los datos, y cómo con el tiempo se han convertido en archivos compatibles con emuladores.

Y de paso, con qué aparatos puedes hacer tú lo mismo, para preservar tus propios cartuchos: Open Source Cartridge Reader (OSCR), INL Retro USB Dumper, Retrode, o las consolas FPGA Analogue y MiSTer.


Referencias

No-Intro: https://datomatic.no-intro.org/

Ejemplo de uso del OSCR: https://www.youtube.com/watch?v=coxgx3-tuR8

Sintonías:

https://opengameart.org/content/completion-2a03

https://opengameart.org/content/hyperrealistic-water-2a03

https://opengameart.org/content/ni-idea-2a03-3-n163

Transcripción

(Generada con Whisper ggml-medium, sin revisar)

Muy buenas, soy Titanio Verde y estás escuchando Panda Disk System, preservación de videojuegos
y medios digitales, cultura en peligro de extinción.
¿Y qué se ha extinguido hoy?
Algún cartucho de videoconsola al cual se le han oxidado los contactos o se le ha corroído
la batería y se ha perdido la partida que tenía guardada.
Los cartuchos de consolas de Nintendo 64 para atrás son muy duraderos.
Por lo menos el contenido es muy duradero, potencialmente puede durar siglos, pero el
resto de piezas pueden fallar.
¿En qué se diferencia de otros soportes?
Los discos ópticos y las tarjetas flash volátiles.
Voy a explicar en qué consiste este formato de cartuchos, así sin entrar en mucho detalle
técnico y cómo se obtiene de ellos un archivo ROM, esos que utilizas en los emuladores.
Empiezo por el principio.
¿Hasta dónde he podido entender?
Los cartuchos de consolas de 8 y 16 bits, entiéndase NES o Famicom, Super Nintendo,
Sega Master System, Mega Drive, Atari 2600 y de todas esas generaciones, utilizan una
tecnología muy similar, una placa de circuitería impresa dentro de la cual colocan como mínimo
un microchip.
Este microchip se fabrica mediante más Chrome, que originalmente es como una torta, una
oblea que lo llaman, con un montón de agujeritos que representan los datos del software que
contiene del juego, en este caso.
Estos agujeritos servirán para que a la hora de fabricar los chips pase luz de una
manera microscópica y se grabe dentro del chip.
Y esto es lo que luego las consolas irán leyendo, de manera que los datos están grabados
físicamente ahí en el chip.
Por eso son tan duraderos en comparación con las memorias flash, con las tarjetas SD
y con los cartuchos de Nintendo DS, 3DS, Vita, Switch, que mantienen los electrones
atrapados y con el desuso se pueden escapar.
Eso en un chip no puede pasar.
Pero claro, era la mejor tecnología que había en ese momento, era cara de producir, excepto
así en masa, hubo un momento en que era especialmente cara, que fue cuando Nintendo
optó por usar disquetes en su Famicom Disk System y Sega hizo algo parecido con las Sega
Cards para Master System, pero lo que se conseguía era una memoria duradera y sobre todo rápida
y estable, pero especialmente rápida, en comparación con los ordenadores que habían
en la época, que leían de cintas o de disquetes y tardaban segundos y segundos en cargar cualquier
cosa, los chips se leían instantáneamente.
Ahora bien, podían contener bastante menos información.
Pero bueno, me estoy adelantando.
Vuelvo atrás.
Para estos ejemplos me voy a basar principalmente en los cartuchos de NES, que son los que están
hasta donde he visto mejor documentados, se han explorado de cabo a rabo y hay información
tanto para su preservación como para programar ROM hacks o incluso juegos nuevos para la
consola.
Fue una consola muy popular y la sigue y sigue siendo popular hoy día, así que tiene sentido.
Aunque me da un poco de lástima no encontrar tanta información sobre Master System, por
ejemplo.
Lo dicho, abres un cartucho de NES o de Famicom y lo que encuentras es una placa que lleva
a como mínimo dos microchips, el CHROM con todos los gráficos y el PRGROM que contiene
todo lo demás, sonidos, escenarios, mecánicas, físicas, todo.
La consola se encarga a través de los pines de llegar hasta ese microchip e ir leyendo
los datos en función del código que se vaya encontrando ahí.
Ahora leo esta dirección, ahora esta otra, ahora esta otra y voy renderizando todo esto
en pantalla, voy respondiendo a los controles de esta manera, voy haciendo sonar esta canción
o este sonido y así 60 veces por segundo o 50 si estás en Europa.
A partir de cierto año, la manera de aumentar la capacidad de estos chips de ROM era añadir
más bancos de memoria.
Para acceder a cada uno de estos, o sea, porque la consola solo podía acceder a uno o a otro
a la vez, hacía falta otro chip de tipo Mapper para indicarle a cuál debía dirigirse en
cada momento.
Vendría a ser lo más parecido a un índice de contenidos de un disco.
O sea, le va indicando para leer el gráfico de Luigi tienes que ir al banco de memoria
1, para sacar estos Pokémon tienes que sacar al banco 3 y así sucesivamente.
Aparte de esto, podían haber más chips, principalmente el CIC que era como una especie
de licencia por parte de Nintendo.
Si un cartucho no contenía esa parte, especialmente algún juego que no fuera de Nintendo, significa
que no es autorizado, que no es licenciado, que es un juego que ha lanzado alguien cualquiera,
lo ha fabricado a su manera y lo ha comercializado a su manera.
Nintendo no te va a dar su beneplácito.
O bueno, no te lo iba a dar en esa época.
Todo juego licenciado tiene esa partecita, ese CIC.
Es una tecnología que se ha usado hasta Nintendo 64 y que normalmente es la más difícil de
descifrar de cara a la emulación.
Otra parte muy común es la SRAM, que no solo es la más importante para bastante gente,
sino que es la más urgente a la hora de preservar cartuchos.
La SRAM es donde se guarda la partida.
La diferencia con los chips de ROM, que por cierto, para quien no lo sepa, ROM significa
Read Only Memory, la memoria de solo lectura, la gracia que tienen es esa, que el contenido
No hay absolutamente ninguna manera de sobreescribirla una vez ha sido empresa.
Por el contrario, el chip de RAM sí.
Pero no es una memoria RAM al uso, como la que tiene la consola.
Bueno, mentira, algún juego sí utilizaba esta parte como una RAM adicional porque no
tenía suficiente con la de la consola.
Pero lo más normal es ir guardando las propiedades de la partida actual, el progreso del jugador,
las puntuaciones, qué niveles tiene desbloqueados, etc.
Esa tecnología no se empezó a usar hasta después de que saliese Famicom Disk System
y Final Fantasy la pusiese de moda, ya que era un juego demasiado largo y demasiado amplio
con muchas posibilidades como para andar tirando de contraseñas, como iban haciendo todos los
juegos anteriores, aquellos que tenían a bien de dejarte continuar el progreso de alguna
manera si no esperaban que te hicieses todo el progreso de una tarde.
El gran inconveniente de los chips de RAM es que son volátiles, al contrario que los
ROM.
Se puede contener información, se puede escribir super rápido, pero solo mientras recibe electricidad.
A los pocos segundos de dejar de recibir electricidad se apagan y su información desaparece.
Es por eso que este tipo de cartuchos necesitan una batería, una pila de botón normalmente,
conectada a esta SRAM para ir recibiendo corriente de manera constante.
Con muy poquita potencia, muy poquito a poco, pero que no deje de recibir corriente.
Este problema seguro que te lo has encontrado o alguien te lo habrá contado, especialmente
con cartuchos de Pokémon, que es donde más hemos valorado mantener las partidas guardadas
de gente que coge un cartucho de Pokémon al cabo de varios años y se encuentra que
todos sus Pokémon están vacíos.
Tiene que empezar desde cero.
En algunas entregas incluso le sale algún mensaje de memoria corrupta, vuelve a empezar
o no se ha podido leer la información, etc.
Podía pasar con Game Boy, con Game Boy Advance, con 64, con una pila que, como todas las pilas,
de temprano se iba a gastar.
También habían otros cartuchos que, en lugar de SRAM, utilizaban otro tipo de tecnología
para guardar los datos, conocido como EEP ROM.
En NES no era común, lo han usado en unos juegos, pero en consolas postereras sí era
más habitual, igual que en otros tipos de electrodomésticos.
La ventaja era que no requería batería para mantenerse viva, o sea, se mantenía por sí
sola.
El inconveniente es que era más lenta de manejar.
Había que leerla de manera secuencial, de principio a fin, y para escribirla también
había que recorrerla desde cero.
Mientras que lees SRAM podías apuntar a una dirección concreta cada vez y leer solamente
esa información, así a grandes rasgos.
En Nintendo 64 y en Game Boy Advance era mucho más común la EEP ROM.
En algunos casos particulares los cartuchos podían contener más cosas específicas,
como por ejemplo procesadores adicionales o memoria RAM extra.
El caso más famoso en Super Nintendo era el chip Super FX, el que utilizaba en sus
poquitos juegos en 3D como Star Fox.
Era una manera de ir más allá de la potencia nativa de la consola.
A ver, admitámoslo, ni NES ni Super Nintendo estaban sobradas de potencia.
En algunos casos incluso ni se utilizaba el procesador de la consola porque no era suficiente
y usaban directamente el del cartucho.
Era una técnica muy flexible, sí.
Lo malo es que esos cartuchos eran carísimos de la muerte.
En resumen, lo que ves dentro de un cartucho son chips con datos guardados en crudo, impresos
una única vez y que no van a ser alterados nunca.
Mientras tengas la circuitería necesaria puedes leer esos datos.
Pero es mucho más difícil que con un disquete, un disco óptico o una tarjeta SD porque no
son formatos estándar.
No hay lectores estándar para eso.
Es por eso que la preservación de estos cartuchos es un desafío adicional, el cual paso a explicar
ahora.
Y aquí entramos en campo de emulación.
Para empezar, ¿qué es un archivo ROM?
Por sí solo, una ROM lo que contiene es los bytes que hubiera en los chips de ROM de ese
cartucho.
Los bits que tuviera desde el principio a fin en el orden que estuvieran guardados.
Como decía antes, los datos ahí están guardados en crudo.
Esto significa que no hay un sistema de archivos como puede haber en un disco.
No hay ninguna indicación, así al principio ningún árbol de contenidos, ningún índice
ni nada que indicase dónde empieza cada archivo.
O sea, directamente no hay archivos.
Son todo bits desde el principio hasta el final.
Entonces luego el propio código máquina del juego el que va indicando en qué dirección
exacta empieza cada cosa.
Dónde está cada gráfico, dónde está cada canción, dónde está cada nivel, dónde está
cada magia, cada arma, cada enemigo, etcétera.
Todo eso le tiene que ir indicando explícitamente que se encuentra en este byte, en esta dirección.
Todo eso está guardado tal cual en la ROM.
Y el archivo de ROM lo tiene que mostrar así tal cual.
Pero además, para que un amolador lo puede interpretar fácilmente, se le añaden unas
cabeceras.
Al menos en el caso de NES, estas cabeceras no se encuentran en el propio cartucho.
Las han tenido que ir ingeniando los fans o los preservadores por su cuenta.
Normalmente siguen un estándar llamado INES, vamos para el emulador homónimo, en el cual
se indican varias propiedades del juego.
El nombre, qué tamaño tiene, qué características técnicas tiene, por ejemplo si tiene SRAM
o no.
Si espera que guarde partidas o no.
Si tiene algún hardware adicional.
Cosas así.
Por supuesto estas características tienen que ser reconocidas por el emulador en cuestión.
Si el emulador no tiene capacidad para guardar partidas, pues le va a dar igual esa opción.
Hoy día es muy raro, pero hace 30 años me imagino que sí era importante.
Además que hoy día tenemos bases de datos completas de presuntamente todos los juegos
lanzados en el mundo para NES.
Una de las bases de datos más famosas es NoIntro, en la cual buscas el juego y ahí
puedes obtener la cabecera.
En el caso de que tú obtengas tu propia ROM, o sea la obtengas de tu propio cartucho,
te pasas por NoIntro, buscas ese juego y puedes encadenar esa cabecera que ha encontrado la
gente con el contenido que tú has extraído del cartucho.
¿Cómo se extrae esa ROM?
Esa es la parte interesante.
Hoy día es bastante fácil si estás dispuesto a comprar algún aparato para esto.
Aviso legal.
Estamos hablando solamente de extraer datos de cartuchos que tú posees para tu propia
preservación, para tener tu propia copia de seguridad, no para distribuir online.
¡Escerrohoms de manera no autorizada es ilegal!
No vas a querer arruinar a Nintendo ni a Sega, ¿verdad?
Tanto para NES como para consolas contemporáneas hay varios aparatos que se conocen como DUMBER,
a los cuales les insertas el cartucho, los enchufas a un ordenador, abres un programa
específico que normalmente vendrá incluido o lo descargas de la web oficial de ese aparato
y empieza a recibir los datos.
Va leyendo el chip que hay dentro y va bajando todos esos bits tan valiosos y te los va guardando
en una ROM compatible con cualquier emulador.
También podrá operar con la SRAM, tanto leer el contenido que hay dentro, para guardarte
como mínimo una copia de seguridad de dos partidas, como para sobreinscribirla.
Lo cual es interesante, es un caso muy habitual con cartuchos de Pokémon que se quieran guardar
una copia de sus Pokémon para luego cambiarle la batería antes de que se agote por completo.
Entonces, pues le reemplaza la batería, en ese tiempo la SRAM ya se habrá vaciado y
con este programa y este DUMBER le vuelven a sobreinscribir la SRAM y a la vuelven a
tener como antes, restaurándose y su partida.
Un par de ejemplos de aparatos así de la vieja escuela son INL RETRO USB DUMBER y RETRODE.
Ambos funcionan más o menos igual, los enchufas por USB, abres este software y operas de esta
manera.
Una alternativa más moderna, creo que salió en 2020, 2021, por ahí, es el OPENSOURCE
CARTRIDGE READER, para los amigos Oscar, el cual pues está basado en Arduino, pero lo
puede, o sea, si tienes un Arduino lo puedes montar por tu cuenta, pero el web oficial
está también montado por su propia cuenta y tiene un diseño bastante mono para mi gusto
e incluye ranuras pues para NES, Super NES, Mega Drive, Master System, Game Boy, Nintendo
64 e incluso un puerto para un mando de Nintendo 64 y guardar de un memory pack metido en
un mando, las tarjetas de memoria de la 64. Lo bueno de este aparato es que es autónomo,
puedes operar ahí y guardar en una tarjeta SD que le introduces ahí directamente, la
pantalla es bastante clara, los controles son bastante claros y bueno, hay muchos vídeos
de YouTube demostrando su uso, nos pinta muy bien, cualquier día me compro uno, si
todavía tuviera cartuchos que conservar, jeje. Otra manera moderna es con consolas
de tipo FPGA, consolas retro como la MISTER o las ANALOG, las que aceptan cartuchos de
verdad, también pueden tener utilidades para extraer la ROM, se guardará, me imagino,
la propia memoria de la consola, la tarjeta que le introduzcas y con eso también tienes
tu propia copia de seguridad, o sea hoy día es bastante fácil y seguramente te darán
ayudas para obtener las cabeceras para las ROMs que estás obteniendo, además al menos
en el caso del OSCR te pondrá el voltaje correcto para estos cartuchos, que esto es algo muy
importante si vas a utilizar aparatos más viejos o te lo vas a montar por tu cuenta
de alguna manera, mira como mínimo que voltaje utilizan estos cartuchos, aunque la regla
es por lo general hasta donde he visto, Game Boy Advance y Nintendo 64 usan 3,3 voltios
y todas las demás, las de Nintendo y las de Sega, 5 voltios, otras consolas menos populares
pues supongo que irán también por ese rango pero eso, busca antes de arriesgarte, sí
puede pasar con cartuchos piratas, flashcards, no autorizados, no licenciados, etcétera,
que puedan usar algún voltaje distinto que no lo cojan del todo bien, ahí supongo que
mejor usa un tester o investiga antes de introducirlo en ninguna parte, si utilizas un voltaje
superior al autorizado puedes correr el riesgo de quemar el chip y que ya no se pueda volver
a leer, no quieres que suceda eso, aparte de vigilar el voltaje ten las mismas precauciones
que al tocar cualquier circuitería, vigila que no tengas electricidad estática en las
manos, que no tengas nada que pueda corroer los metales o oxidarlos o demás y por favor
no le soples, por mucho que lo hayamos hecho todos, que todos lo hayamos soplado a los
cartuchos de NES o de Game Boy cuando dejan de funcionar, eso en realidad es contraproducente,
lo que hace es oxidar los contactos con el tiempo, no le soples, en caso de dudas coge
un bastoncillo de algodón, le echas un poco de alcohol y se lo pasas y con eso ya limpias
prácticamente todo, como mucho no te pases limpiando, no estés ahí media hora frotando,
también se supone que puedes usar papel de lija pero con eso le puedes quitar la superficie
dorada de los contactos, así que tampoco lo veo recomendable, salvo si está muy manchado.
Aparte de eso, ¿qué dificultades te puedes encontrar al extraer una ROM? Pocas, estos
aparatos suelen funcionar bien, suelen funcionar fácilmente y obtienen un 100% de fidelidad
de los datos, los va leyendo uno por uno, no hay canal analógico ni nada de por medio
que pueda alterar datos, siempre y cuando los contactos estén limpios, lo dicho, si tienen
alguna mancha, alguna sociedad, algo que provoque interferencias, entonces sí va a haber problemas
para leer los datos o si el chip está oxidado o lo que sea, y poco más que contarte, sobre
preservar juegos en discos ópticos, en soportes magnéticos, en tarjetas volátiles, ya hablaré
otro día, si me apetece, aunque discos ópticos es mucho más fácil que esto ya que tener
un lector de discos ópticos en ordenador es muy común, bueno hoy día no tanto, pero
siguen existiendo, se siguen fabricando como mínimo lectores de DVD y de Blu-ray que puedas
enchufar por USB, de hecho si no tienes uno y no tienes nada mejor que comprar ahora mismo,
busca uno, antes de que terminen de desaparecer o suban más de precio, nunca está de más,
y bueno, si eso, pues, ya grabaré otro día, me voy a tomar un largo descanso, no sin antes
recordarte que si quieres que algo te dure toda la vida, presérvalo, da igual en qué formato se
encuentre, hasta pronto.