A internet está repleta de guias, tutoriais e acessórios de hardware para fazer backup de jogos de Game Boy, Game Boy Color e Game Boy Advance. No entanto, o modder e youtuber conhecido como TheZZAZZGlitch decidiu explorar uma rota alternativa mais caótica: travar um jogo de Game Boy Advance e reconstruí-lo a partir do som causado pelos erros. O processo exige horas de gravação e a correção de vários bugs, mas há muito o que aprender aqui.
A família Game Boy tem muitos pontos a favor, e um deles é a relativa robustez dos seus cartuchos, embora estejam longe de ser imortais. Baterias esgotadas, fricção nos conectores, umidade, impactos e o "flex" da PCB são algumas das causas que podem deixar um cartucho fora de combate, gerando todo tipo de erro. Mas o que acontece se provocarmos esses erros nós mesmos?
O youtuber TheZZAZZGlitch se dedica a explorar glitches e hacks nas primeiras gerações dos jogos de Pokémon. Em outras palavras, travar os jogos de Pokémon é a sua especialidade. Em um dos seus últimos vídeos, ele explicou o som do crash ou travamento no Game Boy Advance e sugeriu que o conteúdo inteiro do cartucho pode ser reconstruído usando apenas esse áudio...
A Game Boy Advance, cantando a canção da sua vila
Para resumir uma longa história: o som do Game Boy Advance é transmitido com um pequeno buffer na RAM usando DMA. Quando chega ao final do buffer, uma interrupção é ativada para atualizar os dados e enviar o ponteiro DMA para o início. No entanto, durante um evento de travamento, a interrupção é perdida e o ponteiro DMA nunca recebe o reset, ou seja, ele continua enviando o conteúdo inteiro da memória para o alto-falante como se fosse som.
Depois de esperar quase duas horas, TheZZAZZGlitch obteve um som de 8 bits a 13,1 kHz. Com a ajuda de um script em Python (e o esforço de passar dois dias corrigindo bugs), ele conseguiu uma reconstrução de 99,76 por cento... embora não fosse suficiente. Ao combinar três gravações aplicando um algoritmo de "voto majoritário", a precisão subiu para 99,979 por cento. A ROM iniciou no emulador, mas ainda tinha muitos erros. A chave? Mais gravações: com sete dumps diferentes, a precisão chegou a 100 por cento, restaurando a ROM por completo.
A segunda metade do vídeo foca em repetir o processo usando hardware real e, como ingrediente extra, um cartucho falso de Pokémon Emerald. Nesse caso, ele precisou de 45 gravações e ainda assim não alcançou 100 por cento (99,9837%), mas o jogo iniciou corretamente. Para finalizar, o cartucho guardava uma surpresa: como não usa bateria nem chip dedicado, os savegames são armazenados na mesma memória Flash onde o jogo foi colocado. Alguém fez um ótimo trabalho hackeando esse cartucho falso, e é provável que TheZZAZZGlitch explore isso mais de perto no futuro.
Acesse o canal: Clique aqui