A curated list of awesome Game Boy (Color) Development resources, tools, docs, related projects and open-source ROMs. Inspired by the awesome list thing.
Although this documentation is focused on the original (1989) Game Boy (DMG), the Game Boy Color (GBC) and Super Game Boy (SGB) are very similar systems, with few important distinctions, such as:
Different hardware specifications
Specific hardware and software features
Specific registers
Specific bugs and exploitable behaviours
If you aim to develop your software for SGB or GBC, or you want to know how it runs on the others system, you may want to take advantage and adapt to these differences, check for specific references to GBC/CGB and SGB in the documentation section.
gbdev.gg8.se - This is basically the home of the gbdev scene. The wiki has a lot of articles from previous sites, tutorials and other documents about a lot of topics.
devrs.com/gb - Jeff Frohwein’s page, this the main reference for everything. Almost everything is archived here: code examples and working programs(ASM and C), complete documentation and various tools.
Documentation
Game Boy Programming Manual - Official Game Boy programming & hardware manual by Nintendo. Pretty much everything in the console is covered and explained in this manual. This should be your first and main resource to start understanding what game boy is.
Pan Docs - The single most comprehensive technical reference to Game Boy that is available to the public, wikified and updated. Also archived on BGB's website.
Assembly Language Programming Course - Machine and assembly language programming concepts that illustrate basic principles and techniques. Application through study of the Z80 chip and Game Boy programming assignments (Center for Research in Arts, Technology, Education, and Learning CRATEL at Withicha State University).
The Game Boy Printer - An in-depth technical document about the printer hardware, the communication protocol and the usual routine that games used for implementing the print feature.
The Game Boy Developer's Kit (GBDK) - A set of tools that enable to develop programs for the Nintendo Game Boy system in C. Includes a set of libraries for the most common requirements and generates image files for use with a real Game Boy.
gbdk-osx - Patched GBDK 2.96a for the latest compilers on OS X.
Emulators
BGB - Powerful Game Boy emulator and debugger. Provides an accurate hardware emulation.
Gambatte - Open-source, cross-platform and accurate emulator for Game Boy and Game Boy Color.
Tools
ZGB - A little engine for creating games for the original Game Boy (expands gbdk, more info here).
DevSound - Sound driver embeddable in homebrews which supports pulse width manipulation, arpeggios, and multiple waveforms.
Carillon Player - Music Engine for Game Boy & Game Boy Color.
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.
rgbds_textmate - Some syntax highlighting rules for coding in Z80 assembly as a Textmate language plugin. Works in Sublime Text 2 and 3. The syntax is particularly designed for rgbds and Game Boy-specific Z80 instructions.
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.
brewtool - A collection of primitive editor/converter tools for making assets used with homebrew ROM development.
Programming Tutorials
ASM
ASMSchool - A set of lessons by Duo about coding in Assembly for GB/GBC and disassembling.
Assembly tutorial by David Pello - Good document to actually learn to produce working asm code for gb. Brief explanations of many important topics. Many examples with commented source code. An english version is available here.
This folder is an historical archive of old articles, FAQs and in general text documents about Game Boy development. These may be wrong or obsolete - they are archived for historical reasons.
ArduinoBoy - Serial communication (MIDI) from an Arduino to the Game Boy for music applications such as LittleSoundDJ, Nanoloop, and mGB.
papiGB - Game Boy Classic fully functional FPGA implementation from scratch.
fpgaboy - Implementation Nintendo's Game Boy console on an FPGA.
Piglet - A LUA-driven AI that plays classic Game Boy color games using experimentation. In active development.
The Game Boy Project - Provides a study on the hardware and detailed constructional information for the realisation of three 8-bit bidirectional parallel ports.
gbdk-n - Aims to update the gbdk libraries to be compatible with new versions of SDCC and provide helpers for building roms.
Wiz - A high-level assembly language for writing homebrew on retro console platforms (Game Boy, NES, Atari 2600, and more).
Nintendo's fake logos - Every cartridge has to show the authentic logo to be considered valid and be run, but obviously some companies managed to exploit the check system.
GBDK Developers - Active blog about everything related to the scene. Including features, insights and interviews.
Ostrich - A Game Boy Sound System player written in Swift.
mGB - A Gameboy cartridge program that enables the Gameboy to act as a full MIDI supported sound module.
GBVisualizer - Demonstrating the use of two undocumented Gameboy Color registers, nicknamed PCM12 (FF76) and PCM34 (FF77), which can be used to read the current PCM amplitude of the 4 APU channels.
GBVideoPlayer - A technical demo demonstrating how the Gameboy LCD controller can be hacked to make a Gameboy Color play a full motion video in color, together with music.
ArduinoGameBoy - Arduino based Game Boy cartridge reader and writer.
gb-save-states - Patches to add save state support to Game Boy games when playing on the original hardware.
The Game Boy Archive - A library of Game Boy related software, hardware and literature. Aimed to mirror and preserve old and fragmented contributions from the last three decades.
gbcpu - A CPU and peripherals implementing the Gameboy (TM) instruction set and functionality.
Licensed under GPLv3.
See LICENSE for more information.
Special Thanks
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.