I'm building Retro Song Bird, a speaker that plays the soundtracks from your classic Game Boy and Game Boy Color games. There were a ton of unique technical challenges to building the prototype in a way that could play instantly, have cool features, and not attract lawsuits from IP holders! I've discovered a ton about the artistry of these early game music composers and the technical limitations imposed on them. I've also discovered a ton of hidden bangers as I collected and tested 150+ carts. I'm most excited to see how people make music using the stems of classic tracks or perform DJ sets with two beat-synced carts. Happy to answer any questions, thanks!
It's a combination of a few things: existing GBS files, mapping new obscure carts, re-mapping music from revision to revision (usually they fix bugs but don't change music so it's the same overall shape, and lastly I have a crowdsourcing tool that works in Chrome if you plug in your Retro Song Bird. It allows you to play the ROM in a monitored emulator looking for register writes that look like music. Basically it's a multi-pronged approach with tons of little tools and heuristics!
I also go through and measure the music duration since some tracks are made to loop indefinitely and I measure the BPM of the tracks so you can sync two Retro Song Birds and change the tempo over MIDI and beat match them. Basically like a DJ set with carts instead of vinyl.
GBA is a lot harder! On GB/GBC the music is just code, so if you can find it, you can execute it. This also means you just need to store a map of where it is (e.g. pointers) and not any intellectual property. On GBA and SNES, devs had access to more modern codecs, so they might just store music as a wav or mp3-like file (or a proprietary one), which makes the job a lot tougher. The hardware and software I built is setup so that I can rapidly move on to NES next. For me, NES is the sweet spot of quality of music and ease of extraction.
I'm building Retro Song Bird, a speaker that plays the soundtracks from your classic Game Boy and Game Boy Color games. There were a ton of unique technical challenges to building the prototype in a way that could play instantly, have cool features, and not attract lawsuits from IP holders! I've discovered a ton about the artistry of these early game music composers and the technical limitations imposed on them. I've also discovered a ton of hidden bangers as I collected and tested 150+ carts. I'm most excited to see how people make music using the stems of classic tracks or perform DJ sets with two beat-synced carts. Happy to answer any questions, thanks!
How did you automate finding the music player code (and initializing it for different tracks) for +1900 ROMs?
I also go through and measure the music duration since some tracks are made to loop indefinitely and I measure the BPM of the tracks so you can sync two Retro Song Birds and change the tempo over MIDI and beat match them. Basically like a DJ set with carts instead of vinyl.