{"id":11227,"date":"2024-06-10T18:50:48","date_gmt":"2024-06-11T01:50:48","guid":{"rendered":"https:\/\/mattfife.com\/?p=11227"},"modified":"2024-04-15T19:03:08","modified_gmt":"2024-04-16T02:03:08","slug":"reconstructing-a-binary-gameboy-game-just-from-the-sound-of-it-dying","status":"publish","type":"post","link":"https:\/\/mattfife.com\/?p=11227","title":{"rendered":"Reconstructing a binary GameBoy game just from the sound of it dying"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/0-7PSmYYHF0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<p>ZZAZZGlitch has <a href=\"https:\/\/www.tomshardware.com\/video-games\/handheld-gaming\/game-boy-advance-games-can-be-recreated-from-the-sound-they-make-when-they-die-modder-demonstrates\" data-type=\"link\" data-id=\"https:\/\/www.tomshardware.com\/video-games\/handheld-gaming\/game-boy-advance-games-can-be-recreated-from-the-sound-they-make-when-they-die-modder-demonstrates\">successfully reverse-engineered a Game Boy Advance game&#8217;s data solely from the sound made when a GBA game experiences a hard crash<\/a>. The per-game crash &#8216;songs&#8217; that happen when a GBA game crashes actually contains the entire cartridge&#8217;s ROM data and every sound in the game played back in raw\u00a0audio in sequential order. In theory, with the correct tools and know-how, any GBA game should be recoverable from recording that audio.<\/p>\n\n\n\n<p>ZZAZZGlitch shows us how in his video. Wow. He even made <a href=\"https:\/\/sites.google.com\/site\/thezzazzglitch\/\">the source code is available on his personal site,<\/a>\u00a0labeled &#8220;gbacrashsound_dumper.zip&#8221;. It still took a LOT of hacking and manual fix-ups; but he got a bootable game in the end.<\/p>\n\n\n\n<p>Reminds me of the guy that tried to <a href=\"https:\/\/mattfife.com\/?p=10537\" data-type=\"link\" data-id=\"https:\/\/mattfife.com\/?p=10537\">reconstruct the Yars Revenge source from the explosions shown onscreen<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ZZAZZGlitch has successfully reverse-engineered a Game Boy Advance game&#8217;s data solely from the sound made when a GBA game experiences a hard crash. The per-game crash &#8216;songs&#8217; that happen when a GBA game crashes actually contains the entire cartridge&#8217;s ROM data and every sound in the game played back in raw\u00a0audio in sequential order. In theory, with the correct tools and know-how, any GBA game should be recoverable from recording that audio. ZZAZZGlitch shows us how in his video. Wow&#8230;.<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?p=11227\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9,5],"tags":[],"class_list":["post-11227","post","type-post","status-publish","format-standard","hentry","category-cool","category-technical"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4WECr-2V5","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/11227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11227"}],"version-history":[{"count":3,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/11227\/revisions"}],"predecessor-version":[{"id":11231,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/11227\/revisions\/11231"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}