El funcionamiento de la pila en los cartuchos

Hace años estaba jugando a Pokémon Edición Rubí y mi partida se corrompió de golpe. Treinta y nueve horas llevaba en esa partida, muchas más a lo largo de los años, y todo se quedó ahí. La explicación técnica habitual en estos casos suele apuntar a la pila interna del cartucho, la responsable de que muchos juegos mantuvieran la información a salvo durante meses y años. Un paso clave en la evolución de nuestra industria para que fuese más cómodo regresar a una partida previa tras apagar la consola "tenía un fallo" en el largo plazo: esa pila que mantenía la corriente al cartucho eventualmente se agotaría y, con ella, la o las partidas que estuvieran guardadas en el cartucho.
 
La evolución en este aspecto seguramente será desconocida para los jugadores más jóvenes, pero antiguamente los videojuegos se pensaban para realizar una única partida de seguido. Cuatro o cinco horas como máximo, pero usando una dificultad elevada como "barrera" que alargase el proceso de completar un título. Para ampliar ese espacio y hacer título más complejos era necesario que el jugador pudiera volver a su partida tras apagar la consola, por lo que uno de los primeros sistema que proliferaron fueron las contraseñas, un simple algoritmo que generaba una clave alfanumérica con todos los datos de la partida. El jugador solo tenía que apuntarlo y escribirlo la próxima vez que encendiese la consola para poder regresar donde lo dejó. ¿Los problemas? Era sencillo equivocarse al escribir manualmente la contraseña (y, por tanto, perderlo todo) y ésta solo se generaba en ciertos momentos, lo que impedía guardar con cierta libertad.
 
La mejor solución, por tanto, dependía del hardware, pero ninguna consola clásica constaba con un Disco Duro de base, por lo que los propios cartuchos debían incluir un chip de memoria RAM (SRAM) conectado a una pila de botón de litio soldada a la placa. La SRAM es memoria volátil que solo se mantiene mientras el sistema está encendido, pero con la pila se lograba mantener la energía constantemente y que los datos se mantuviesen dentro del cartucho incluso sin estar dentro de una consola encendida. Todo un complicado proceso que elevaba el coste físico del cartucho, pero que permitía tener una (o varias) ranura de guardado desde la que regresar a nuestra partida. Con la llegada del formato CD, al no poder realizar este tipo de trabajo e intentar mantener el precio de las consolas lo más bajo posible (nadie quería añadirle un disco duro de base a esas plataformas), esas memorias se trasladaron a las conocidas tarjetas de memoria. El trabajo ya no dependía del juego, sino de un dispositivo externo.
 
Este proceso es relativamente desconocido para muchos jugadores, que pueden (podéis) haber leído que los antiguos cartuchos pierden sus partidas guardadas con el tiempo, pero seguramente no teníais muy claro el por qué o, directamente, ni lo habíais pensado. Para intentar aclarar un poco todo este aspecto desde el punto de vista técnico, nos situaremos de vuelta en el ejemplo inicial de mi partida perdida de Pokémon Edición Rubí y todo lo que rodeó a ese fallo.
 
Los cartuchos de las tres ediciones desarrolladas en Hoenn llevan una pila CR1616 que, curiosamente, mantenía el reloj interno de los juegos, no la partida guardada como tal. Ésta se guardaba en un chip de memoria flash que podía conservar los datos sin corriente y, por tanto, no necesitaba la pila para nada. Como podéis ver en la imagen superior, el chip de ocho patas del reloj, un S3511, y el chip Macronix donde vive la partida están pegados el uno al otro, y la celda queda a un lado de los dos. Lo que separa las dos funciones es la serigrafía: U3 RTC para el reloj, FLASH U2 para la memoria. Es decir, cuando la pila se agota lo que se detiene es el reloj interno: las bayas dejan de crecer y los eventos que dependen del día se detienen, pero la partida como tal sigue pudiendo jugarse. Con el tiempo interno detenido, pero funcionaría.
 
