• Classy Hatter@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      51
      ·
      10 months ago

      For some reason, when a GBA game crashes, the GBA will output the content of the game cartridge as audio over the headphone jack. This person noticed it and created a script that can re-create the ROM file (content of the cartridge) from the audio that the GBA outputs.

      • cmbabul@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        10 months ago

        When I read shit like this I realize I don’t know a damn thing about computers

        • fidodo@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 months ago

          Sending data over audio was how dial up Internet worked. My guess here is that the audio playing hardware loses the ability to come to a stopping point at the end of the audio file after a crash and starts playing the data in the memory after the audio file ends as if it were audio.

              • MomoTimeToDie@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                0
                arrow-down
                2
                ·
                10 months ago

                The guy who uploaded the video that corporate content farm is “reporting” on actually covers exactly why this happens. In short, the gba plays sound from a certain part of ram, which a cpu interrupt continously refreshes. In the event of a crash, it keeps playing sound, but doesn’t get the interrupt to keep it playing the proper data from ram. If you let it cycle through all of ram, it eventually leaks out and just starts playing, well, everything else, eventually getting to the game rom. Relevant Videos

    • SkelectusA
      link
      fedilink
      English
      arrow-up
      12
      ·
      10 months ago

      I assume the game was playing an audio sample while it crashed, and the hardware never stopped playing, meaning it just kept playing through the entire address space.

  • astrsk@kbin.social
    link
    fedilink
    arrow-up
    8
    ·
    10 months ago

    Having not watched this yet, I’m going to guess that this failure state basically results in the processor simply incrementing its address pointer indefinitely which will inevitably just loop across the whole contents of the rom, along with current state ram data? Outputting audio might be a bug in this case, a hardware bug that is. Unless it was an esoteric way for the system designers to debug using oscilloscopes? Maybe it was meant to just dump ram contents but ended up hitting all rom addresses? Either way, I’m excited to watch this when I get some more time and just wanted to speculate based on the short description of the video I read.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      I’m guessing it was a debug mechanism. There are other systems that use the audio port as a serial port in debug mode, so I’m guessing that’s what’s happening here.

  • Willie@kbin.social
    link
    fedilink
    arrow-up
    6
    ·
    10 months ago

    I’m pretty sure in the guy’s video that came before that one, he said that he didn’t know if other games handled audio in the same way that the Gen 3 Pokemon games did, and that they might not be able to be copied this way.

    I’m interested to see if someone can do this again, but with a completely different game, maybe Metroid Fusion or something, idk.

  • AutoTL;DR@lemmings.worldB
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 months ago

    This is the best summary I could come up with:


    This was discovered recently by TheZZAZZGlitch, whose job is to "sadistically glitch and hack the crap out of Pokémon games.

    It’s “hardly a ready-to-use solution,” the modder notes, as it requires a lot of tuning specific to different source formats.

    After crashing a GBA and recording it over four hours, the modder saw some telltale waveforms in a sound file at about the 1-hour, 50-minute mark.

    Later in the sound-out, you can hear the actual instrument sounds and audio samples the game contains, played in sequence.

    “2 days of bugfixing later,” the modder had a Python script ready that could read the audio from a clean recording of the GBA’s crash dump.

    That’s about the halfway point of the video; you should watch the rest to learn how it works on physical hardware, how it works with a different game (an ARM code mystery in a replica cartridge), and how to get the best recordings, including the use of a “cursed adapter” that mixes down to one channel the ugly way.


    The original article contains 419 words, the summary contains 171 words. Saved 59%. I’m a bot and I’m open source!