/rgbds

Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy & Game Boy Color

Primary LanguageCMIT LicenseMIT

RGBDS

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.

This toolchain is maintained on GitHub.

The documentation of this toolchain can be viewed online here, it is generated from the man pages found in this repository.

1. Installing RGBDS

The installation procedure is available online for various platforms. Building from source is possible using make or cmake; follow the link for more detailed instructions.

make
sudo make install
cmake -S . -B build
cmake --build build
cmake --install build

2. RGBDS Folder Organization

The RGBDS source code file structure somewhat resembles the following:

.
├── .github/
│   ├── actions/
│   │   └── ...
│   └── workflows/
│       └── ...
├── contrib/
│   └── ...
├── include/
│   └── ...
├── src/
│   ├── asm/
│   │   └── ...
│   ├── extern/
│   │   └── ...
│   ├── fix/
│   │   └── ...
│   ├── gfx/
│   │   └── ...
│   ├── link/
│   │   └── ...
│   ├── CMakeLists.txt
│   └── ...
├── test/
│   ├── ...
│   └── run-tests.sh
├── CMakeLists.txt
├── Makefile
└── README.rst
  • .github/ - files and scripts related to the integration of the RGBDS codebase with GitHub.
  • contrib/ - scripts and other resources which may be useful to users and developers of RGBDS.
  • include/ - header files for each respective C files in src.
  • src/ - source code and manual pages for RGBDS.
    • Note that the code unique to each RGBDS tool is stored in its respective subdirectory (rgbasm -> src/asm/, for example). src/extern/ contains code imported from external sources.
  • test/ - testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS.

3. History

  • Around 1997, Carsten Sørensen (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.
  • 2018, codebase relicensed under the MIT license.
  • 2020, repository is moved to the gbdev organisation. The rgbds.gbdev.io website serving documentation and downloads is created.