# gbadev resources
A curated list of development resources for Game Boy Advance.
Contribute adding resources or providing feedback through Pull Requests, Issues or joining us on Discordopen in new window.
GBADev Discord Serveropen in new window - This is where everyone hangs out nowadays. Come say hi!
Info for IRC users
All rooms are bridged to IRC channels on EFnetopen in new window.
#gbadev- general chat
#gba-meta- community feedback/discussion
#gba-help- help & support
#gba-emudev- emulator development
#gba-asm- ARM/Thumb assembly and CPU architecture
#gba-showcase- share what you're working on!
#gba-music- listening, composing and audio programming
#gba-offtopic- off-topic chat
#gba-docs- community documentation projects (tutorials, technical docs etc.)
#gba-tools- tool discussion (grit, tiled, aseprite, etc.)
#gba-toolchain- gba-toolchain, agbabi and gba-plusplus development & support
#butano- Butano engine development & support
#natu- Natu toolkit development & support
GBADevopen in new window - The longstanding homepage of the scene. Regularly updated with the lastest news and releases.
GBAtempopen in new window - The site carries the GBA name, but now the console is relegated to the backbenches.
- GBATEKopen in new window - Programming specs for the GBA and NDS hardware
- CowBite Virtual Hardware Specificationsopen in new window - Older GBA hardware documentation
- The Audio Advanceopen in new window - Audio hardware documentation and basic test ROMs
- Toncopen in new window - Complete programming tutorial
- Sound on the Gameboy Advanceopen in new window - How to write your own sound mixer / MOD music player
- Gameboy Advance Resource Managementopen in new window - Allocation techniques for the GBA's various memory regions
- Managing Sprite Cel VRAM on the Game Boy Advanceopen in new window - Analysis of the VRAM streaming approach for animated sprites
- Using Beepbox for GBA Music Compositionopen in new window
# Software Development
- devkitARMopen in new window - C/C++ cross-compiler toolchain, which includes libgba, libtonc, maxmod, and various tools and example projects.
- gba-toolchainopen in new window - GNU Arm Embedded Toolchain based alternative to devkitARM.
- gvasmopen in new window - Stand-alone assembler and disassembler (WIP) designed specifically for GBA homebrew
- rust-consoleopen in new window - GBA programming in Rust, plus tutorial.
- natuopen in new window - GBA programming in Nim (provides wrapper around libtonc, maxmod and more).
- gba-modernopen in new window - Write GBA games using modern C++.
- ZigGBAopen in new window - WIP SDK for creating GBA games using Zig (Inspired by Tonc).
- Butanoopen in new window - Modern C++ high level engine for the GBA.
- BPCore Engineopen in new window - Create GBA applications with the Lua programming language
- agbabiopen in new window - Drop-in application binary interface library (context switching, division, irq, memcpy, sine).
- gba-plusplusopen in new window - Modern C++ alternative to libgba and libtonc.
- HeartLibopen in new window - Comprehensive C library inspired by the classic HAMLib.
- libsevenopen in new window - Lightweight, from-scratch replacement for libgba.
- GBAdvopen in new window - High level utilities on top of libgba.
- Maxmodopen in new window - Music and sound library (supports .mod, .xm, .s3m, .it)
- Apex Audio Systemopen in new window - Music and sound library (supports .mod only, but very good performance)
- Krawallopen in new window - Music and sound library (supports .xm, .s3m)
- Pimpmobileopen in new window - Music library (supports .mod, .xm)
- posprintfopen in new window - An
sprintfroutine written in Thumb assembler.
- GBFSopen in new window - Practical filesystem
- mGBAopen in new window - Actively developed GBA emulator. Runs on a bunch of platforms. Text debugger through GDB stub.
- No$gbaopen in new window - Venerable GBA emulator. Windows only, but runs well under Wine. Not very actively maintained but still gets updates now and then. Sports graphical debugger.
- NanoBoyAdvanceopen in new window - GBA emulator with high accuracy, especially in timing and CPU emulation. Currently lacking a GUI or debugger.
- MiSTer FPGA implementationopen in new window - Needs MiSTeropen in new window setup to run.
# Emulator Development
- mGBA test suiteopen in new window
- GBA Suiteopen in new window
- 240p-test-miniopen in new window - video signal tests
- Goodboy Advanceopen in new window - Made in 2018, and has a nice bit of information on how it's made.
- Celeste Classicopen in new window - 2019 port of Pico8 version of Celeste.
- GBADoomopen in new window - 2019/2020 GBA port of prBoom version of Doom.
- BlindJumpopen in new window - Adventure game, developed in 2020. Implementation of link-cable multiplayer, fully digital audio.
- Tigermothopen in new window - Bullet hell game, developed for the GBAJam 2021
- Dusteropen in new window - A sleek strategy board game for the gba
- OpenLaraopen in new window - Classic Tomb Raider open-source engine
- gba_biosopen in new window - WIP disassembly of the Game Boy Advance BIOS
- GBA bare metal codeopen in new window - Various experiments by Krom, such as video playback and 3D, written in ARM Assembly
# Dumping the GBA BIOS
- Software interrupt $1F / MidiKey2Freqopen in new window, canonical method
- Cracking the GBA BIOSopen in new window by endrift
- Dumping the GBA BIOSopen in new window, another method by MerryMage
# Reverse engineering
- Reverse Engineering a GameBoy Advance Gameopen in new window - A series of detailed posts and talks about developing a level editoropen in new window for Klonoa: Empire of Dreams
- Pokemon Rubyopen in new window - C programming language annotation of a Pokemon Ruby disassembly