While looking at the Tonc audio introduction got me familiar with how the Game Boy Advance handled audio at the low level, I ended up reading on how a lot of people are either making their own sound players/mixers or teaching others how to code them. That means that, even if I did understand low-level sound programming, I would be essentially “reinventing the wheel”. Furthermore, when I considered all the people making sound players/mixers, that means that someone’s sound system must have matured through the years, even being released freely. I decided that finding someone else’s sound system would lead to a more efficient product.
- Because I plan on having my games have the GPLv3 License, I have already decided to skip any audio systems that are not freely-licensed themselves. That means that I have to skip over the fabulous Apex Audio System which manages to mix an astoundingly low footprint with astoundingly high quality. I can hope that the Apex Audio System follows Krawall’s lead on freely licensing itself years later.
- Krawall, itself, though, uses not only the problematic Cmake but also C++. I want to make my games in C.
- BoyScout not only uses its own exclusive format (which makes finding freely-licensed music far more difficult) but does not seem to work itself. I mean, no matter what keys I press, the tracker does not work!
- F.R.A.S. is not only old but also does not support every effect when playing .mod files.
Right now, my options seem to be MaxMod and GSMAudio. MaxMod is not only up-to-date but also plays .it, .s3m, and .xm files, which I read that are better formats compared to .mod files. GSMAudio is an interesting case because GSMAudio seems to make streaming files work in the Game Boy Advance. Apparently, I can just use a .wav file (or convert a .flac file to a .wav file because both are lossless formats), then to the .gsm format, then play the audio through the GSM Player. According to the webpage, I can store up to 150 minutes of audio in a 32 Megabyte (256 Megabit) cartridge, that is, the effective maximum file size a Game Boy Advance game. While that would give me access to a lot more music and free me from worrying on getting good soundbanks, the file size is a concern, especially when you consider that MIDI-style formats make smaller files, being mere instructions instead of wholesale music.
My concern with both is music quality. I mean, I read that the sound of the Game Boy Advance, especially concerning ports of Super Nintendo Entertainment System games, is bad. While I understand that there is normally an inverse relationship with quality and file size, I want to mitigate that problem when I can while still keeping file sizes small. If I were to use the pool of Game Boy Advance games that I have played and draw an example of a game that had great audio, I would pick Lilo & Stitch 2: Hämsterviel Havoc. I mean, while you can still hear the physical shortcomings coming from the Game Boy Advance, the audio quality is astonishingly clear and smooth, especially when playing trumpets. If that type of audio quality is infeasible due to the file sizes the music would have to be, my alternative would be the prequel Lilo & Stitch. The music in that game has an aesthetic that has a light nostalgic touch from apparently embracing the electronic nature the sound hardware has, but still keeps a high fidelity without sounding… muddy.
Comparing the two (using the MaxMod Game Boy Advance demo against a compiled GSM Player file) by playing both of them in an actual Game Boy Advance SP system without using headphones, GSM Player won in terms of audio quality, though MaxMod is still very good.
I wonder what soundbank MaxMod uses…