1 comment

[ 4.0 ms ] story [ 13.0 ms ] thread
Very cool process, shame this post drowned. For anyone who stumbles upon this, the tl;dw is:

- The pointer that GBA games use to play audio relies on the game to provide it with a buffer of space in RAM where the audio data is located. When the game crashes the pointer continues past this until it starts playing data from the MMIO (about 1.5 hours after the crash), where the actual ROM of the game is located. The author has a separate video with more detail here: https://youtu.be/wSWNkpqjtQY?si=qFpnQUN-2yWCfwuQ&t=361

- By getting a high enough quality recording of the sounds that the crashed game makes is sufficient to reconstruct the ROM, with some caveats that the author goes over and works around. He does not elaborate on the code for this but posts the source code in the description.

- The author uses this to dump a Chinese replica cartridge with actual Nintendo hardware. Part of this process requires creating a messy DIY audio adapter by cutting up cables, very hackery. The author then examines the surprising differences between it and a genuine cart. It uses some clever hacks itself which are clever enough to warrant a whole separate video.