::|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.
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 MusicPlayer2000 (or m2k). It is also known as "Sappy" (named by a program that could convert them to midi), which was somewhat similar to the midi standard. 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.
To rip music from games
UnkrawerterGBA
A program working on games developed with the
Krawall sound engine, can extract .s3m and
.mod files from GBA roms.
See Also
referencing to:
- Battle Formats
- Consoles
- File Formats
- Helper Tools
- Sound chips
- Trackers