Het web staat vol met handleidingen, tutorials en hardware-accessoires om Game Boy-, Game Boy Color- en Game Boy Advance-spellen te back-uppen. Toch koos de modder en youtuber bekend als TheZZAZZGlitch voor een chaotischer alternatief: een Game Boy Advance-spel laten crashen en het vervolgens reconstrueren aan de hand van het geluid dat door de fouten ontstaat. Het proces vergt uren aan opnames en het corrigeren van talloze bugs, maar er valt hier veel te leren.

Game Boy Advance-game reconstrueren via de geluiden van zijn fouten
Game Boy Advance

De Game Boy-familie heeft veel voordelen, en een daarvan is de relatieve robuustheid van de cartridges, al zijn ze verre van onsterfelijk. Lege batterijen, wrijving in de connectoren, vocht, stoten en de "flex" van de printplaat zijn enkele oorzaken die een cartridge kunnen uitschakelen, met allerlei fouten tot gevolg. Maar wat gebeurt er als we die fouten zelf veroorzaken?

De youtuber TheZZAZZGlitch onderzoekt glitches en hacks in de eerste generaties van Pokémon-spellen. Met andere woorden, Pokémon-spellen laten crashen is zijn specialiteit. In een van zijn laatste video's legde hij het geluid van een crash of vastloper op de Game Boy Advance uit, en daar suggereert hij dat de volledige inhoud van de cartridge kan worden gereconstrueerd met alleen dat geluid...

De Game Boy Advance zingt het lied van zijn volk

Lang verhaal kort: het geluid van de Game Boy Advance wordt verzonden met een kleine buffer in het RAM via DMA. Wanneer het einde van de buffer wordt bereikt, wordt een interrupt geactiveerd om de gegevens bij te werken en de DMA-pointer naar het begin te sturen. Tijdens een crash gaat de interrupt echter verloren en krijgt de DMA-pointer nooit meer een reset, wat betekent dat hij de volledige inhoud van het geheugen als geluid naar de luidspreker blijft sturen.

Na bijna twee uur wachten kreeg hij een 8-bit geluid van 13,1 kHz. Met behulp van een Python-script (en twee dagen besteden aan het oplossen van bugs) slaagde hij erin een reconstructie van 99,76 procent te behalen... maar dat was niet genoeg. Door drie opnames te combineren met een 'meerderheidsstem'-algoritme steeg de nauwkeurigheid naar 99,979 procent. De ROM startte in de emulator, maar had nog te veel fouten. De sleutel? Meer opnames: met zeven verschillende dumps bereikte hij 100 procent nauwkeurigheid en werd de ROM volledig hersteld.

De tweede helft van de video richt zich op het herhalen van het proces met echte hardware, en als extraatje een neppe Pokémon Emerald-cartridge. In dit geval had hij 45 opnames nodig, en nog steeds haalde hij geen 100 procent (99,9837%), maar het spel startte correct. Tot slot bevatte de cartridge een verrassing: omdat er geen batterij of speciale chip werd gebruikt, worden de savegames opgeslagen in hetzelfde Flash-geheugen waar het spel is geplaatst. Iemand heeft geweldig werk geleverd door die neppe cartridge te hacken, en het is waarschijnlijk dat TheZZAZZGlitch dit in de toekomst nader zal onderzoeken.

Ga naar het kanaal: Klik hier