• Stars
    star
    3,916
  • Rank 11,059 (Top 0.3 %)
  • Language
  • License
    Other
  • Created over 8 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of Game Boy development resources such as tools, docs, emulators, related projects and open-source ROMs.

GameboyIcon Awesome Game Boy Development

Join us on Discord Discord Badge

A curated list of awesome Game Boy (Color) Development resources, tools, docs, related projects and open-source ROMs. Inspired by the awesome list thing.

You can find a (way cooler) web version of this list here.

Contents

Introduction

Disambiguation

Game Boy Advance

Game Boy Advance development is covered by another project, the awesome-gbadev list. GBA, however, can run GB/GBC games. It does so in a slightly different way compared to native hardware: this is covered in the Emulator Development section of this list.

Game Boy Color and Super Game Boy

This list is focused on the original Game Boy (GB or DMG, 1989), the Game Boy Color (GBC or CGB) and the Super Game Boy (SGB) are very similar systems, with a few important distinctions, such as:

  • Different hardware specifications;
  • Specific hardware and software features;
  • Specific registers;
  • Specific bugs, quirks and exploitable behaviours.

If you aim to develop your software for SGB or GBC, or you want to know how it runs on the other systems, you may want to take advantage and adapt to these differences, check the Game Boy Color category and look for specific references to GBC/CGB and SGB.

Community

Documentation

Opcodes

  • gb-opcodes - Opcodes table
  • RGBDS opcodes reference - A reference of all instructions, including short descriptions, cycle and byte counts, and explanations of flag modifications.

Game Boy Color

Hardware

  • DMG Schematics - Hardware schematics.
  • The Game Boy Project - Provides a study on the hardware and detailed constructional information for the implementation of three 8-bit bidirectional parallel ports.
  • Related custom hardware - by Gekkio.
  • ESP8266 GB Dev Board - Dev board for Game Boy accessories development, powered by ESP8266.
  • ESP8266 GB Printer - A device that emulates the GB Printer and lets you retrieve images using WiFi.
  • fruttenboel - Page with loads of information on the hardware, custom boards to interface with the console and other related projects.
  • Game Boy hardware database - Data and photos of various types of Game Boy consoles.
  • dmg-schematics - Schematics and annotated overlay for the DMG-CPU B chip, extracted from die photos, made with KiCad. Also contains Electric VLSI library with layouts for some of the cells and memories.

Peripherals

Cartridges

Custom cartridges

Misc

Emulator Development

Testing

Software Development

The Choosing tools for Game Boy development essay provides an overview of the available development tools for Game Boy.

Assemblers

  • RGBDS - Assembler and linker package. Documentation.
  • ASMotor - Assembler engine and development system targeting Game Boy, among other CPUs. Written by the original RGBDS author. Documentation.
  • wla-dx - Yet Another GB-Z80/Z80/... Multi Platform Cross Assembler Package. Documentation.

Compilers

  • GBDK - Maintained and modernized GBDK (Game Boy Development Kit) powered by an updated version of the SDCC toolchain. Provides a C compiler, assembler, linker and a set of libraries.
  • Turbo Rascal Syntax Error - Complete suite (IDE, compiler, programming language, resource editor) intended for developing games/demos for 8 / 16-bit line of computers, including the Game Boy and Game Boy Color.

Experimental/Proof of Concepts

  • RGBDS-Live - In-browser coding environment to try out RGBDS.
  • Wiz - A high-level assembly language for writing homebrew on retro console platforms (Game Boy, NES, Atari 2600, and more).
  • gbforth - A Forth-based Game Boy development kit.
  • gbasm-rs - An opinionated Rust based compiler for Game Boy z80 assembly code.
  • gbasm - A JavaScript based compiler for Game Boy z80 assembly code.
  • tniASM - Macro Assembler.
  • Assembler - Assembler written in Swift.
  • llvm-gbz80 / clang-gbz80 - Clang/LLVM port to the GBZ80 CPU (similar to the deprecated euclio/llvm-gbz80).
  • gbdk-go - A compiler translates Go programs to C code. The output C code is built into GB ROM by GBDK.