El problema está en que la explicación de sistema del propio juego no es precisa en ese aspecto: cuando uno de estos cartuchos falla al guardar y no consigue reparar su memoria de respaldo, muestra un mensaje que nombra dos culpables posibles: la memoria dañada o la pila interna agotada, pero como ya hemos explicado lo segundo no puede romper una partida, simplemente hace que el juego pierda una funcionalidad. Entonces, ¿cómo se pudo dañar la partida si descartamos el error más común en los juegos clásicos? Existen varias opciones: la memoria flash puede desgastarse si se escribe en ella muchas veces, un guardado puede quedarse a medias por un cuelgue o porque el cartucho se mueve en la ranura mientras escribe y, bueno, existen copias no oficiales del juego que sí conservan la SRAM dependiente de la pila en lugar de la memoria flash, lo cual podría dañarla en ese caso. Curiosamente, en una de esas copias falsas la explicación del mensaje sí acertaría, aunque por casualidad. ¿En mi caso? Sigo sin saber cuál de ellas fue. Un mal gesto con consolas y cartuchos antiguos puede provocar un movimiento en falso en el peor momento y dañar la partida por esa razón.
 
Por si tenéis curiosidad sobre el funcionamiento de pilas que sí funcionaban para alimentar la SRAM, tenemos el ejemplo simple de Game Boy en la imagen superior. En Game Boy y Game Boy Color el tipo habitual de pila es la CR1616, aunque los casos más conocidos montan la CR2025. En Game Boy Advance vuelve a ser la CR1616. En NES y Super Nintendo la celda habitual es la CR2032, igual que en los juegos de Nintendo 64 que usan SRAM. Los números describen la pieza y conviene entenderlos, porque son la razón por la que no vale cualquiera. Las dos primeras cifras son el diámetro en milímetros y las dos últimas el grosor en décimas. Una CR2025 y una CR2032 miden las dos 20 mm de ancho, pero la primera tiene 2,5 mm de grosor y la segunda 3,2. Meter la gruesa donde va la fina hace que la carcasa no cierre o que la celda apriete contra la placa.

Lo llamativo es que la diferencia llega a darse dentro de un mismo título. Las tiradas europeas en inglés de Pokémon Rojo y Azul llevan una CR2025, mientras que las alemanas y las francesas de esos mismos juegos montan una CR1616. Pokémon Amarillo lleva CR1616 en todas sus versiones. Con esa dispersión, la respuesta por consola sirve como punto de partida y nada más; la certeza está en el ejemplar concreto. De hecho, hasta tienen consumiciones diferentes dependiendo del juego: Oro, Plata y Cristal llevan un reloj en tiempo real dentro del cartucho, para que amanezca y anochezca de verdad. Ese reloj sigue corriendo con la consola apagada y se alimenta de la misma celda que mantiene la partida, de manera que una sola pila atiende dos consumos y uno de ellos no se detiene nunca. Es decir, de todas, la batería que se agota más rápido siempre será la de esa generación. Esos tres juegos montan también la CR2025 grande en lugar de la CR1616 habitual de la plataforma. Todo esto, al menos, en lo que vemos nosotros.

Pero nada supera al caos de la batería que tuvieron los cartuchos de Nintendo 64: repartió diferentes modelos entre sus juegos más conocidos sin ninguna lógica de importancia. Sin ninguna celda, guardando en EEPROM: GoldenEye 007, Mario Kart 64, Super Mario 64, Banjo-Kazooie, Perfect Dark y los tres Mario Party. Con más espacio de memoria, The Legend of Zelda Majora's Mask y los dos Pokémon Stadium. Con SRAM y una pila CR2032 soldada: Ocarina of Time, F-Zero X, Super Smash Bros. y 1080° Snowboarding. ¿Por qué esa disparidad? Precio, decisiones de diseño, capacidad... Cada cual puede considerar lo que guste, ya que Nintendo nunca ha explicado oficialmente el razonamiento para cada opción. La teoría es que el primer bloque que usa EEPROM no necesita memorizar tantas cosas, por lo que podían usar memorias de 512 Bytes y eran suficiente para guardarlo todo. El problema es que títulos como Ocarina of Time tenían demasiadas variables para ese espacio, así que se optó por el mismo sistema de memoria flash y pila que tenían cartuchos de Game Boy, Super Nintendo o NES. Eventualmente, con el coste de la memoria algo reducido, el segundo bloque, con Majora's Mask o los Pokémon Stadium, se podían permitir el "dispendio" de memorias EEPROM de 2 KBytes, cuatro veces más que los primeros. Pero, lo dicho, no tenemos la confirmación oficial de Nintendo.
 
