Menu
in

Cómo reconstruir un juego de Game Boy Advance por los sonidos de sus errores

Muy complicado como método de respaldo… pero funciona

Game Boy Advance

La Web está repleta de guías, tutoriales, y accesorios de hardware para respaldar juegos de Game Boy, Game Boy Color y Game Boy Advance. Sin embargo, el modder y youtuber conocido como «TheZZAZZGlitch» decidió explorar una ruta alternativa más caótica: Colgar un juego de Game Boy Advance, y reconstruirlo a partir del sonido provocado por los errores. El proceso demanda horas enteras de grabaciones y la corrección de múltiples bugs, pero hay mucho para aprender aquí.


La familia Game Boy tiene muchos puntos a favor, y uno de ellos es la relativa robustez de sus cartuchos, aunque están lejos de ser inmortales. Las baterías agotadas, la fricción en sus conectores, la humedad, los golpes y el «flex» del PCB son algunas de las causas que pueden dejar a un cartucho fuera de combate, arrojando todo tipo de errores. ¿Pero qué sucede si provocamos esos errores nosotros mismos?

El youtuber «TheZZAZZGlitch» se dedica a explorar glitches y hacks en las primeras generaciones de los juegos de Pokémon. En otras palabras, colgar los juegos de Pokémon es su especialidad. En uno de sus últimos vídeos, «TheZZAZZGlitch» explicó el sonido del crash o cuelgue en la Game Boy Advance, y allí sugiere que el contenido entero del cartucho puede ser reconstruido usando sólo ese audio…


La Game Boy Advance, cantando la canción de su pueblo


Historia larga hecha corta, el sonido de la Game Boy Advance es transmitido con un pequeño búfer en RAM usando DMA. Cuando llega al final del búfer, se activa una interrupción para actualizar los datos y enviar el puntero DMA al principio. Sin embargo, durante un evento de cuelgue, la interrupción se pierde y el puntero DMA jamás recibe el reset, o sea que sigue enviando el contenido entero de la memoria al altavoz como si fuera sonido.

Después de esperar casi dos horas, «TheZZAZZGlitch» obtuvo un sonido de 8 bits a 13.1 kHz. Con la ayuda de un script en Python (y el esfuerzo de pasar dos días corrigiendo bugs), logró una reconstrucción del 99.76 por ciento… aunque no fue suficiente. Al combinar tres grabaciones aplicando un algoritmo de «voto mayoritario», la precisión subió al 99.979 por ciento. La ROM se inició en el emulador, pero aún tenía demasiados errores. ¿La clave? Más grabaciones: Con siete dumps diferentes, la precisión llegó al 100 por ciento, restaurando la ROM por completo.

La segunda mitad del vídeo se enfoca en repetir el proceso utilizando hardware real, y como condimento extra, un cartucho falso de Pokémon Emerald. En este caso necesitó 45 grabaciones, y aún así no alcanzó el 100 por ciento (99.9837%), pero el juego se inició correctamente. Para finalizar, el cartucho guardaba una sorpresa: Al no usar batería ni chip dedicado, los savegames se almacenan en la misma memoria Flash donde fue colocado el juego. Alguien hizo un gran trabajo hackeando ese cartucho falso, y es probable que «TheZZAZZGlitch» lo explore más de cerca en el futuro.


Accede al canal: Haz clic aquí


Escrito por Lisandro Pardo

Leave a Reply