Introduction

For a long time now, I've been planning on learning to play the keyboard. A couple
of months ago, I decided to just do it: I bought a cheap but full-featured
midi-keyboard, got myself some online piano lessons so I could set my own
pace and just went for it.

For a couple of weeks, this went well, although my set-up proved to be a bit
cumbersome: every time I wanted to practice, I had to lug my laptop to the keyboard,
connect to it over USB and set up a software MIDI synthesizer. Apart from the software
problems (I somehow got a noticable bit of latency in my setup) the effort required
to set up everything stopped me from just walking to the keyboard for a bit of
practice. I needed a setup that wouldn't need installing and configuring every time
I wanted to use it.

Any normal person at this point would have just admitted defeat, buy a synthesizer
and connect it to a pair of speakers. A more DIY-inclined person would maybe score
an old wavetable card you used to plug into those ISA sound cards and connect a pair
of speakers, an optocoupler and a voltage source to it. I would have done that, if
I hadn't seen the awesome
Chipophone first. This
basically is an organ re-built to spit out MIDI messages, combined with an AVR which
acts as a simple software synthesizer generating cool old-school bleeps and bloops.
LFT, the maker of this contraption, has succesfully used it to play various classic
video game songs live. Unfortunately, he hasn't released the sources for the
microcontrollers.

So, what else could I use to make a Gameboy-esque sound? How about a standard GameBoy?
Actually, this has been done before.
The problem is that to run any homebrew code on a normal GameBoy, you'd need a flash
card. These cards aren't really easily obtainable anymore, and programming them
would be even more of a hassle under a modern OS.

How about a generation later: the GameBoy Advance? The GBA is backwards compatible
with the original GB, but adds a better processor, better graphical capabilities and
some extra sound capabilities. It still sports the original GB sound hardware too, so
it would do just fine to make some retro music. The GBA also has something that can be
quite useful: it can boot multiple GBAs over a link cable from just one cartridge, a
feature called 'multibooting'. The protocol it uses for that is encrypted, but
luckily has been reverse-engineerded for quite a while now. The link cable, obviously,
can also be used to transmit data to and from the GBA when a program is running.