Eso sí,  conviene saber también que no todo lo que guardas en esta consola vive en el cartucho. Bastantes juegos escriben en el Controller Pak, la tarjeta de memoria que se enchufa al mando, y algunos no guardan en ningún otro sitio. Si lo que has perdido estaba ahí, el cartucho no tiene nada que ver con el asunto. Si queréis conocer la lista completa, al menos con los juegos PAL tengo guardada una lista en mi tienda, en neerlandés, aunque los títulos se leen igual en cualquier idioma. Es más un tecnicismo o algo que tener en cuenta si queréis recuperar vuestros juegos antiguos y no los queréis únicamente como elemento coleccionable, pero siempre es un detalle interesante conocer las razones de coste y diseño que llevaron a una elección u otra. En el caso de Game Boy Advance, que también era de esa época, como mucho un 17% de los cartuchos guarda en SRAM o en FRAM, y solo la SRAM necesita pila, así que los que llevan celda son todavía menos. De hecho, ya vimos antes que el caso de los Pokémon era más una cuestión del manejo del reloj interno, no gestión del guardado.
 
¿Qué puedes hacer en caso de que quieras comprobar tus juegos clásicos o te apetezca comprar algún cartucho de segunda mano y usarlo? Bueno, simplemente sería comprobar bases de datos del tipo de guardado de cada cartucho de esa consola y, con lo que has aprendido aquí, podrás saber rápidamente si el guardado funciona o no. Si usa EEPROM o Flash, no se ha perdido nada, el guardado funciona sin problemas. Eso sí, es posible que alguna funcionalidad se haya perdido al agotarse la pila. Si usaba SRAM, es bastante posible que las partidas estén perdidas, aunque muchas pilas aún siguen funcionando tras todo este tiempo, pero al menos el juego como tal es posible de recuperar: si se cambia la pila, todo debería volver a funcionar como el primer día. Eso sí, el proceso requiere lidiar con un tornillo de seguridad de 3,8 mm en Game Boy y Color, mientras que Game Boy Advance usa uno de tres puntas. Si ves otro tipo de tornillo, alguien ha abierto el cartucho, o el cartucho no salió así de fábrica. Es un indicio y no una prueba, así que merece la pena preguntar, ya que técnicamente no es malo: esos tornillos de seguridad eran un engorro, así que si alguien se ha tomado la molestia de cambiar la pila y colocar un tornillo más moderno y fácil de manejar, vas a tener un indicativo de que el poseedor del cartucho al menos sabía lo que estaba haciendo... si el cartucho enciende y funciona bien, claro.
 
Y, ojo, que si aún con el cambio de pila o en casos de guardado en EEPROM o Flash la partida se ha perdido, ahí vas a tener que buscar otros culpables que normalmente apuntan a algún tipo de error en el contacto. Puede haber sido mala suerte con una desconexión puntual en un mal momento, pero también puede haber un daño físico más serio que necesitaría una reparación más complicada. Pero todo sea por intentar salvar de alguna forma el formato físico incluso en los casos de sistemas más antiguos. Para ayudaros un poco, dejamos la lista de bases de datos para que podáis comprobar el tipo de guardado de tus juegos físicos de forma rápida y otro tipo de información accesoria que puede ser relevante:
Emilio lleva RetroSoulsBorne, una tienda online neerlandesa de juegos y consolas retro
Compra, prueba y pone precio a cada cartucho él mismo.






En Rubí, Zafiro y Esmeralda la pila mueve el reloj

Estos tres juegos llevan una pila CR1616 y llevan un reloj en tiempo real. La partida, sin embargo, no está en ninguna memoria que dependa de esa pila: está en un chip de memoria flash, que conserva los datos sin corriente y los conserva igual con la celda agotada, muerta o directamente ausente.

En una placa europea de Esmeralda que tengo fotografiada, con el código AGB-E05, no se distinguen por la distancia. El chip de ocho patas del reloj, un S3511, y el chip Macronix donde vive la partida están pegados el uno al otro, y la celda queda a un lado de los dos. Lo que separa las dos funciones es la serigrafía: U3 RTC para el reloj, FLASH U2 para la memoria. Mirando la placa no lo adivinas; hay que leer lo que Nintendo imprimió encima.

Cuando la pila se agota lo que se detiene es el reloj. Las bayas dejan de crecer y los eventos que dependen del día se paran, mientras la partida guardada continúa exactamente donde estaba.

