RGBDS (Rednex Game Boy Development System) is a free assembler/linker package for the Game Boy and Game Boy Color. It consists of:
- rgbasm (assembler)
- rgblink (linker)
- rgbfix (checksum/header fixer)
- rgbgfx (PNG‐to‐Game Boy graphics converter)
This is a fork of the original RGBDS which aims to make the programs more like other UNIX tools.
The documentation of this toolchain can be viewed online here, it is generated from the man pages found in this repository.
1. Installing RGBDS
Windows builds are available in the releases page on GitHub:
.exe files to
C:\Windows\ or similar.
If you require the latest version in development, it should be possible to compile RGBDS with MinGW or Cygwin by following the instructions to build it on UNIX systems.
You can build RGBDS by following the instructions below. However, if you would prefer not to build RGBDS yourself, you may also install it using Homebrew.
To install the latest release, use:
brew install rgbds
To install RGBDS with all of the current changes in development (as seen on the
master branch on GitHub), use:
brew install rgbds --HEAD
1.3 Other UNIX-like systems
No official binaries of RGBDS are distributed for these systems, you must follow the simple instructions below to compile and install it.
2. Building RGBDS from source
RGBDS can be built in UNIX-like systems by following the instructions below.
RGBDS requires yacc, flex, libpng and pkg-config to be installed.
On macOS, install the latter two with Homebrew:
brew install libpng pkg-config
On other Unixes, use the built-in package manager. For example, on Debian or Ubuntu:
sudo apt-get install byacc flex pkg-config libpng-dev
You can test if libpng and pkg-config are installed by running
pkg-config --cflags libpng: if the output is a path, then you're good, and if
it outputs an error then you need to install them via a package manager.
2.2 Build process
To build the programs, run in your terminal:
Then, to install the compiled programs and manual pages, run (with appropriate
privileges, e.g, with
After installation, you can read the manuals with the
man command. E.g.,
man 7 rgbds
There are some variables in the Makefile that can be redefined by the user. The variables described below can affect installation behavior when given on the make command line. For example, to install RGBDS in your home directory instead of systemwide, run the following:
make install PREFIX=$HOME
To do a verbose build, run:
This is the complete list of user-defined variables:
PREFIX: Location where RGBDS will be installed. Defaults to
bindir: Location where the binaries will be installed. Defaults to
mandir: Location where the manpages will be installed. Defaults to
DESTDIR: This is prepended to all paths during the installation. It is mainly used for packaging.
Q: Whether to quiet the build or not. To make the build more verbose, clear this variable. Defaults to
STRIP: Whether to strip the installed binaries of debug symbols or not. Defaults to
BINMODE: Permissions of the installed binaries. Defaults to
MANMODE: Permissions of the installed manpages. Defaults to
Around 1997, Carsten Sorensen (AKA SurfSmurf) writes ASMotor as a general-purpose assembler/linker system for DOS/Win32
Around 1999, Justin Lloyd (AKA Otaku no Zoku) adapts ASMotor to read and produce GBZ80 assembly/machine code, and releases this version as RGBDS.
2009, Vegard Nossum adapts the code to be more UNIX-like and releases this version as rgbds-linux on GitHub.
2010, Anthony J. Bentley forks that repository. The fork becomes the reference implementation of rgbds.
2017, Bentley's repository is moved to a neutral name.