Sound on the Gameboy Advance

This is a mirror with slight modifications of Deku's sound mixing tutorial (see link). I sent Deku an email, and he was very happy for the tutorial to be mirrored and asked for it to be covered by a public domain license, which now is a CC0 license. See the root of the repo.

The lessons of the tutorial:

The main reason for this mirror is that I've made the sound examples compile on POSIX systems (and to compile in general, as there were some bugs that weren't related to a specific toolchain). The code examples linked from the pages below will compile with devkitARM on Linux, OSX and Windows in a POSIX environment like MSYS2.

Besides that, I've added Makefiles to all the example files, and a top-level Makefile that will compile them all in one go by executing make in the code directory. At the top of the Makefile in that directory, you can configure the paths to the relevant GBA toolchain programs, like gcc. There are two programs, Converter and FreqTable, which are compiled for the host system. These are expected to find g++ from the PATH set in the environment.

I also fixed any warnings, and I changed the Converter and FreqTable behaviour to not require a keypress at the end of the program, as that's not really necessary in a Linux-like environment (the shell doesn't just disappear from under your nose when a program has stopped running).

Cosmetically, I've changed the layout of the tutorial a bit to set the width of the text to 800px and I changed the page colors to white text on black background. The default text font is now Arial. Also I ran the example code through clang-format so I can read it in a format I personally prefer, which is of course very arbitrary.