El propio juego alimenta la confusión. Cuando uno de estos cartuchos falla al guardar y no consigue reparar su memoria de respaldo, muestra un mensaje que nombra dos culpables posibles: la memoria dañada o la pila interna agotada. Ese texto está literalmente en el código. De los dos culpables que nombra, en un cartucho auténtico de esa generación el segundo no puede serlo nunca.

Lo que sí pudo pasar

Quedan varias explicaciones posibles, y sigo sin saber cuál de ellas se llevó mis treinta y nueve horas.

La memoria flash puede desgastarse si se escribe en ella muchas veces. Un guardado puede quedarse a medias por un cuelgue o porque el cartucho se mueve en la ranura mientras escribe. Y el cartucho puede no ser auténtico: existen copias no oficiales de Pokémon que guardan en SRAM detrás de una celda barata en lugar de en flash, y en una de esas la pila sí se lleva la partida.

Esa última posibilidad es la única en la que la explicación de manual habría acertado, y habría acertado por casualidad.

Solo un tipo de memoria necesita corriente

La división que de verdad importa no separa juegos buenos de juegos malos ni cartuchos viejos de cartuchos nuevos, sino memorias que necesitan alimentación de memorias que se apañan sin ella.

La EEPROM y la memoria flash no son volátiles y guardan sin ninguna ayuda. Existe una tercera de la misma familia, la FRAM, que en esto se comporta igual, y ninguna de las tres necesita pila para conservar lo que has guardado.

La SRAM es la que se sale del grupo. Es volátil, pierde su contenido en cuanto se le corta la corriente, y por ese motivo los cartuchos que la usan llevan dentro una celda de botón que la mantiene alimentada con la consola apagada. Ahí, y solo ahí, una pila agotada significa una partida perdida.

Y hay una cuarta categoría, la de los juegos que funcionaban con contraseñas: no guardaban nada, así que no tienen ni celda ni memoria que perder.

El mismo juego con dos pilas distintas

Aquí está el detalle que rompe la idea de que hay una pila por consola, porque no la hay. Esta es la distribución que vemos nosotros. En Game Boy y Game Boy Color el tipo habitual es la CR1616, aunque los casos más conocidos montan la CR2025. En Game Boy Advance vuelve a ser la CR1616. En NES y Super Nintendo la celda habitual es la CR2032, igual que en los juegos de Nintendo 64 que usan SRAM.

Los números describen la pieza y conviene entenderlos, porque son la razón por la que no vale cualquiera. Las dos primeras cifras son el diámetro en milímetros y las dos últimas el grosor en décimas. Una CR2025 y una CR2032 miden las dos 20 mm de ancho, pero la primera tiene 2,5 mm de grosor y la segunda 3,2. Meter la gruesa donde va la fina hace que la carcasa no cierre o que la celda apriete contra la placa.

Lo llamativo es que la diferencia llega a darse dentro de un mismo título. Las tiradas europeas en inglés de Pokémon Rojo y Azul llevan una CR2025, mientras que las alemanas y las francesas de esos mismos juegos montan una CR1616. Pokémon Amarillo lleva CR1616 en todas sus versiones. Con esa dispersión, la respuesta por consola sirve como punto de partida y nada más; la certeza está en el ejemplar concreto.

El reloj consume cuando nadie juega

Oro, Plata y Cristal llevan un reloj en tiempo real dentro del cartucho, para que amanezca y anochezca de verdad. Ese reloj sigue corriendo con la consola apagada y se alimenta de la misma celda que mantiene la partida, de manera que una sola pila atiende dos consumos y uno de ellos no se detiene nunca.

Esos tres juegos montan también la CR2025 grande en lugar de la CR1616 habitual de la plataforma.

La Nintendo 64 usó tres sistemas a la vez

En la Nintendo 64 la división se ve dentro de una sola máquina, porque repartió sus juegos más conocidos entre los tres tipos de memoria sin ninguna lógica de importancia.

Sin ninguna celda, guardando en EEPROM: GoldenEye 007, Mario Kart 64, Super Mario 64, Banjo-Kazooie, Perfect Dark y los tres Mario Party. Tampoco lleva celda lo que guarda en flash, que es el caso de The Legend of Zelda Majora's Mask y de los dos Pokémon Stadium. Con SRAM y una CR2032 soldada: Ocarina of Time, F-Zero X, Super Smash Bros. y 1080° Snowboarding.

