Home Top sites Search code, repositories, users, issues, pull requests…

Search code, repositories, users, issues, pull requests…

by Assessor

A curated list of development resources for Game Boy Advance.

Contribute adding resources or providing feedback through Pull Requests, Issues or joining us on Discord. You can find a web version of this list here.

Table of Content

  • Introduction
    • Community
  • Documentation
    • Tutorials
    • Articles
  • Software Development
    • Compilers
    • Toolkits
    • Libraries
    • Emulators
  • Emulator Development
    • Testing
  • Homebrews
    • Jams
  • Miscellanea
    • Dumping the GBA BIOS
    • Reverse engineering
    • Historical links
  • Technical introduction to the GBA

Community

  • GBAdev Forum – Our new hub for announcements and long-form discussion. It’s a good place to ask questions and share progress on your projects.

  • GBAdev Discord – This is where everyone hangs out to chat nowadays. Come say hi!

    Info for IRC users

    All rooms are bridged to IRC channels on EFnet.

    Main channel #gbadev – general chat

    Additional 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.) #gbajam – hang out with other GBA Jam participants & share your progress

    Project-specific channels #gba-toolchain – gba-toolchain, agbabi, and gba-hpp development & support #butano – Butano engine development & support #natu – Natu toolkit development & support

Other places

  • GBAdev.org – The longstanding homepage of the scene. Still updated with news and releases (but the forums have been broken for a while).
  • GBAtemp – The site carries the GBA name, but nowadays the console is relegated to the backbenches. It’s a good place to talk about gaming and hardware though.
  • GBATEK – Programming specs for the GBA and NDS hardware
  • CowBite Virtual Hardware Specifications – Older GBA hardware documentation
  • The Audio Advance – Audio hardware documentation and basic test ROMs
Read more:   Parisians carry on shopping as mass graves are exhumed below their feet

Tutorials

  • Tonc – Complete programming tutorial
  • Compile C++ for GBA in under an hour – Cinemint’s video for getting started with C++/Butano
  • Sound on the Gameboy Advance – How to write your own sound mixer / MOD music player

Articles

  • Gameboy Advance Resource Management – Allocation techniques for the GBA’s various memory regions
  • Managing Sprite Cel VRAM on the Game Boy Advance – Analysis of the VRAM streaming approach for animated sprites
  • Using Beepbox for GBA Music Composition

Compilers

  • devkitARM – C/C++ cross-compiler toolchain, which includes libgba, libtonc, maxmod, and various tools and example projects.
  • gba-toolchain – GNU Arm Embedded Toolchain based alternative to devkitARM.
  • gvasm – Stand-alone assembler and disassembler (WIP) designed specifically for GBA homebrew
  • TinyGo – An alternative Go compiler for embedded systems, that supports GBA compilation

Toolkits

  • rust-console – GBA programming in Rust, plus tutorial.
  • natu – GBA programming in Nim (provides wrapper around libtonc, maxmod and more).
  • gba-modern – Write GBA games using modern C++.
  • ZigGBA – WIP SDK for creating GBA games using Zig (Inspired by Tonc).
  • Butano – Modern C++ high level engine for the GBA.
  • BPCore Engine – Create GBA applications with the Lua programming language
  • GBA Dlang – WIP SDK for GBA development using D, using LLVM toolchain. provides fully functional TONC, GBFS, Maxmod.
  • dusk – Simple, lightweight, intuitive framework for GBA game development
  • gbsenpai – GB Studio player GBA port with some enhancements.
  • meson-gba – Meson-based GBA toolkit with support for many different libraries and tools.
  • sdk-seven – (WIP) Modern C libraries, runtimes, and tooling for GBA development.
  • rath – Forth programming environment for the Game Boy Advance
  • ada-gba-dev – A build system, libraries, and tools for producing programs for the Game Boy Advance using the Ada programming language.
Read more:   23 Top Attractions & Things to do in Hanoi

Libraries

  • agbabi – Drop-in application binary interface library (context switching, division, irq, memcpy, sine).
  • gba-hpp – C++20 header-only library for GBA development.
  • HeartLib – Comprehensive C library inspired by the classic HAMLib.
  • libseven – Modern, from-scratch replacement for libgba and libtonc.
  • GBAdv – High level utilities on top of libgba.
  • Maxmod – Music and sound library (supports .mod, .xm, .s3m, .it)
  • Apex Audio System – Music and sound library (supports .mod only, but very good performance)
  • Krawall – Music and sound library (supports .xm, .s3m)
  • Pimpmobile – Music library (supports .mod, .xm)
  • GBT Player – Music library that uses the DMG sound channels (close to 0% CPU usage).
  • posprintf – An sprintf routine written in Thumb assembler.
  • GBFS – Practical filesystem
  • agb – Rust library. It attempts to be a high level abstraction over the internal workings of the Game Boy Advance whilst still being high performance and memory efficient.
  • gbaLib – Library for programming the GBA with TinyGo

Emulators

  • mGBA – Actively developed GBA emulator. Runs on a bunch of platforms. Text debugger through GDB stub.
  • No$gba – Venerable GBA emulator. Windows only, but runs well under Wine. Not very actively maintained but still gets updates now and then. Sports graphical debugger.
  • NanoBoyAdvance – GBA emulator with high accuracy, especially in timing and CPU emulation. Does not have debugging features.
  • SkyEmu – GB/GBA/NDS Emulator with built in debuggers, REST API for scripting, and high accuracy.
  • MiSTer FPGA implementation – Needs MiSTer setup to run.

Testing

  • mGBA test suite
  • GBA Suite
  • 240p-test-mini – video signal tests
  • NBA hardware tests
  • Goodboy Advance – Made in 2018, and has a nice bit of information on how it’s made.
  • Celeste Classic – 2019 port of Pico8 version of Celeste.
  • GBADoom – 2019/2020 GBA port of prBoom version of Doom.
  • BlindJump – Adventure game, developed in 2020. Implementation of link-cable multiplayer, fully digital audio.
  • Tigermoth – Bullet hell game, developed for the GBAJam 2021
  • Duster – A sleek strategy board game for the gba
  • OpenLara – Classic Tomb Raider open-source engine
  • GBA Jam 2021
  • GBA Winter Jam ’21
  • GBA Jam 2022
  • GBA Winter Jam ’23
  • gba_bios – WIP disassembly of the Game Boy Advance BIOS
  • GBA bare metal code – Various experiments by Krom, such as video playback and 3D, written in ARM Assembly
  • dkarm_gba_docker – A Docker image that includes DevkitARM and other GBA SDK tools, packaged together to allow a consistent toolchain configuration and reproducibility in builds. Also can be helpful in ensuring a consistent build environment for continuous integration.
Read more:   The 26 Best Torrent Sites: Ultimate P2P List for Nov 2023

Dumping the GBA BIOS

  • Software interrupt $1F / MidiKey2Freq, canonical method
  • Cracking the GBA BIOS by endrift
  • Dumping the GBA BIOS, another method by MerryMage

Reverse engineering

  • Reverse Engineering a GameBoy Advance Game – A series of detailed posts and talks about developing a level editor for Klonoa: Empire of Dreams
  • Pokemon Ruby – C programming language annotation of a Pokemon Ruby disassembly

Historical links

  • HEL – GBA C library built on top of HAM (a classic SDK from back in the day)
  • Headspin’s Guide to Compression, Files Systems, Screen Effects and MOD Players for the Gameboy Advance

Related Posts

Ratingperson.com