::|CONTENTS
- Specifications
- Development
- Competition
- Tools
- See Also
The Game Boy Advance was the successor to the
Game Boy and
Game Boy Color, released in 2001, and soon after succeeded by the Nintendo DS in 2004. It was backwards compatible with
Game Boy and
Game Boy Color games.
Specifications
CPU: 32 bit ARM7TDMI at 16.8 MHz. 8 MHz
Z80 processor for backwards compatibility with Game Boy cartridges.
Internal Window RAM (IWRAM): 32kb.
External Window RAM (EWRAM): 256kb.
Video RAM (VRAM): 96kb.
Display: 240x160 pixels.
Color Palette: 15 bit BGR, with 512 simultaneous colors in "character mode" and all available colors in "bitmap mode".
Sound
The GBA has all channels from the Game Boy (2 pulse, 1 noise, 1 4-bit waveform), provided by the
Z80 chip. This chip is sometime called a PSG (Programmable Sound Generator) when referring to its audio capabilities. This naming will be reused in the rest of the article.
The GBA also has two channels for playing PCM samples, they form together a 8-bit DAC for stereo audio called Direct Sound. This system is almost always used with an audio mixing software (such as MusicPlayer2000,
Krawall or
Maxmod) in order to play songs originally composed using more than two channels. These mixing software are often referred as sound engines.
See
this article by Rodrigo Copetti for more information related to the GBA's specifications.
Development
Communities for GBA development:
-
gbadev
-
gbadev.org
GBA libraries
-
Butano: a high level C++ library
- libtonc with devkitARM (C/C++): see the GBA Programming guide
Tonc
- libgba: a C library bundled as a component of
devkitPro
-
GBATEK: for low level programming
- much more examples on
gbadev
Audio related
- Chris Strickland's GBA Audio Programming tutorial
* Tutorial page
* It uses "Jason Wilkins Unofficial GameBoy Advance Software Development Kit", aka DevKit Advance. The link in the tutorial is broken but you can download the library here
-
Sound on the Gameboy Advance: a tutorial to program a sound mixer converting
.mod songs into GBA readable files
Further resources
See
Awesome Game Boy Advance development, a curated list of development resources for Game Boy Advance.
Competition
Music made for the Game Boy Advance can be used in its dedicated format:
gba (format)
It can also be used in
wildchip (format),
fakebit (format) and
allgear (format).
Tools
For music creation
Trackers
-
Furious Advance Tracker (GBA rom): A stripped down LSDJ clone for GBA. Has a github that hasn't been updated since late 2018.
-
M4G Tracker (GBA rom)
-
BoyScout (Windows)
Module conversion tools
-
Maxmod: converts .s3m, .xm,
.mod and .it files to .gba roms, can only use the PCM channels
-
Krawall: converts .s3m and .xm files to .bin roms, can only use the PCM channels
-
GBT Player
* A tool to convert .s3m and .mod files to .gba roms
* Is only able to use the PSG by itself, but when using a .s3m module, it can be combined with either Maxmod or Krawall so that you can compose your song using all the Game Boy Advance channels, see here for information.
Other tools
nanoloop two
The second edition of the nanoloop line, developed by Oliver Wittchow. It's designed more akin to a step-sequencer than a traditional tracker, and as such is more suited to beat production.
Sappy Sound Engine
Game Boy Advance games often used a sound engine called M4A (or AGB MusicPlayer2000). It is also known as "Sappy", named after a program used to convert ROMs to midi.
Some information on the engine can be found here:
-
http://web.archive.org/web/20221119023845/https://www.romhacking.net/documents/%5b462%5dsappy.txt
-
https://loveemu.github.io/vgmdocs/Summary_of_GBA_Standard_Sound_Driver_MusicPlayer2000.html
Sappy can be used in combination with mid2agb, an utility to convert midi files agb files.
These two tools seem to be popular among the ROM hacking community to rip and modify the music of GBA roms. Please consider providing more information as well as a working downloading link if you are familiar with them.
Other sound engines
Many more sound engines were used by video game studios to develop commercial GBA games. Unfortunately in most cases, these sound engines were never publicly released. As far as we know, the only exception is Krawall, which became open source in 2013.
You can find a list of GBA sound engines on
this GitHub Gist page. For each sound engine, it also aim to provide additional information as well as useful links!
To rip music from games
GBAMusRiper
A tool to rip sound fonts and midi files from games made with the M4A sound engine.
UnkrawerterGBA
A program working on games developed with the
Krawall sound engine, can extract .s3m and .xm files from GBA roms.
See Also
referencing to:
- Battle Formats
- Consoles
- File Formats
- Helper Tools
- Sound chips
- Trackers