Ocarina lleva celda y Majora no, y son dos Zelda de la misma consola, lo que deja bastante claro que la antigüedad no es el criterio.

Conviene saber también que no todo lo que guardas en esta consola vive en el cartucho. Bastantes juegos escriben en el Controller Pak, la tarjeta de memoria que se enchufa al mando, y algunos no guardan en ningún otro sitio. Si lo que has perdido estaba ahí, el cartucho no tiene nada que ver con el asunto.

Cualquier título se comprueba en la base de datos de tipos de guardado del emulador Mupen64Plus, anotada al final. Los juegos PAL con pila los tengo recogidos en una lista en mi tienda, en neerlandés, aunque los títulos se leen igual en cualquier idioma.

Cuántos cartuchos de Game Boy Advance llevan celda

Existe una base de datos pública con el tipo de guardado de los cartuchos de GBA. Contando las referencias con licencia que recoge, un 17% guarda en SRAM o en FRAM.

Esa cifra es un techo y no un dato exacto, porque la FRAM va contada dentro y la FRAM no necesita pila. El número de cartuchos de GBA que realmente llevan celda queda por debajo de ese 17%.

Tres preguntas para el vendedor

La primera no es por el año del juego sino por dónde guarda. Buscar el título junto a "save type" resuelve la duda en un minuto, y si la respuesta es EEPROM o flash ya no hay nada que negociar por ese lado: aunque el cartucho lleve una celda, tu partida no depende de ella.

La segunda solo tiene sentido si el juego usa SRAM, y son tres datos en una: si la celda se ha cambiado, cuándo, y qué pasó con la partida que había dentro. El tercer dato conviene no saltárselo, porque el cambio suele llevarse por delante la partida antigua.

La tercera es por los tornillos. Nintendo puso un tornillo de seguridad de 3,8 mm en Game Boy y Game Boy Color y uno de tres puntas en Game Boy Advance. Un tornillo de estrella corriente en su lugar quiere decir que alguien ha estado dentro, o que el cartucho no salió de fábrica así. Es un indicio fuerte y no una prueba, y merece la pena preguntar antes de descartar la compra, porque una celda ya reemplazada juega a favor del comprador.

Y si el juego guarda en EEPROM o en flash y aun así ha perdido la partida, la pila no es el sitio donde buscar. Empieza por los contactos.

Fuentes

Pan Docs, documentación del chip MBC3 y su reloj en tiempo real: https://gbdev.io/pandocs/MBC3.html

Base de datos de tipos de guardado del emulador Mupen64Plus, archivo mupen64plus.ini: https://github.com/mupen64plus/mupen64plus-core/blob/master/data/mupen64plus.ini

Decompilaciones del proyecto pret de Pokémon Rubí y Esmeralda, ficheros src/strings.c y src/save_failed_screen.c: https://github.com/pret/pokeruby y https://github.com/pret/pokeemerald

GBATEK, referencia técnica de Game Boy Advance, apartados de memoria de respaldo y reloj en tiempo real: https://problemkaputt.de/gbatek.htm

Base de datos de cartuchos del proyecto FlashGBX, fichero db_AGB.json: https://github.com/lesserkuma/FlashGBX/blob/master/FlashGBX/config/db_AGB.json

Hilo de GBAtemp sobre cartuchos falsos de Pokémon para GBA y su guardado en SRAM: https://gbatemp.net/threads/fake-pokemon-gba-carts-more-common-than-real-ones-any-good.462748/


Emilio lleva RetroSoulsBorne, una tienda online neerlandesa de juegos y consolas retro. Compra, prueba y pone precio a cada cartucho él mismo.

1 comentario:

  1. Leía el principio y decía yo "espera, el mensaje es distinto, ¿no? en rubí zafiro es otra cosa".

    La pila de mi cartucho de la zafiro se agotó circa 2013, y desde entonces da un mensaje al encenderse de que no trackeará hora tras apagar la consola y los ciclos estarán rotos cada vez que lo enciendo, pero eso aparte, el juego funciona con normalidad y los saves no están rotos.

    Dicho esto, no tenía ni idea de la diferencia, de qué tipo de hardware de guardado necesita o no corriente, ni de la estructura interna o la distinción de la SRAM. Muchas gracias por la pieza, es interesante de verdad.

    ResponderEliminar