Emulators

  • BGB - Powerful emulator and debugger. Provides an accurate hardware emulation.

  • SameBoy - Accurate emulator with a wide range of powerful debugging features.

  • Mooneye GB - Research project and emulator in Rust.

  • mGBA - Modern cross platform GBA emulator which also runs GB/GBC games.

  • Binjgb - 5Kloc emulator that passes most of the tests. *Rewind- feature. Runs in the browser using WebAssembly.

  • Gambatte - Cross-platform and accurate emulator.

  • MetroBoy - A playable, circuit-level simulation of an entire Game Boy.

  • gbe-plus - A recently rewritten emulator that has a large effort in preserving the functions of obscure accessories (such as IR link, Mobile Network GB, Barcode Boy, GB Printer, local and online GB Serial Link Cable, ... )

  • Emulicious - Provides accurate emulation and includes powerful tools such as a profiler and source-level debugging for ASM and C via a VS Code debug adapter.

Complete list of open source emulators

Tools

Engines

  • ZGB - A little engine for creating games for the original Game Boy (expands gbdk, more info here).
  • Retr0 GB - An engine for creating games (expands GBDK).

Development tools

  • GBExtended - C library extending gbdk.
  • gbdk-lib-extension - A small set of sources and tools for the Game Boy Development Kit by Michael Hope.
  • Dot Matrix Game Editor - An IDE for Game Boy programming in a C-like language called GBL, with many other features like tile and map extraction, WLA-DX assembly, and more.
  • mgbdis - Game Boy ROM disassembler with RGBDS compatible output.
  • ROM Header Utility - An online tool to inspect and modify a ROM's header data, including the logo.
  • romusage - Command line tool for estimating usage (free space) of Game Boy ROMs from a .map, .noi or ihx file. Works with GBDK-2020 and RGBDS.
  • awake - Game Boy decompiler.
  • Game Boy Text Tools - Set of tools for text manipulation and translation of Game Boy ROMs written in Node.js.
  • evscript - A scripting language for the Game Boy, useful for enemy AI, dialogue, animations, and coroutines.
  • evunit - A unit testing program for assembly code.
  • opcode_count - Generates statistics on which CPU instructions are run the most often using Python and Emulicious

Graphics utilities

  • Game Boy Tile Data Generator - HTML5 / JS web application that will convert bitmap images to hexadecimal data appropriate for use in tile based graphical applications, specifically GB.
  • Harry Mulder's GB Development - Some sources and home of Game Boy Tile Designer (GBTD) and Game Boy Map Builder (GBMB) tools.
  • GBTiles - Converts .GBR files created with Harry Mulder's Tile Designer (GBTD) and .GBM files created with Harry Mulder's Map Builder (GBMB) to different formats for use with the Game Boy and GBDK.
  • bmp2cgb - Graphics converter for Game Boy Color development providing real time palette adjustments.
  • png2gb - CLI tool to convert image file to game boy .c array.
  • GB-convert - Game Boy tile conversion and map editor tool (converts to assembly).
  • brewtool - A collection of primitive editor/converter tools for making assets used with homebrew ROM development.
  • vtGBte - A minimalistic ncurses tile editor.
  • tpp1 - Definition and specification of a custom GB/GBC memory/hardware mapper, as a functional superset of MBC.
  • libstdgb - A C library of useful Game Boy operations (SDCC).
  • Tilemap GB - GIMP image editor plug-in for importing & exporting GBMB and GBTD tilemaps and tilesets (as bitmap images or .GBM/.GBR files).
  • Tilemap Helper - GIMP image editor plug-in for optimizing tile maps and tile sets.
  • Tilemap Studio - A tilemap editor for Game Boy, Color, Advance, and SNES projects. Written in C++ with FLTK.
  • Superfamiconv - Flexible and composable tile graphics converter supporting Super Nintendo, Game Boy, Game Boy Color, Game Boy Advance, Mega Drive and PC Engine formats.

Hardware and ROM utilities

Music drivers and trackers

  • DevSound - Sound driver embeddable in homebrews which supports pulse width manipulation, arpeggios, and multiple waveforms.
  • Carillon Player - Music Engine.
  • GBT PLAYER - A music player library and converter kit.
  • mmlgb - A MML parser and GBDK sound driver for the Nintendo Game Boy.
  • XPMCK - An MML based music compiler with support for Game Boy & Game Boy Color.
  • GBSoundSystem - A modernized audio driver for GameBoy Tracker (aka the Paragon 5 music player).
  • hUGETracker - A music tracker based on OpenMPT, focused on ease of use, compact output, and embeddability in homebrew games.
  • CBT-FX - A GBDK-2020 sound effect driver compatible with FX-Hammer sound effects.

Programming

Guides, tutorials and tools to develop software for Game Boy using the development toolchains described in the Software Development chapter.

ASM

