Giter Club home page Giter Club logo

awesome-gbadev's Introduction

Awesome Game Boy Advance development

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

  • 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
    #sdk-seven - sdk-seven 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.

Documentation

Tutorials

Articles

Software Development

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 - Modern runtime and tooling, and libraries for GBA development. Works with meson-gba or standalone.
  • 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.

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
  • gba-link-connection: A set of C++ libraries to interact with the Serial Port (Link Cable, Wireless Adapter, GPIO, SPI)

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.

Emulator Development

Testing

Homebrews

  • 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

Jams

Miscellanea

  • 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.

Dumping the GBA BIOS

Reverse engineering

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

awesome-gbadev's People

Contributors

afska avatar antoniond avatar avivace avatar bloodynora avatar clyybber avatar djedditt avatar endrift avatar evanbowman avatar exelotl avatar felixjones avatar fleroviux avatar gvaliente avatar lunarlambda avatar macabeus avatar pattmax00 avatar pmprog avatar redthing1 avatar skylersaleh avatar stuij avatar thewitheredstriker avatar velipso avatar xproger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-gbadev's Issues

Integrations with gbadev.org

This issue is to track the requested "bridges" and integrations to the gbadev.org feeds into the community chat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.