RGBDS
A free assembler/linker package for the Game Boy and Game Boy Color
Get the most out of the Game Boy hardware
Gain complete control over the console; with no middle-man, debugging is made simpler.
Push the Game Boy's limited capabilities to the limits writing native assembly code.
Complete toolchain
RGBDS' four programs cover the whole compilation pipeline into a ready-to-play ROM, from RGBGFX (the image converter) to RGBFIX (the header "fixer").
Each tool can easily be swapped for a custom one, or used stand-alone as part of another process.
Open Source
With a long history dating back to 1997, RGBDS is an open source project supporting a large community of homebrew developers. Join us to get involved, showcase your project, or get help.
The extensive documentation also allows easy integration into any workflow.
Resources
GB Assembly tutorial WIP
This tutorial will guide you from a basic Hello World, to making an Arkanoid clone, and ending with a Shoot-'Em-Up, touching upon everything you need to know to make a Game Boy game.
This guide is still work in progress, only the first lessons are available.
Pan Docs
The definitive Game Boy technical reference. Contains descriptions of all hardware registers, many behaviors (such as rendering and audio), and even pretty diagrams!
Read →hardware.inc
For over 20 years, hardware.inc
has been a staple of essentially all RGBDS projects, providing all sorts of constants to allow easy interaction with Game Boy hardware registers.
rgbds-structs
RGBDS does not (currently) support "structs" (data structures) natively. This macro pack provides that functionality, all in a single file that you can freely INCLUDE
anywhere in your projects.
gb-boilerplate
This simple template project allows getting started on your next GB project more quickly. The provided Makefile allows simply adding new .asm
files in a single folder, and make
builds your ROM!
gb-starter-kit
gb-starter-kit is “gb-boilerplate Plus”: the same build system is included, plus some basic code such as a LCD-safe copy, a crash handler, and a data compressor + decompressor.
Get started →