{"id":26072107,"url":"https://github.com/gbdev/awesome-gbadev","last_synced_at":"2025-03-09T00:05:21.418Z","repository":{"id":37606975,"uuid":"161929146","full_name":"gbadev-org/awesome-gbadev","owner":"gbadev-org","description":"A curated list of Game Boy Advance development resources","archived":false,"fork":false,"pushed_at":"2024-09-29T13:20:49.000Z","size":114,"stargazers_count":1030,"open_issues_count":4,"forks_count":61,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-10-29T15:35:05.918Z","etag":null,"topics":["awesome-list","emulator-development","game-boy-advance","gameboy-advance","gba","gba-emulator","resource-list","resources"],"latest_commit_sha":null,"homepage":"https://gbadev.net","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gbadev-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"gbadev-org","open_collective":"gbadev"}},"created_at":"2018-12-15T17:38:27.000Z","updated_at":"2024-10-29T00:40:52.000Z","dependencies_parsed_at":"2023-12-30T22:30:53.921Z","dependency_job_id":"aa088552-165b-4c42-ac20-8ad5722f6390","html_url":"https://github.com/gbadev-org/awesome-gbadev","commit_stats":{"total_commits":68,"total_committers":27,"mean_commits":"2.5185185185185186","dds":0.7058823529411764,"last_synced_commit":"0b00d3088a6f74b4b76ada395c1040ec23f2c797"},"previous_names":["gbdev/awesome-gbadev"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbadev-org%2Fawesome-gbadev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbadev-org%2Fawesome-gbadev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbadev-org%2Fawesome-gbadev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbadev-org%2Fawesome-gbadev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbadev-org","download_url":"https://codeload.github.com/gbadev-org/awesome-gbadev/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242623571,"owners_count":20159706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome-list","emulator-development","game-boy-advance","gameboy-advance","gba","gba-emulator","resource-list","resources"],"created_at":"2025-03-09T00:01:42.790Z","updated_at":"2025-03-09T00:05:21.382Z","avatar_url":"https://github.com/gbadev-org.png","language":null,"readme":"# Awesome Game Boy Advance development\n\nA curated list of development resources for Game Boy Advance.\n\nContribute adding resources or providing feedback through Pull Requests, Issues or joining us on [Discord](https://discord.io/gbadev). You can find a web version of this list [here](https://gbadev.net).\n\n## Table of Contents\n\n- [Introduction](#introduction)\n  * [Community](#community)\n- [Documentation](#documentation)\n  * [Tutorials](#tutorials)\n  * [Articles](#articles)\n- [Software Development](#software-development)\n  * [Compilers](#compilers)\n  * [Toolkits](#toolkits)\n  * [Libraries](#libraries)\n  * [Emulators](#emulators)\n- [Emulator Development](#emulator-development)\n  * [Testing](#testing)\n- [Homebrews](#homebrews)\n  * [Jams](#jams)\n- [Miscellanea](#miscellanea)\n  * [Dumping the GBA BIOS](#dumping-the-gba-bios)\n  * [Reverse engineering](#reverse-engineering)\n  * [Historical links](#historical-links)\n\n---\n\n# Introduction\n\n- [Technical introduction to the GBA](https://copetti.org/projects/consoles/game-boy-advance)\n\n## Community\n\n- [GBAdev Forum](https://forum.gbadev.net) - Our new hub for announcements and long-form discussion. It's a good place to ask questions and share progress on your projects.\n- [GBAdev Discord / IRC](https://gbadev.net/chat.html) - This is where everyone hangs out to chat nowadays. Come say hi!\n\n### Other places\n- [GBAdev.org](https://gbadev.org) - The longstanding homepage of the scene. Still updated with news and releases (but the forums have been broken for a while).\n- [GBAtemp](https://gbatemp.net/categories/nintendo-gba-discussions.32/) - 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.\n\n# Documentation\n\n- [GBATEK](https://problemkaputt.de/gbatek.htm) - Programming specs for the GBA and NDS hardware\n- [CowBite Virtual Hardware Specifications](https://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm) - Older GBA hardware documentation\n- [The Audio Advance](http://belogic.com/gba/) - Audio hardware documentation and basic test ROMs\n\n## Tutorials\n\n- [Tonc](https://gbadev.net/tonc/) - The new, revamped version of the GBA programming tutorial. The original version is [here](https://www.coranac.com/tonc/text/toc.htm).\n- [Compile C++ for GBA in under an hour](https://www.youtube.com/watch?v=EMeie_gSgDU) - Cinemint's video for getting started with C++/Butano\n- [Sound on the Gameboy Advance](https://stuij.github.io/deku-sound-tutorial/) - How to write your own sound mixer / MOD music player\n- [Larold's Retro Gameyard - Game Boy Advance Tutorials](https://laroldsretrogameyard.com/category/tutorials/gba/) - Learn how to make GBA games using the Butano Game Engine. Each part of the engine will have own individual tutorial with example source code.\n\n## Articles\n\n- [Gameboy Advance Resource Management](https://www.gamedeveloper.com/programming/gameboy-advance-resource-management) - Allocation techniques for the GBA's various memory regions\n- [Managing Sprite Cel VRAM on the Game Boy Advance](https://pineight.com/gba/managing-sprite-vram.txt) - Analysis of the VRAM streaming approach for animated sprites\n- [Using Beepbox for GBA Music Composition](https://rentry.org/beepbox-gba-music)\n\n\n\n\n# Software Development\n\n## Compilers\n\n- [devkitARM](https://devkitpro.org) - C/C++ cross-compiler toolchain, which includes libgba, libtonc, maxmod, and various tools and example projects.\n- [gba-toolchain](https://github.com/felixjones/gba-toolchain) - GNU Arm Embedded Toolchain based alternative to devkitARM.\n- [gvasm](https://github.com/velipso/gvasm) - Stand-alone assembler and disassembler (WIP) designed specifically for GBA homebrew\n- [TinyGo](https://github.com/tinygo-org/tinygo) - An alternative Go compiler for embedded systems, that supports GBA compilation\n\n## Toolkits\n\n- [rust-console](https://github.com/rust-console/gba) - GBA programming in Rust, plus tutorial.\n- [natu](https://github.com/exelotl/natu) - GBA programming in Nim (provides wrapper around libtonc, maxmod and more).\n- [gba-modern](https://github.com/JoaoBaptMG/gba-modern) - Write GBA games using modern C++.\n- [ZigGBA](https://github.com/wendigojaeger/ZigGBA) - WIP SDK for creating GBA games using Zig (Inspired by Tonc).\n- [Butano](https://github.com/GValiente/butano) - Modern C++ high level engine for the GBA.\n- [BPCore Engine](https://github.com/evanbowman/BPCore-Engine) - Create GBA applications with the Lua programming language\n- [GBA Dlang](https://github.com/redthing1/gba_dlang) - WIP SDK for GBA development using D, using LLVM toolchain. provides fully functional TONC, GBFS, Maxmod.\n- [dusk](https://github.com/redthing1/dusk) - Simple, lightweight, intuitive framework for GBA game development\n- [gbsenpai](https://github.com/asiekierka/gbsenpai) - GB Studio player GBA port with some enhancements.\n- [meson-gba](https://github.com/LunarLambda/meson-gba) - Meson-based GBA toolkit with support for many different libraries and tools.\n- [sdk-seven](https://github.com/sdk-seven) - Modern runtime and tooling, and libraries for GBA development. Works with meson-gba or standalone.\n- [rath](https://github.com/stuij/rath) - Forth programming environment for the Game Boy Advance\n- [ada-gba-dev](https://github.com/98devin/ada-gba-dev) - A build system, libraries, and tools for producing programs for the Game Boy Advance using the Ada programming language.\n\n## Libraries\n\n- [agbabi](https://github.com/felixjones/agbabi) - Drop-in application binary interface library (context switching, division, irq, memcpy, sine).\n- [gba-hpp](https://github.com/felixjones/gba-hpp) - C++20 header-only library for GBA development.\n- [HeartLib](https://github.com/Sterophonick/HeartLib) - Comprehensive C library inspired by the classic HAMLib.\n- [libseven](https://github.com/sdk-seven/libseven) - Modern, from-scratch replacement for libgba and libtonc.\n- [GBAdv](https://github.com/sverx/GBAdv) - High level utilities on top of libgba.\n- [Maxmod](https://maxmod.devkitpro.org) - Music and sound library (supports .mod, .xm, .s3m, .it)\n- [Apex Audio System](https://github.com/stuij/apex-audio-system) - Music and sound library (supports .mod only, but _very_ good performance)\n- [Krawall](https://github.com/sebknzl/krawall) - Music and sound library (supports .xm, .s3m)\n- [Pimpmobile](https://github.com/kusma/pimpmobile) - Music library (supports .mod, .xm)\n- [GBT Player](https://github.com/AntonioND/gbt-player) - Music library that uses the DMG sound channels (close to 0% CPU usage).\n- [posprintf](http://www.danposluns.com/gbadev/posprintf/index.html) - An `sprintf` routine written in Thumb assembler.\n- [GBFS](https://pineight.com/gba/#gbfs) - Practical filesystem\n- [agb](https://github.com/agbrs/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.\n- [gbaLib](https://github.com/MnlPhlp/gbaLib) - Library for programming the GBA with TinyGo\n- [gba-link-connection](https://github.com/afska/gba-link-connection): A set of C++ libraries to interact with the Serial Port (Link Cable, Wireless Adapter, GPIO, SPI)\n\n## Emulators\n\n- [mGBA](https://mgba.io) - Actively developed GBA emulator. Runs on a bunch of platforms. Text debugger through GDB stub.\n- [No$gba](https://problemkaputt.de/gba.htm) - Venerable GBA emulator. Windows only, but runs well under Wine. Not very actively maintained but still gets updates now and then. Sports graphical debugger.\n- [NanoBoyAdvance](https://github.com/nba-emu/NanoBoyAdvance) - GBA emulator with high accuracy, especially in timing and CPU emulation. Does not have debugging features.\n- [Mesen](https://mesen.ca/) - Multi-system emulator with high GBA accuracy. It provides great built-in GUI tools such as a debugger, a profiler and an event viewer.\n- [SkyEmu](https://github.com/skylersaleh/SkyEmu) - GB/GBA/NDS Emulator with built in debuggers, REST API for scripting, and high accuracy. \n- [MiSTer FPGA implementation](https://github.com/MiSTer-devel/GBA_MiSTer) - Needs [MiSTer](https://github.com/MiSTer-devel/Main_MiSTer/wiki) setup to run.\n\n# Emulator Development\n\n## Testing\n\n- [mGBA test suite](https://github.com/mgba-emu/suite)\n- [GBA Suite](https://github.com/jsmolka/gba-suite)\n- [240p-test-mini](https://github.com/pinobatch/240p-test-mini) - video signal tests\n- [NBA hardware tests](https://github.com/nba-emu/hw-test)\n\n# Homebrews\n\n- [Goodboy Advance](https://github.com/exelotl/goodboy-advance) - Made in 2018, and has a nice bit of information on how it's made.\n- [Celeste Classic](https://github.com/JeffRuLz/Celeste-Classic-GBA) - 2019 port of Pico8 version of Celeste.\n- [GBADoom](https://github.com/doomhack/GBADoom) - 2019/2020 GBA port of prBoom version of Doom.\n- [BlindJump](https://github.com/evanbowman/blind-jump-portable) - Adventure game, developed in 2020. Implementation of link-cable multiplayer, fully digital audio.\n- [Tigermoth](https://github.com/pmprog/TigermothGBA) - Bullet hell game, developed for the GBAJam 2021\n- [Duster](https://github.com/redthing1/duster) - A sleek strategy board game for the gba \n- [OpenLara](https://github.com/XProger/OpenLara) - Classic Tomb Raider open-source engine\n\n# Jams\n\n- [GBA Jam 2021](https://itch.io/jam/gbajam21/entries)\n- [GBA Winter Jam '21](https://itch.io/jam/gba-winter-jam-2021/entries)\n- [GBA Jam 2022](https://itch.io/jam/gbajam22/entries)\n- [GBA Winter Jam '23](https://itch.io/jam/gba-winter-jam-23)\n- [GBA Microjam '23](https://gbadev.itch.io/gba-microjam-23)\n- [GBA Jam 2024](https://itch.io/jam/gbajam24/entries)\n\n# Miscellanea\n\n- [gba_bios](https://github.com/PikalaxALT/gba_bios) - WIP disassembly of the Game Boy Advance BIOS\n- [GBA bare metal code](https://github.com/PeterLemon/GBA) - Various experiments by Krom, such as video playback and 3D, written in ARM Assembly\n- [dkarm_gba_docker](https://github.com/redthing1/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.\n- [Usenti](https://github.com/gb-archive/usenti) - Simple bitmap editor for paletted images aimed at GBA development.\n- [RGB55 colour picker](https://orangegb.com/BGR555/) - Tool for picking colours in the BGR555 colour format the GBA uses. \n\n## Dumping the GBA BIOS\n\n- [Software interrupt $1F / MidiKey2Freq](https://gist.github.com/modwizcode/b4afc78ea74fb453be3bcaf3d3bc8adc), canonical method\n- [Cracking the GBA BIOS](https://mgba.io/2017/06/30/cracking-gba-bios/) by endrift\n- [Dumping the GBA BIOS](https://gist.github.com/MerryMage/797c523724e2dc02ada86a1cfadea3ee), another method by MerryMage\n\n## Reverse engineering\n\n- [Reverse Engineering a GameBoy Advance Game](https://medium.com/@bruno.macabeus/reverse-engineering-a-gameboy-advance-game-introduction-ec185bd8e02) - A series of detailed posts and talks about developing a [level editor](https://github.com/macabeus/klo-gba.js) for *Klonoa: Empire of Dreams*\n- [Pokemon Ruby](https://github.com/pret/pokeruby) - C programming language annotation of a Pokemon Ruby disassembly\n\n## Historical links\n- [HEL](http://www.console-dev.de/project/hel-library-for-gba/) - GBA C library built on top of HAM (a classic SDK from back in the day)\n- [Headspin's Guide](https://web.archive.org/web/20230130121359/http://members.iinet.net.au/~freeaxs/gbacomp/) to Compression, Files Systems, Screen Effects and MOD Players for the Gameboy Advance\n","funding_links":["https://github.com/sponsors/gbadev-org","https://opencollective.com/gbadev"],"categories":["Other Lists","Introduction","介绍"],"sub_categories":["Julia Lists","[终极GameBoy谈](https://media.ccc.de/v/33c3-8029-the_ultimate_game_boy_talk)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbdev%2Fawesome-gbadev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbdev%2Fawesome-gbadev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbdev%2Fawesome-gbadev/lists"}