TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

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

582 pointsby dagenixover 1 year ago

17 comments

thewakalixover 1 year ago
The issue with long runs of 0x00 is related to &quot;clock recovery&quot;.<p>&gt; 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 transitions in the data stream with a phase-locked loop (PLL).<p>&gt; In order for this scheme to work, a data stream must transition frequently enough to correct for any drift in the PLL&#x27;s oscillator. The limit for how long a clock-recovery unit can operate without a transition is known as its maximum consecutive identical digits (CID) specification.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Clock_recovery" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Clock_recovery</a>
评论 #39095356 未加载
评论 #39099639 未加载
评论 #39101390 未加载
评论 #39100142 未加载
评论 #39095916 未加载
Y_Yover 1 year ago
This reminds me of the original iPodLinux hack almost twenty years ago where the fourth-gen firmware was dumped via the piezo speaker - <a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20140810083116&#x2F;http:&#x2F;&#x2F;www.newscientist.com&#x2F;article&#x2F;dn7085" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20140810083116&#x2F;http:&#x2F;&#x2F;www.newsci...</a><p>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.
评论 #39096102 未加载
skeakerover 1 year ago
Glad to see this getting more attention here, it was posted a few days ago but drowned (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39037104">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39037104</a>). The original video has a lot not mentioned in this brief article, including a custom adapter that the hacker had to cut together manually to get the right audio quality out of the DS.
评论 #39094399 未加载
brokensegueover 1 year ago
Zzazz (the subject of the article) runs a yearly April fools competition&#x2F;event that usually involves some amount of retro hacking&#x2F;reverse engineering. I recommend participating. Previous years competitions are on their GitHub
shadowgovtover 1 year ago
I&#x27;ve always found Nintendo&#x27;s audio architectures to be fascinating.<p>The original NES had a sample generator that could do arbitrary waveforms and could be driven in two modes: one mode is you gave it a memory address and it&#x27;d start reading the bits in and treat them as an incredibly simple waveform (1 means &#x27;go up one value&#x27;, 0 means &#x27;go down one value&#x27;... So to do a flat wave you&#x27;d do a run of 10101010etc.).<p>But you could also direct-drive the chip by continuously feeding it an &quot;initial value&quot; directly from the CPU, which was actually faster than the audio driver would read the bits from RAM itself... Problem is that doing so ate up all your CPU cycles, so you could only do it if you weren&#x27;t doing anything else.<p>There were some games that took advantage of that: Battletoads had higher-fidelity drum-hits that they could play when action was paused, and they used it for the title screen, the extra-&quot;crunchy&quot; final hits on enemies (where all the action paused for a moment for dramatic effect), and the memorable pause music.<p>Here&#x27;s a demo of the game switching between direct-drive and let-chip-read-samples mode to demonstrate (credit to Retro Game Audio for uploading the emulator-doctored video to show when the game is in the direct-drive subroutine). <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=JGT0FM3yh-w" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=JGT0FM3yh-w</a>
peddling-brinkover 1 year ago
Why would this happen in the first place? Is it common for these games to dump state to audio? Is it a deliberate debugging tool for the game devs?
评论 #39094531 未加载
评论 #39095232 未加载
2024throwawayover 1 year ago
This is insanely impressive. I&#x27;m sure many of the techniques used like the &quot;majority vote&quot; algorithm cited are underutilized across many industries.
评论 #39094915 未加载
评论 #39096439 未加载
评论 #39097032 未加载
评论 #39095566 未加载
da768over 1 year ago
I imagine the 0xFF might be converted to 0x00 due to DC blocking capacitors&#x2F;high-pass filtering, audio circuits aren&#x27;t really suited for non-audible content.<p>He might get better capture accuracy with a digital oscilloscope hooked directly at the chip&#x27;s audio outputs if he&#x27;s lucky, but it&#x27;s still pretty impressive he got a bootable image out of that.
评论 #39094364 未加载
评论 #39094408 未加载
Rapzidover 1 year ago
The most impressive part of all this is, IMHO, how the code was modified by the bootleggers to run the game off writable flash vs ROM plus volatile save memory haha.
评论 #39101552 未加载
seabass-labraxover 1 year ago
Does anyone know what&#x27;s going on when the TheZZAZZGlitch&#x27;s emulator reports that the game tries to jump to an invalid address? I&#x27;m not so familiar with the ARM7 processor used in the GameBoy Advance, but I can&#x27;t imagine how it would be possible to construct a jump call with an invalid value. Additionally, what would happen if one of TheZZAZZGlitch&#x27;s incorrectly reconstructed ROMs was run on a real GameBoy?
评论 #39096354 未加载
评论 #39097933 未加载
scarecrwover 1 year ago
This reminds me of an attempt made by RGMechEx to retrieve game code for an Atari game where the code itself was used to generate a visual effect similar to TV static on the screen [1].<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5HSjJU562e8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=5HSjJU562e8</a>
maxlinover 1 year ago
The diffing of the real-world cartridge was the most interesting part. Requires a goofy amount of unnecessary knowledge to just jump in to reversing that and figuring out what its meaning is lol
jacquesmover 1 year ago
That is extremely clever. The persistence alone is impressive but to get it to the point where it works well enough that you can actually extract the ROM contents with high fidelity is next level.
Trekker666over 1 year ago
I&#x27;ve done this using GoldWave opening game files to extract their audio because I like the menu song or something, but nothing this sophisticated and cool.
goodboyjojoover 1 year ago
this is a good article. very interesting stuff
DerCommodoreover 1 year ago
Crazy
reactordevover 1 year ago
It’s stories like these that remind me I’m stupid and have a lot still to learn. My goodness this is amazing. Up there with audio key logging and things I read about but could never dream would be a real thing.<p>I tip my hat sir. Reminded that I’m a mere mortal in the presence of greatness. The absurdity of recreating a game based on audio crashes sounds like something a mental patient would say but no, here we are in 2024.
评论 #39100118 未加载
评论 #39094171 未加载