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] '[b]CPU:'[/b] 32 bit ARM7TDMI at 16.8 MHz. 8 MHz '[[Z80] processor for backwards compatibility with Game Boy cartridges. '[b]Internal Window RAM (IWRAM):'[/b] 32kb. '[b]External Window RAM (EWRAM):'[/b] 256kb. '[b]Video RAM (VRAM):'[/b] 96kb. '[b]Display:'[/b] 240x160 pixels. '[b]Color Palette:'[/b] 15 bit BGR, with 512 simultaneous colors in "character mode" and all available colors in "bitmap mode". '[b]Sound'[/b] 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 '[l[https://www.copetti.org/writings/consoles/game-boy-advance/[this article] by Rodrigo Copetti for more information related to the GBA's specifications. '[#[Development] '[t[b1]Communities for GBA development:'[/t] - '[l[https://gbadev.net/[gbadev] - '[l[https://www.gbadev.org/[gbadev.org] '[t[b1]GBA libraries'[/t] - '[l[https://github.com/GValiente/butano[Butano]: a high level C++ library - libtonc with devkitARM (C/C++): see the GBA Programming guide '[l[https://gbadev.net/tonc/[Tonc] - libgba: a C library bundled as a component of '[l[https://devkitpro.org/wiki/Getting_Started[devkitPro] - '[l[https://www.problemkaputt.de/gbatek.htm[GBATEK]: for low level programming - much more examples on '[l[https://gbadev.net/getting-started.html[gbadev] '[t[b1]Audio related'[/t] - Chris Strickland's GBA Audio Programming tutorial '[ul[* '[l[https://www.gamedev.net/articles/programming/general-and-gameplay-programming/audio-programming-on-the-gameboy-advance-part-1-r1823/[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 '[l[https://sourceforge.net/projects/devkitadv/files/[here]] - '[l[https://deku.gbadev.org/program/sound1.html[Sound on the Gameboy Advance]: a tutorial to program a sound mixer converting '[[.mod] songs into GBA readable files '[t[b1]Further resources'[/t] See '[l[https://github.com/gbadev-org/awesome-gbadev[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] '[t[b3]For music creation'[/t] '[t[b2]Trackers'[/t] - '[[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) - '[l[https://www.gbadev.org/tools.php?showinfo=187[BoyScout] (Windows) '[t[b2]Module conversion tools'[/t] - '[[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] '[ul[* 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 '[l[https://github.com/AntonioND/gbt-player/tree/master/gba/examples/combined_maxmod[here] for information.] '[t[b2]Other tools'[/t] '[t[b1]'[l[http://www.nanoloop.de/two/index.html[nanoloop two]'[/t] 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. '[t[b1]Sappy Sound Engine'[/t] 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. '[t[b1]Other sound engines'[/t] 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 '[l[https://gist.github.com/loveemu/5475a80e9fba4e71affbf9ca7a939ae5[this GitHub Gist page]. For each sound engine, it also aim to provide additional information as well as useful links! '[t[b3]To rip music from games'[/t] '[t[b1]'[[GBAMusRiper]'[/t] A tool to rip sound fonts and midi files from games made with the M4A sound engine. '[t[b1]'[[UnkrawerterGBA]'[/t] 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 '[ul['[[gba (format)] '[[wildchip (format)] '[[fakebit (format)] '[[allgear (format)]] - Consoles '[ul['[[Game Boy] '[[Game Boy Color]] - File Formats '[ul['[[.mod]] - Helper Tools '[ul['[[GBAMusRiper] '[[Krawall] '[[Maxmod] '[[UnkrawerterGBA]] - Sound chips '[ul['[[Z80]] - Trackers '[ul['[[Furious Advance Tracker] '[[M4G Tracker]]