Live data from Hacker News

Modder re-creates Game Boy Advance games using the audio from crash sounds

arstechnica.com

31–40 of 89 posts

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#31

The issue with long runs of 0x00 is related to "clock recovery". > Some digital data streams, especially high-speed serial data streams (such as the raw stream of data from the magnetic head of a disk drive and serial communication networks such as Ethernet) are sent without an accompanying clock signal. The receiver generates a clock from an approximate frequency reference, and then phase-aligns the clock to the tra…

[deleted]

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#32
post #13

This reminds me of the original iPodLinux hack almost twenty years ago where the fourth-gen firmware was dumped via the piezo speaker - https://web.archive.org/web/20140810083116/http://www.newsci... Coincidentally one of the things this facilitated was playing GBA games on the iPod, though I was happy enough just to play Doom a with the click wheel and watch monochrome videos.

Good memories. I still have my iPod Classic, I upgraded the battery and added 4 256GB MicroSD cards. I saw a mod recently for adding Bluetooth but it involves swapping the rear case and I don't think I'll go that far. There's something timeless about the design (and about owning copies of music files).

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#33

Does anyone know what's going on when the TheZZAZZGlitch's emulator reports that the game tries to jump to an invalid address? I'm not so familiar with the ARM7 processor used in the GameBoy Advance, but I can't imagine how it would be possible to construct a jump call with an invalid value. Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy?

> I can't imagine how it would be possible to construct a jump call with an invalid value

You can use the bx instruction to jump to any address stored in a register.

> Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy?

It would crash, and eventually start playing the ROM on the speaker, the whole point of the video :)

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#34
post #29

Earlier quoted context omitted.

Without looking up datasheets, just form the top of my head: the Arduino DAC most likely has 12 bits resolution (as common for cheap uCs), and maybe even slower sampling than a soundcard. A sound card was probably better than that even in the 1990s (say a Sound Blaster).

The original Sound Blaster could only record at 8-bit resolution at up to 12 kHz. The 2.0 could record at up to 15kHz, still 8-bit. The second generation of Sound Blaster was the first that could record at 44kHz (mono) sampling rate, but was still only 8-bits of resolution. It wasn't until the 3rd generation Sound Blaster 16 that 16-bit audio could be recorded.

Hmm, I had (false) memories of better capabilities. Though my first soundcard was an SB Pro clone, later an SB16, both almost capable :)

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#35

This is insanely impressive. I'm sure many of the techniques used like the "majority vote" algorithm cited are underutilized across many industries.

One interesting application of taking the value appearing in majority, or more generally taking the median, is to remove noise or people from a sequence of several photos taken from the same point of view. This idea is to superimpose all the photos, and for each pixel, you simply keep the median [1].

[1]: https://patdavid.net/2013/05/noise-removal-in-photos-with-me...

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#37

Does anyone know what's going on when the TheZZAZZGlitch's emulator reports that the game tries to jump to an invalid address? I'm not so familiar with the ARM7 processor used in the GameBoy Advance, but I can't imagine how it would be possible to construct a jump call with an invalid value. Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy?

> I can't imagine how it would be possible to construct a jump call with an invalid value You can use the bx instruction to jump to any address stored in a register. > Additionally, what would happen if one of TheZZAZZGlitch's incorrectly reconstructed ROMs was run on a real GameBoy? It would crash, and eventually start playing the ROM on the speaker, the whole point of the video :)

Thanks for the explanation! So it sounds like the emulator is detecting the error 'out of band' with the emulated execution flow, and choosing to throw an error message rather than letting the execution continue. If it didn't catch the error, it sounds like it would glitch out in much the same way as the real GameBoy would. Is that right?

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#39

Earlier quoted context omitted.

I love how we used to use a bunch of very clever "code book" systems like 8b/10b which did a lot of careful work with small runs of bits to ensure the clock was recoverable and to avoid line capacitance issues. Then we just moved to things like 64/66b which takes a giant chunk of bits, adds a short header to guarantee a clock transition, then runs everything through a pseudorandom scrambler.

A sprinkle of entropy improves everything

They do a similar thing for GPS data recovery. It is so far below the noise floor that normally speaking the signal is not recoverable. But then you inject some (known) noise and suddenly the noise modulated by the (unknown) signal starts to drown out the noise in the rest of the system and that in turn allows you to recover bits from the signal.

Re: Modder re-creates Game Boy Advance games using the audio from crash sounds

#40

This is insanely impressive. I'm sure many of the techniques used like the "majority vote" algorithm cited are underutilized across many industries.

It's fairly common in data recovery though, just keep on reading disk images and running quora until something passes the checksum and see if it works out. Better still if there are higher level checksums (for instance across a file that has a signature) for further verification. Also used in some aerospace applications.
Post reply on HN