Odkrywanie danych z gier Game Boy Advance poprzez muzykę

Czasami z wielkiej boleści rodzi się wspaniała muzyka. Przykładem może być Game Boy Advance (GBA), którego oprogramowanie uległo awarii niemal dwie godziny temu, a teraz odtwarza melodię opartą na grze zawartej w karcie. Jeśli tylko wsłuchasz się dostatecznie uważnie – za pomocą specjalistycznego sprzętu i kodowania – będziesz dokładnie wiedzieć, o jakiej grze śpiewa. Teoretycznie będziesz nawet mógł zagrać w tę samą grę.

Takie odkrycie niedawno dokonał TheZZAZZGlitch, którego zadaniem jest sadystyczne wprowadzanie zakłóceń i hakowanie gier Pokémon. Jak zauważa ten modder, nie jest to jednak gotowe do użycia rozwiązanie, ponieważ wymaga precyzyjnego dostrojenia do różnych formatów źródłowych. Chociaż istnieją łatwiejsze sposoby na pozyskanie danych z karty GBA, żaden z nich nie sprawia, że czujesz się jak swoista datamanczarka uprawiająca kult ładunków.

Po awarii GBA i zarejestrowaniu dźwięków przez ponad cztery godziny, modder zauważył charakterystyczne fale dźwiękowe w pliku dźwiękowym około dwóch godzin pięćdziesięciu minut. Później możesz usłyszeć rzeczywiste dźwięki instrumentów i próbki dźwiękowe znajdujące się w grze, odtwarzane sekwencyjnie. W przeciwnym razie jest to 8-bitowe dane o częstotliwości 13,100 Hz, które czasami brzmią absolutnie obłącznie.

Po dwóch dniach rozwiązywania problemów modder przygotował gotowy skrypt w języku Python, który mógł odczytywać dźwięk z czystego nagrania awarii GBA. Czy to działało? Nie bez dalszych problemów. Jedną z trudności z tym związanych jest to, że w danych ROM występują duże fragmenty zerowych bajtów, które są trudne do odczytania jako dźwięki. Po uruchomieniu innego skryptu, który wyznaczył ponownie sekcje na podstawie ich lokalizacji w oryginalnym ROM-ie, ROM moddera był dokładny w 99,76 procentach, ale „wciąż nie uruchamiał się”. TheZZAZZGlitch później zaznacza, że technicznie rzecz biorąc jest to używanie znanych danych ROM do odkrywania nieznanych danych, czyli „oszukiwanie”, ale można by dokonywać różnych przypuszczeń i domysłów, gdybyśmy robili to naprawdę na ślepo.

Następną poprawką było udoskonalenie nagrania dźwiękowego. Po trzykrotnym nagraniu i scaleniu za pomocą algorytmu „większościowego głosowania”, dokładność wzrosła do 99,979 procent. Ten wyjściowy ROM się uruchomił, ale tekst był uszkodzony, a ekran tytułowy zawieszał się. Po scalić siedem różnych nagrań i oczyścić je z pustych miejsc, ich zgodność wynosiła 100 procent. To jest około połowy filmu; powinieneś obejrzeć resztę, aby dowiedzieć się, jak to działa na sprzęcie fizycznym, jak to działa z inną grą (zagadka kodu ARM w replikowanej karcie) i jak uzyskać najlepsze nagrania, w tym za pomocą „przeklętego adaptera”, który miesza dźwięk w nieładny sposób do jednego kanału.

1. Jakie odkrycie zostało dokonane związane z oprogramowaniem Game Boy Advance?
Odkryto, że po awarii GBA można odtworzyć muzykę opartą na grze zawartej w karcie.

2. Kto dokonał tego odkrycia?
Odkrycie zostało dokonane przez TheZZAZZGlitch, który jest modderem gier Pokémon.

3. Czy odkrycie jest gotowe do użycia?
Nie, odkrycie nie jest gotowe do użycia, ponieważ wymaga precyzyjnego dostrojenia do różnych formatów źródłowych.

4. Jakie inne sposoby pozyskania danych z karty GBA istnieją?
Istnieją łatwiejsze sposoby pozyskania danych z karty GBA, ale żaden z nich nie jest tak precyzyjny jak opisywane odkrycie.

5. Jakie trudności napotkał modder podczas realizacji tego odkrycia?
Modder napotkał trudności związane z dużymi fragmentami zerowych bajtów w danych ROM, które były trudne do odczytania jako dźwięki.

6. Jak modder udoskonalił nagranie dźwiękowe?
Modder przeprowadził trzykrotne nagranie i scalenie za pomocą algorytmu „większościowego głosowania”, co pozwoliło zwiększyć dokładność odczytu.

7. Czy odtwarzane nagranie było w pełni zgodne z oryginalnym ROM-em?
Tak, po scalić siedmiu różnych nagrań i oczyścić je z pustych miejsc, zgodność wynosiła 100%.

Definicje

GBA (Game Boy Advance) – przenośna konsola do gier, wyprodukowana przez Nintendo.

Modder – osoba, która modyfikuje oprogramowanie lub sprzęt w celu uzyskania dodatkowych funkcji lub innych zmian.

ROM – Read-Only Memory (Pamięć tylko do odczytu) – pamięć komputera, w której przechowywane są dane, które nie mogą być dowolnie modyfikowane przez użytkownika.

Przydatne linki

Nintendo – strona główna Nintendo
Pokemon – strona główna Pokemon

The source of the article is from the blog karacasanime.com.ve