How to Make Another MOD Player for the GBA

This tutorial will take you through the steps necessary to create a small, efficient MOD player for the Nintendo® GameBoy® Advance.

We will be programming this project in pure ASM. C/C++ is much too bloated to create such a masterpiece! If you're not a very advanced programmer, you may still learn a few things from this tutorial (such as the MOD format itself).

Oh, and by the way, I would like to let everyone know that the .mod format sucks. It was good during its time, but it is very hard to work with (although easy to implement in software). If you tell your musician to provide MOD music, he will probably reply with a very disgusted face (assuming he is aquainted with the lack of features).

One more thing, nobody really cares about a super-optimized and efficient whatever. I find this kind of stuff fun to make, but don't get hung up on optimizing stuff to death when you're doing real programming; you'll never finish anything that way.

Table of Contents

1. Required Tools
2. What Our Goals Are
3. MOD Format Overview
4. GBA Sound Hardware Overview
5. Testing Environment
6. Basic Sound Implementation
7. Simple Sound Mixer
8. Basic MOD Playback
9. Many MOD Effects
10. Profiling and Optimization
11. Optimizing the Sound Mixer
12. The Product