Sources

Fragments of code, effects, proof of concepts and generally non complete games.

  • dev'rs ASM section - A lot of working demos and sources.
  • EmmaEwert's experiments - A collection of prototype programs, mostly just toying around. Among others, a daylight effect, transparency and a weather effect.
  • DeadCScroll - A detailed tutorial on how to make the screen wobble, among other "raster effects"

Timings

Boilerplates and libraries

Syntax highlighting packages

C

Homebrews

Complete and open source games.

  • Homebrew Hub - A community-led attempt to collect, archive and preserve every unlicensed and homebrew game released for Game Boy. Entries are playable online.

ASM

C

GB Studio

Demos

Reverse Engineering

Game Disassemblies

Game Boy Camera

Retrieving images

Game Boy Printer emulation (e.g. to retrieve images from the camera):

Changing the camera's behavior

Methods to improve and/or manipulate the camera's quality and behavior:

Post processing

Related projects

Directories

Websites

  • devrs.com/gb - Old home of the scene: examples, sources, complete documentation, guides, tutorials and various tools.
  • pdroms.de - Game Boy releases.
  • Handheld Underground - Unlicensed games, blog posts about Game Boy, home of the hhugboy emulator.

About

Contribute

Take a look at Contribution Guidelines.

License

Licensed under GPLv3. See LICENSE for more information.

Acknowledgements

Thanks to every contributor of this project, Jeff Frohwein, Pascal Felber, KOOPa, Pan of Anthrox, GABY, Marat Fayzullin, Paul Robson, BOWSER, neviksti, Martin "nocash" Korth, Nitro2k01, Duo, Chris Antonellis, Michael Hope, Beware, Jonathan “Lord Nightmare” Gevaryahu, Carsten Sorense, Sindre Aamås, Otaku No Zoku, GeeBee.

Sponsors

Special thanks to our friends at DigitalOcean and Incube8 Games, sponsoring the open source activites of our Game Boy Development community.

More Repositories

1

rgbds

Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy & Game Boy Color
C++
1,153
star
2

pandocs

The single, most comprehensive Game Boy technical reference.
Rust
589
star
3

hardware.inc

RGBDS include file for Game Boy hardware definitions
Assembly
112
star
4

gb-asm-tutorial

Learn to create games for the Game Boy using Assembly
Assembly
104
star
5

database

JSON database of every Homebrew Hub entries. Propose here additions, improvements and fixes, every change propagates to Homebrew Hub.
C
80
star
6

homebrewhub

A digital repository of of homebrews, patches, hackroms for old consoles. Provides community submission, tagging and rating features.
Python
44
star
7

rgbds-live

A live Gameboy programming environment in the browser, allowing for realtime assembly programming for the gameboy.
JavaScript
31
star
8

gbdev.github.io

gbdev institutional website: showcases projects and hosts some community content
Assembly
23
star
9

gb-opcodes

SCSS
20
star
10

gbadoc

Community initiated GBA Technical documentation effort
CSS
16
star
11

gbcompo21

An OG gbdev game jam! Create original games, demos or homebrews for the original Game Boy (Color) and compete for glory (and a lot of prizes)!
JavaScript
7
star
12

virens

Homebrew Hub web frontend, in Nuxt 3. Powered by webassembly builds of binjgb and mGBA.
JavaScript
6
star
13

rgbenv

RGBDS version manager
Shell
6
star
14

rgbds-www

RGBDS website, hosting documentation and install instructions. Built with Docusaurus, content from RGBDS man pages.
HTML
6
star
15

highlightjs-rgbasm

A RGBASM language grammar for highlight.js
JavaScript
5
star
16

rgbobj

A Rust program for humans to inspect RGBDS object files
Rust
3
star
17

GBSoundSystem

A system-wide refactor (modernization) of the GameBoy Tracker (aka the Paragon 5) replayer created by Stephane Hockenhull.
Assembly
3
star
18

DeadCScroll

An assembly tutorial for Game Boy showing how the scroll registers can be exploited to create some nice and interesting effects.
Assembly
2
star
19

cameraclub-www

Home page of the Gameboy camera club, showing off some community content and curated zines
HTML
1
star
20

rgbds-www2

Experimental new RGBDS documentation website powered by React/Docusaurus
Roff
1
star
21

snippet-bot

A discord bot archiving code blocks and links to pastebin-like snippets
JavaScript
1
star
22

rgbds-deb

Alright, let's get RGBDS into Debian repositories
C++
1
star