# 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.
# Introduction
# Community
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.
Main channel
#gbadev
- general chatAdditional channels
#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.)Project-specific channels
#gba-toolchain
- gba-toolchain, agbabi and gba-plusplus development & support#butano
- Butano engine development & support#natu
- Natu toolkit development & supportGBADevopen 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.
# Documentation
- 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
# Tutorials
- 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
# Articles
- 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
# Compilers
- 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
# Toolkits
- 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
# Libraries
- 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
sprintf
routine written in Thumb assembler. - GBFSopen in new window - Practical filesystem
# Emulators
- 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
# Testing
- mGBA test suiteopen in new window
- GBA Suiteopen in new window
- 240p-test-miniopen in new window - video signal tests
##Homebrews
- 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
# Jams
# Miscellanea
- 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
# Historical links
- HELopen in new window - GBA C library built on top of HAM (a classic SDK from back in the day)
- Headspin's Guideopen in new window to Compression, Files Systems, Screen Effects and MOD Players for the Gameboy Advance