Files
awesome-awesomeness/html/gbdev.html
2025-07-18 22:22:32 +02:00

1265 lines
59 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="gameboyicon-awesome-game-boy-development"><img
src="http://i.imgur.com/ROUq7NT.gif" alt="GameboyIcon" /> Awesome Game
Boy Development</h1>
<h4 id="join-us-on-discord-discord-badge"><a
href="https://gbdev.io/chat.html">Join us on Discord</a> <a
href="https://discord.gg/tKGMPNr"><img
src="https://img.shields.io/badge/dynamic/json.svg?label=chat&amp;colorB=green&amp;suffix=%20online&amp;query=presence_count&amp;uri=https://discordapp.com/api/guilds/303217943234215948/widget.json"
alt="Discord Badge" /></a></h4>
<p>A curated list of awesome Game Boy (Color) Development resources,
tools, docs, related projects and open-source ROMs. Inspired by the <a
href="https://github.com/sindresorhus/awesome">awesome</a> list
thing.</p>
<p>You can find a (way cooler) web version of this list <a
href="https://gbdev.github.io/resources">here</a>.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#introduction">Introduction</a>
<ul>
<li><a href="#disambiguation">Disambiguation</a></li>
</ul></li>
<li><a href="#community">Community</a></li>
<li><a href="#documentation">Documentation</a>
<ul>
<li><a href="#misc">Misc</a></li>
<li><a href="#opcodes">Opcodes</a></li>
<li><a href="#game-boy-color">Game Boy Color</a></li>
<li><a href="#hardware">Hardware</a></li>
<li><a href="#peripherals">Peripherals</a></li>
<li><a href="#cartridges">Cartridges</a></li>
</ul></li>
<li><a href="#emulator-development">Emulator Development</a>
<ul>
<li><a href="#testing">Testing</a></li>
</ul></li>
<li><a href="#software-development">Software Development</a>
<ul>
<li><a href="#assemblers">Assemblers</a></li>
<li><a href="#compilers">Compilers</a>
<ul>
<li><a href="#experimentalproof-of-concepts">Experimental/Proof of
Concepts</a></li>
</ul></li>
<li><a href="#emulators">Emulators</a></li>
<li><a href="#tools">Tools</a>
<ul>
<li><a href="#engines">Engines</a></li>
<li><a href="#development-tools">Development tools</a></li>
<li><a href="#graphics-utilities">Graphics utilities</a></li>
<li><a href="#hardware-and-rom-utilities">Hardware and ROM
utilities</a></li>
<li><a href="#music-drivers-and-trackers">Music drivers and
trackers</a></li>
</ul></li>
</ul></li>
<li><a href="#programming">Programming</a>
<ul>
<li><a href="#asm">ASM</a>
<ul>
<li><a href="#sources">Sources</a></li>
<li><a href="#timings">Timings</a></li>
<li><a href="#boilerplates">Boilerplates</a></li>
<li><a href="#syntax-highlighting-packages">Syntax highlighting
packages</a></li>
</ul></li>
<li><a href="#c">C</a></li>
</ul></li>
<li><a href="#homebrews">Homebrews</a>
<ul>
<li><a href="#asm-1">ASM</a></li>
<li><a href="#c-1">C</a></li>
<li><a href="#gb-studio">GB Studio</a></li>
<li><a href="#demos">Demos</a></li>
</ul></li>
<li><a href="#reverse-engineering">Reverse Engineering</a>
<ul>
<li><a href="#game-disassemblies">Game Disassemblies</a></li>
</ul></li>
<li><a href="#game-boy-camera">Game Boy Camera</a>
<ul>
<li><a href="#retrieving-images">Retrieving Images</a></li>
<li><a href="#changing-the-cameras-behavior">Changing the cameras
behavior</a></li>
<li><a href="#post-processing">Post-processing</a></li>
</ul></li>
<li><a href="#related-projects">Related projects</a>
<ul>
<li><a href="#directories">Directories</a></li>
<li><a href="#websites">Websites</a></li>
</ul></li>
<li><a href="#about">About</a>
<ul>
<li><a href="#contribute">Contribute</a></li>
<li><a href="#license">License</a></li>
<li><a href="#acknowledgements">Acknowledgements</a></li>
<li><a href="#sponsors">Sponsors</a></li>
</ul></li>
</ul>
<h2 id="introduction">Introduction</h2>
<ul>
<li><a
href="https://www.youtube.com/playlist?list=PLu3xpmdUP-GRDp8tknpXC_Y4RUQtMMqEu">The
Game Boy, a hardware autopsy</a></li>
<li><a
href="https://media.ccc.de/v/33c3-8029-the_ultimate_game_boy_talk">The
Ultimate Game Boy Talk</a></li>
</ul>
<blockquote>
<h3 id="disambiguation">Disambiguation</h3>
<h4 id="game-boy-advance">Game Boy Advance</h4>
<p>Game Boy Advance development is covered by another project, the <a
href="https://github.com/gbdev/awesome-gbadev">awesome-gbadev</a> list.
GBA, however, <em>can run</em> 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.</p>
<h4 id="game-boy-color-and-super-game-boy">Game Boy Color and Super Game
Boy</h4>
<p>This list is focused on the original <em>Game Boy</em> (GB or DMG,
1989), the <em>Game Boy Color</em> (GBC or CGB) and the <em>Super Game
Boy</em> (SGB) are very similar systems, with a few important
distinctions, such as:</p>
<ul>
<li>Different hardware specifications;</li>
<li>Specific hardware and software features;</li>
<li>Specific registers;</li>
<li>Specific bugs, quirks and exploitable behaviours.</li>
</ul>
<p>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 <a href="#game-boy-color">Game
Boy Color</a> category and look for specific references to GBC/CGB and
SGB.</p>
</blockquote>
<h2 id="community">Community</h2>
<ul>
<li><a href="https://gbdev.io/chat">Chat channels</a></li>
<li><a href="https://gbdev.gg8.se/forums/">Forum</a></li>
</ul>
<h2 id="documentation">Documentation</h2>
<ul>
<li><a href="https://gbdev.github.io/pandocs/"><strong>Pan
Docs</strong></a> - The single, most comprehensive technical reference
to Game Boy available to the public. Corrected, updated and maintained
by the community.</li>
<li><a
href="https://github.com/AntonioND/giibiiadvance/blob/master/docs/TCAGBD.pdf">The
Cycle-Accurate Game Boy Docs</a> - A precise documentation by AntonioND
to make a cycle-accurate Game Boy emulator.</li>
<li><a href="https://gekkio.fi/files/gb-docs/gbctr.pdf">Complete
Technical Reference</a> - by Gekkio.</li>
<li><a href="https://www.copetti.org/writings/consoles/game-boy/">Game
Boy Architecture: A Practical Analysis</a> - by Rodrigo Copetti.</li>
<li><a
href="http://www.cs.columbia.edu/~sedwards/classes/2019/4840-spring/reports/GameBoy.pdf">Game
Boy Project Report</a> - Report of an hardware <a
href="https://github.com/kitsuneh/SVGameBoy">emulator</a> (on a Terasic
DE1-SoC Board) developed as final project for the CSEE4840 Embedded
Systems Design course at Columbia University.</li>
</ul>
<h4 id="opcodes">Opcodes</h4>
<ul>
<li><a
href="https://gbdev.github.io/gb-opcodes/optables/">gb-opcodes</a> -
Opcodes table</li>
<li><a href="https://rgbds.gbdev.io/docs/gbz80.7">RGBDS opcodes
reference</a> - A reference of all instructions, including short
descriptions, cycle and byte counts, and explanations of flag
modifications.</li>
</ul>
<h3 id="game-boy-color">Game Boy Color</h3>
<ul>
<li><a href="https://tcrf.net/Game_Boy_Color_Bootstrap_ROM">Bootstrap
ROM</a></li>
<li><a href="https://tcrf.net/Notes:Game_Boy_Color_Bootstrap_ROM">Unused
Palettes</a></li>
<li><a
href="https://forums.nesdev.com/viewtopic.php?p=114388&amp;sid=c3d4ce08cfd9d9c834958d4f148750c3#p114388">Colorization
palettes in the BIOS</a></li>
<li><a href="https://gist.github.com/drhelius/6063265">Boot ROM
Disassembly</a></li>
<li><a href="https://romhack.github.io/doc/gbcHiColour/">GBC Hicolour
notes</a> - A technical note regarding Hicolour mode trick for Game Boy
Color and its realization in the GBC game “Crystalis”.</li>
</ul>
<h3 id="hardware">Hardware</h3>
<ul>
<li><a href="http://gbdev.gg8.se/wiki/articles/DMG_Schematics">DMG
Schematics</a> - Hardware schematics.</li>
<li><a href="http://marc.rawer.de/Gameboy/Docs/GBProject.pdf">The Game
Boy Project</a> - Provides a study on the hardware and detailed
constructional information for the implementation of three 8-bit
bidirectional parallel ports.</li>
<li><a href="https://github.com/Gekkio/gb-hardware">Related custom
hardware</a> - by Gekkio.</li>
<li><a
href="https://github.com/applefreak/esp8266-gameboy-dev-board">ESP8266
GB Dev Board</a> - Dev board for Game Boy accessories development,
powered by ESP8266.</li>
<li><a
href="https://github.com/applefreak/esp8266-gameboy-printer">ESP8266 GB
Printer</a> - A device that emulates the GB Printer and lets you
retrieve images using WiFi.</li>
<li><a
href="https://web.archive.org/web/20220628023315/https://verhoeven272.nl/fruttenboel/Gameboy/index.html">fruttenboel</a>
- Page with loads of information on the hardware, custom boards to
interface with the console and other related projects.</li>
<li><a href="https://gbhwdb.gekkio.fi/">Game Boy hardware database</a> -
Data and photos of various types of Game Boy consoles.</li>
<li><a
href="https://github.com/msinger/dmg-schematics">dmg-schematics</a> -
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.</li>
</ul>
<h3 id="peripherals">Peripherals</h3>
<ul>
<li><a href="https://shonumi.github.io/dandocs.html">Dan Docs</a> -
Obscure Game Boy hardware documentation.</li>
<li><a href="https://shonumi.github.io/articles.html">Edge of
Emulation</a>, a series of articles about emulating and investigating
Game Boy accessories. Also available as <a
href="https://github.com/shonumi/gbe-plus/tree/master/src/docs/technical">technical
documents</a> in the GBE- emulator documentation.
<ul>
<li><a href="https://shonumi.github.io/articles/art14.html">Mobile
Adapter GB</a> - Internet connectivity and DLC on the Game Boy
Color.</li>
<li><a href="https://shonumi.github.io/articles/art2.html">The Game Boy
Printer</a></li>
<li><a href="https://shonumi.github.io/articles/art13.html">Pocket
Sonar</a> - A blue cart with built-in sonar hardware.</li>
<li><a href="https://shonumi.github.io/articles/art8.html">Zok Zok
Heroes</a> - Zok Zok Heroes Full Changer, a motion-activated
accessory.</li>
<li><a href="https://shonumi.github.io/articles/art11.html">Infrared
Madness</a> - Infrared communication on the Game Boy Color.</li>
<li><a href="https://shonumi.github.io/articles/art9.html">Game Boy
4-Player Adapter</a> - DMG-07.</li>
<li><a href="https://shonumi.github.io/articles/art7.html">Barcode
Boy</a> - The first Game Boy card-scanner.</li>
<li><a href="https://shonumi.github.io/articles/art6.html">Barcode
Taisen Bardigun</a> - A late 90s DMG-GBC barcode reader.</li>
</ul></li>
<li><a
href="https://raw.githubusercontent.com/shonumi/gbe-plus/master/src/docs/technical/DMG_07.txt">DMG-07
Technical Documentation</a></li>
<li><a href="https://github.com/AntonioND/gbcam-rev-engineer">Game Boy
Camera RE</a> - Documentation about GB Camera and tools used to reverse
engineer it by using Arduino.</li>
<li><a
href="http://www.pinchofintelligence.com/photorealistic-neural-network-gameboy/">Creating
photo realistic images with neural networks and a Gameboy
Camera</a></li>
<li><a href="https://shonumi.github.io/articles/art2.html">The Game Boy
Printer</a> - An in-depth technical document about the printer hardware,
the communication protocol and the usual routine that games used for
implementing the print feature.</li>
<li><a href="https://www.youtube.com/watch?v=43FfJvd-YP4">Ben Heck
Reverse Engineers Game Boy Printer</a> (Errata: the used thermal paper
is expired, 4 colors are actually printable).</li>
<li><a
href="https://github.com/mofosyne/arduino-gameboy-printer-emulator">Arduino
Game Boy Printer Emulator</a> - Emulating a Game Boy Printer via the
Game Boy Link cable with an Arduino.</li>
<li><a
href="https://bulbapedia.bulbagarden.net/wiki/Mobile_Game_Boy_Adapter">Mobile
Game Boy Adapter</a></li>
<li><a
href="http://nectaris.tg-16.com/GB-KISS-LINK-FAQ-hudson-gameboy-nectaris.html">GB
KISS LINK MODEM</a></li>
</ul>
<h3 id="cartridges">Cartridges</h3>
<ul>
<li><a href="https://bbbbbr.github.io/GameBoy-Flash-Carts/">GB Flash
Cartridges for Sale</a> - A List of available, ready-made Game Boy Flash
Cartridges.</li>
<li><a
href="https://github.com/AntonioND/giibiiadvance/tree/master/docs">AntonioNDs
docs</a> - Corrected schematics and infos on cartridge header data.</li>
<li><a
href="http://gekkio.fi/blog/2015-02-14-mooneye-gb-gameboy-cartridge-types.html">Gekkios
Game Boy cartridge types</a> - An overview on existing cartridge
types.</li>
<li>Gekkios cartridge analysis:
<ul>
<li><a
href="http://gekkio.fi/blog/2015-05-18-mooneye-gb-cartridge-analysis-dmg-bean-02.html">DMG-BEAN-02</a>;</li>
<li><a
href="http://gekkio.fi/blog/2015-05-17-mooneye-gb-cartridge-analysis-fortress-of-fear.html">MBC1</a>;</li>
<li><a
href="http://gekkio.fi/blog/2015-02-28-mooneye-gb-cartridge-analysis-tetris.html">no
MBC</a>.</li>
</ul></li>
<li>Pinout, registers descriptions and VHDL code of some cartridge types
on Tauwassers wiki:
<ul>
<li><a href="https://wiki.tauwasser.eu/view/MBC1">MBC1</a></li>
<li><a href="https://wiki.tauwasser.eu/view/MBC2">MBC2</a></li>
<li><a href="https://wiki.tauwasser.eu/view/MMM01">MMM01</a></li>
</ul></li>
<li><a href="http://www.devrs.com/gb/files/gb.html">Game Boy Cartridges
Schematics</a> - Schematics for MBC2 and MBC3 types.</li>
<li><a href="https://imgur.com/a/D5bpC">Cartridges PCB photos</a></li>
<li><a href="http://www.devrs.com/gb/files/mbc1.gif">MBC1+RAM+Battery
cartridge Schematic</a> - First schematics by Jeff Frohwein.</li>
<li><a href="http://fms.komkon.org/GameBoy/Tech/Carts.html">MBC1 and
MBC2 cartridges circuits</a> - and explanation on how these MBC bank
switch and control RAM.</li>
<li><a href="CartridgeList.csv">GB Rom List</a> - Navigable table of
every game released with details on their cartridges.</li>
<li><a
href="http://gekkio.fi/blog/2016-03-19-game-boy-cartridge-pcb-photos.html">Game
Boy cartridge PCB photos</a></li>
</ul>
<h4 id="custom-cartridges">Custom cartridges</h4>
<ul>
<li><a
href="https://dhole.github.io/post/gameboy_cartridge_emu_1/">Emulating a
GameBoy Cartridge</a> - Emulating the functionality of a Game Boy
cartridge with the development board STM32F4.</li>
<li><a href="http://www.happydaze.se/wolf/">Wolf</a> - Game Boy
cartridge with co-processor.</li>
<li><a
href="https://github.com/dwaq/Homebrew-Gameboy-Cartridge">Homebrew-Gameboy-Cartridge</a>
- Eagle library, schematic, and board files for a cartridge PCB using an
Atmel AT49F040 as ROM.</li>
<li><a href="https://github.com/Xyl2k/Gameboy-Color-Cartridge">Homebrew
Gameboy Color Cartridge</a> - Board layout for an EEPROM powered
cartridge.</li>
<li><a href="https://github.com/zephray/NekoCart-GB">Nekocart</a> -
Open-source flash cartridge using an Xilinx CPLD as MBC5 (<a
href="https://hackaday.io/project/41160-nekocart-cpld-gameboy-cartridge">Post</a>).</li>
<li><a href="http://reinerziegler.de.mirrors.gg8.se/">Reiner Zieglers
Game Boy page</a> - Commercial and homemade programmable cartridges and
programming systems. Tutorials, wiring and schematics provided.</li>
<li><a
href="https://github.com/insidegadgets/Gameboy-MBC5-MBC1-Hybrid">Gameboy-MBC5-MBC1-Hybrid</a>
- CPLD implementation of a MBC5/MBC1 Hybrid cartridge.</li>
</ul>
<h4 id="misc">Misc</h4>
<ul>
<li><a href="http://pepijndevos.nl/sha2017/workshop.pdf">Introduction to
Game Boy Hacking</a> - Workshop introducing basic assembly, debugging
and reverse engineering.</li>
<li><a
href="https://github.com/bwhitman/pushpin/blob/master/src/gbsound.txt">GBSOUND.txt</a>
- A document detailing the Game Boy sound engine.</li>
<li><a href="http://www.devrs.com/gb/files/faqs.html">gbdev FAQs</a> -
Must read by Jeff Frohwein.</li>
<li><a href="http://www.neviksti.com/DMG/DMG_ROM.asm">Game Boy
Bootrom</a> - Commented dump of the DMG bootrom.</li>
<li><a href="http://www.z80.info/z80gboy.txt">Differences between the
Z80 and the gameboys processor</a></li>
<li><a href="http://www.huderlem.com/demos/gameboy2bpp.html">Gameboy
2BPP Graphics Format</a> - Information on how the Game Boy interprets
VRAM tile data to color pixels.</li>
</ul>
<h2 id="emulator-development">Emulator Development</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=GBYwjch6oEE">Reverse
Engineering fine details of Game Boy hardware</a> - 43 minutes talk by
Gekkio given at Disobey 2018 (<a
href="https://gekkio.fi/blog/2018-02-05-errata-for-reverse-engineering-fine-details-of-game-boy-hardware.html">errata</a>).</li>
<li><a
href="https://github.com/Baekalfen/PyBoy/blob/master/extras/PyBoy.pdf">Emulation
of Nintendo Game Boy</a> - Overview of the Game Boy hardware with the
perspective of building an emulator.</li>
<li><a href="https://rylev.github.io/DMG-01/public/book/">DMG-01</a> -
An educational Gameboy Emulator in Rust and a companion book explaining
its development. *<a
href="https://media.ccc.de/v/rustfest-rome-3-gameboy-emulator">Oh Boy!
Creating a Game Boy Emulator in Rust</a>- is a talk given at Rust Fest
18 about this.</li>
<li><a
href="http://imrannazar.com/gameboy-Emulation-in-JavaScript">Building a
Game Boy emulator in JavaScript</a> - Step by step tutorial.</li>
<li><a href="https://cturt.github.io/cinoop.html">Writing a Game Boy
emulator, Cinoop</a></li>
<li><a
href="https://jeremybanks.github.io/0dmg/2018/05/23/getting-started.html">0dmg</a>
- Learning Rust by building a partial Game Boy emulator.</li>
<li><a href="https://realboyemulator.wordpress.com/posts/">RealBoy
Emulator</a> - A series of posts about the design and implementation of
the RealBoy Emulator.</li>
<li><a
href="http://www.codeslinger.co.uk/pages/projects/gameboy.html">Codeslinger</a>
- Another series of posts documenting the building of an emulator.</li>
<li><a href="http://blog.rekawek.eu/2017/02/09/coffee-gb/">Why did I
spend 1.5 months creating a Gameboy emulator?</a> - Blog post.</li>
<li><a
href="https://binji.github.io/2017/12/31/binjgb-rewind.html">binjgb
rewind</a> - Implementing a *rewind- feature.</li>
<li><a
href="https://binji.github.io/2017/02/26/binjgb-on-the-web-part-1.html">binjgb
on the web</a> - Porting of the binjgb emulator to Web Assembly. <a
href="https://binji.github.io/2017/02/27/binjgb-on-the-web-part-2.html">(Part
2)</a></li>
<li><a
href="https://binji.github.io/2017/05/03/debugging-hangs.html">binjgb
debugging hangs</a> - Investigations on emulations quirks.</li>
<li><a
href="https://gb-archive.github.io/salvage/decoding_gbz80_opcodes/Decoding%20Gamboy%20Z80%20Opcodes.html">Decoding
Gameboy Z80 opcodes</a> - How to algorithmically decode Game Boy
instructions (as opposed to writing one huge switch-case
statement).</li>
<li><a
href="https://djhworld.github.io/post/2018/09/21/i-ported-my-gameboy-color-emulator-to-webassembly/">Porting
a GO Game Boy emulator to WebAssembly</a></li>
<li><a href="https://mitxela.com/projects/swotgb/about">About swotGB</a>
- Notes about the development of a Game Boy emulator in JavaScript.</li>
<li><a href="EMULATORS.md">List of open source emulators</a></li>
<li><a href="https://github.com/robert/gameboy-doctor">Game Boy
Doctor</a> - A command line tool for comparing logs from your emulator
to those from a known-correct one. Useful for line-by-line debugging of
Blarggs test ROMs.</li>
</ul>
<h3 id="testing">Testing</h3>
<ul>
<li><a href="http://gbdev.gg8.se/files/roms/blargg-gb-tests/">Blarggs
test roms</a></li>
<li><a href="https://gekkio.fi/files/mooneye-gb/latest/">Gekkios test
roms</a></li>
<li><a href="https://github.com/LIJI32/SameSuite">SameSuite</a></li>
<li><a
href="https://github.com/mattcurrie/mealybug-tearoom-tests">Mealybug
Tearoom Tests</a></li>
<li><a
href="http://tasvideos.org/EmulatorResources/GBAccuracyTests.html">GB
Accuracy Tests</a></li>
<li><a
href="https://github.com/pinobatch/240p-test-mini/tree/master/gameboy">144p
Test Suite</a> - Port of Artemio Urbinas 240p Test Suite to the Game
Boy.</li>
<li><a href="https://github.com/aaaaaa123456789/rtc3test">MBC3 RTC test
ROM</a></li>
<li><a href="https://github.com/mattcurrie/dmg-acid2">dmg-acid2</a> and
<a href="https://github.com/mattcurrie/cgb-acid2">cgb-acid2</a> - Basic
PPU rendering tests.</li>
</ul>
<h2 id="software-development">Software Development</h2>
<p>The <a href="https://gbdev.io/guides/tools.html">Choosing tools for
Game Boy development</a> essay provides an overview of the available
development tools for Game Boy.</p>
<h3 id="assemblers">Assemblers</h3>
<ul>
<li><a href="https://github.com/gbdev/rgbds">RGBDS</a> - Assembler and
linker package. <a href="https://rgbds.gbdev.io">Documentation</a>.</li>
<li><a href="https://github.com/csoren/asmotor">ASMotor</a> - Assembler
engine and development system targeting Game Boy, among other CPUs.
Written by the original RGBDS author. <a
href="https://github.com/asmotor/asmotor/tree/develop#further-reading">Documentation</a>.</li>
<li><a href="https://github.com/vhelin/wla-dx">wla-dx</a> - Yet Another
GB-Z80/Z80/… Multi Platform Cross Assembler Package. <a
href="http://www.villehelin.com/wla.txt">Documentation</a>.</li>
</ul>
<h3 id="compilers">Compilers</h3>
<ul>
<li><a href="https://github.com/gbdk-2020/gbdk-2020/">GBDK</a> -
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.
<ul>
<li><a
href="https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_getting_started.html">API
docs: Getting Started</a></li>
<li><a
href="https://github.com/mrombout/gbdk_playground">Examples</a></li>
<li><a
href="https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_links_and_tools.html">Documentation,
links and tools</a></li>
</ul></li>
<li><a
href="https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/">Turbo
Rascal Syntax Error</a> - 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.</li>
</ul>
<h4 id="experimentalproof-of-concepts">Experimental/Proof of
Concepts</h4>
<ul>
<li><a href="https://gbdev.io/rgbds-live">RGBDS-Live</a> - In-browser
coding environment to try out RGBDS.</li>
<li><a href="https://github.com/wiz-lang/wiz">Wiz</a> - A high-level
assembly language for writing homebrew on retro console platforms (Game
Boy, NES, Atari 2600, and more).</li>
<li><a href="https://github.com/ams-hackers/gbforth">gbforth</a> - A
Forth-based Game Boy development kit.</li>
<li><a href="https://gitlab.com/BonsaiDen/gbasm-rs">gbasm-rs</a> - An
opinionated Rust based compiler for Game Boy z80 assembly code.</li>
<li><a href="https://github.com/BonsaiDen/gbasm">gbasm</a> - A
JavaScript based compiler for Game Boy z80 assembly code.</li>
<li><a href="http://www.tni.nl/products/tniasm.html">tniASM</a> - Macro
Assembler.</li>
<li><a href="https://github.com/ulrikdamm/Assembler">Assembler</a> -
Assembler written in Swift.</li>
<li><a href="https://github.com/Bevinsky/llvm-gbz80">llvm-gbz80</a> / <a
href="https://github.com/Bevinsky/clang-gbz80">clang-gbz80</a> -
Clang/LLVM port to the GBZ80 CPU (similar to the deprecated <a
href="https://github.com/euclio/llvm-gbz80">euclio/llvm-gbz80</a>).</li>
<li><a href="https://github.com/pokemium/gbdk-go">gbdk-go</a> - A
compiler translates Go programs to C code. The output C code is built
into GB ROM by GBDK.</li>
<li><a href="https://github.com/zlfn/rust-gb">Rust-GB</a> - A compiler
and library that enable the development of GB ROMs using Rust.</li>
</ul>
<h3 id="emulators">Emulators</h3>
<ul>
<li><p><a href="https://bgb.bircd.org/">BGB</a> - Powerful emulator and
debugger. Provides an accurate hardware emulation.</p></li>
<li><p><a href="https://github.com/LIJI32/SameBoy">SameBoy</a> -
Accurate emulator with a wide range of powerful debugging
features.</p></li>
<li><p><a href="https://github.com/Gekkio/mooneye-gb">Mooneye GB</a> -
Research project and emulator in Rust.</p></li>
<li><p><a href="https://github.com/mgba-emu/mgba">mGBA</a> - Modern
cross platform GBA emulator which also runs GB/GBC games.</p></li>
<li><p><a href="https://github.com/binji/binjgb">Binjgb</a> - 5Kloc
emulator that passes most of the tests. *Rewind- feature. Runs in the
browser using WebAssembly.</p></li>
<li><p><a href="https://github.com/gb-archive/gambatte">Gambatte</a> -
Cross-platform and accurate emulator.</p></li>
<li><p><a href="https://github.com/aappleby/MetroBoy">MetroBoy</a> - A
playable, circuit-level simulation of an entire Game Boy.</p></li>
<li><p><a href="https://github.com/shonumi/gbe-plus">gbe-plus</a> - 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, …
)</p></li>
<li><p><a href="https://emulicious.net/">Emulicious</a> - Provides
accurate emulation and includes powerful tools such as a profiler and
source-level debugging for ASM and C via a <a
href="https://marketplace.visualstudio.com/items?itemName=emulicious.emulicious-debugger">VS
Code debug adapter</a>.</p></li>
</ul>
<p><a href="EMULATORS.md">Complete list of open source emulators</a></p>
<h3 id="tools">Tools</h3>
<h4 id="engines">Engines</h4>
<ul>
<li><a href="https://github.com/Zal0/ZGB">ZGB</a> - A little engine for
creating games for the original Game Boy (expands gbdk, more info <a
href="http://zalods.blogspot.com/2017/01/zgb-little-engine-for-game-boy.html">here</a>).</li>
<li><a href="https://bitbucket.org/HellSuffering/retr0-gb/">Retr0 GB</a>
- An engine for creating games (expands GBDK).</li>
</ul>
<h4 id="development-tools">Development tools</h4>
<ul>
<li><a
href="https://www.tensi.eu/thomas/programming/utilities/gbx_library/gbx_library.html">GBExtended</a>
- C library extending gbdk.</li>
<li><a
href="https://github.com/ProGM/gbdk-lib-extension">gbdk-lib-extension</a>
- A small set of sources and tools for the Game Boy Development Kit by
Michael Hope.</li>
<li><a href="https://github.com/mattcurrie/mgbdis">mgbdis</a> - Game Boy
ROM disassembler with RGBDS compatible output.</li>
<li><a href="http://catskull.net/GB-Logo-Generator/">ROM Header
Utility</a> - An online tool to inspect and modify a ROMs header data,
including the logo.</li>
<li><a href="https://github.com/bbbbbr/romusage">romusage</a> - 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.</li>
<li><a href="https://github.com/devdri/awake">awake</a> - Game Boy
decompiler.</li>
<li><a href="https://github.com/raphaklaus/gameboy-text-tools">Game Boy
Text Tools</a> - Set of tools for text manipulation and translation of
Game Boy ROMs written in Node.js.</li>
<li><a href="https://github.com/eievui5/evscript">evscript</a> - A
scripting language for the Game Boy, useful for enemy AI, dialogue,
animations, and coroutines.</li>
<li><a href="https://github.com/eievui5/evunit">evunit</a> - A unit
testing program for assembly code.</li>
<li><a
href="https://github.com/rondnelson99/opcode_count">opcode_count</a> -
Generates statistics on which CPU instructions are run the most often
using Python and Emulicious</li>
</ul>
<h4 id="graphics-utilities">Graphics utilities</h4>
<ul>
<li><a href="https://github.com/chrisantonellis/gbtdg">Game Boy Tile
Data Generator</a> - HTML5 / JS web application that will convert bitmap
images to hexadecimal data appropriate for use in tile based graphical
applications, specifically GB.</li>
<li><a href="http://www.devrs.com/gb/hmgd/intro.html">Harry Mulders GB
Development</a> - Some sources and home of Game Boy Tile Designer (GBTD)
and Game Boy Map Builder (GBMB) tools.</li>
<li><a href="https://github.com/bashaus/gbtiles">GBTiles</a> - Converts
.GBR files created with Harry Mulders Tile Designer (GBTD) and .GBM
files created with Harry Mulders Map Builder (GBMB) to different
formats for use with the Game Boy and GBDK.</li>
<li><a href="https://github.com/gitendo/bmp2cgb">bmp2cgb</a> - Graphics
converter for Game Boy Color development providing real time palette
adjustments.</li>
<li><a href="https://github.com/LuckyLights/png2gb">png2gb</a> - CLI
tool to convert image file to game boy .c array.</li>
<li><a href="https://github.com/gb-archive/gb-convert">GB-convert</a> -
Game Boy tile conversion and map editor tool (converts to
assembly).</li>
<li><a href="http://make.vg/brewtool/">brewtool</a> - A collection of
primitive editor/converter tools for making assets used with homebrew
ROM development.</li>
<li><a href="https://github.com/paul-arutyunov/vtGBte">vtGBte</a> - A
minimalistic ncurses tile editor.</li>
<li><a href="https://github.com/TwitchPlaysPokemon/tpp1">tpp1</a> -
Definition and specification of a custom GB/GBC memory/hardware mapper,
as a functional superset of MBC.</li>
<li><a href="https://github.com/delwink/libstdgb">libstdgb</a> - A C
library of useful Game Boy operations (SDCC).</li>
<li><a href="https://github.com/bbbbbr/gimp-tilemap-gb">Tilemap GB</a> -
GIMP image editor plug-in for importing &amp; exporting GBMB and GBTD
tilemaps and tilesets (as bitmap images or .GBM/.GBR files).</li>
<li><a href="https://github.com/bbbbbr/gimp-tilemap-helper">Tilemap
Helper</a> - GIMP image editor plug-in for optimizing tile maps and tile
sets.</li>
<li><a href="https://github.com/Rangi42/tilemap-studio">Tilemap
Studio</a> - A tilemap editor for Game Boy, Color, Advance, and SNES
projects. Written in C++ with FLTK.</li>
<li><a href="https://github.com/Optiroc/SuperFamiconv">Superfamiconv</a>
- Flexible and composable tile graphics converter supporting Super
Nintendo, Game Boy, Game Boy Color, Game Boy Advance, Mega Drive and PC
Engine formats.</li>
</ul>
<h4 id="hardware-and-rom-utilities">Hardware and ROM utilities</h4>
<ul>
<li><a href="https://github.com/Palmr/cart-dumper">cart-dumper</a> -
Game Boy Cartridge Dumper ROM.</li>
<li><a href="https://github.com/jkbenaim/gbcamextract">gbcamextract</a>
- Extracts photos from Game Boy Camera saves.</li>
<li><a
href="https://github.com/svendahlstrand/game-boy-lcd-sniffing">Game Boy
LCD sniffing</a> - Sniff your Game Boys LCD using a logic
analyzer.</li>
<li><a href="https://github.com/sanqui/swapdump">swapdump</a> -
Diagnostic utility for Game Boy flashcarts.</li>
<li><a
href="https://github.com/JustinLloyd/Gameboy-LinkUp">Gameboy-LinkUp</a>
- Game Boy LinkUp serial cable networking project.</li>
</ul>
<h4 id="music-drivers-and-trackers">Music drivers and trackers</h4>
<ul>
<li><a href="https://github.com/DevEd2/DevSoundX">DevSoundX</a> - Sound
driver embeddable in homebrews which supports pulse width manipulation,
arpeggios, and multiple waveforms.</li>
<li><a
href="http://gbdev.gg8.se/files/musictools/Aleksi%20Eeben/Carillon%20Editor.zip">Carillon
Player</a> - Music Engine.</li>
<li><a href="https://github.com/AntonioND/gbt-player">GBT PLAYER</a> - A
music player library and converter kit.</li>
<li><a href="https://github.com/SimonLarsen/mmlgb">mmlgb</a> - A MML
parser and GBDK sound driver for the Nintendo Game Boy.</li>
<li><a href="https://github.com/bazzinotti/XPMCK">XPMCK</a> - An MML
based music compiler with support for Game Boy &amp; Game Boy
Color.</li>
<li><a href="https://github.com/gbdev/GBSoundSystem">GBSoundSystem</a> -
A modernized audio driver for GameBoy Tracker (aka the Paragon 5 music
player).</li>
<li><a href="https://github.com/SuperDisk/hUGETracker">hUGETracker</a> -
A music tracker based on OpenMPT, focused on ease of use, compact
output, and embeddability in homebrew games.</li>
<li><a href="https://github.com/datguywitha3ds/CBT-FX">CBT-FX</a> - A
GBDK-2020 sound effect driver compatible with FX-Hammer sound
effects.</li>
</ul>
<h2 id="programming">Programming</h2>
<p>Guides, tutorials and tools to develop software for Game Boy using
the development toolchains described in the <a
href="#software-development">Software Development</a> chapter.</p>
<h3 id="asm">ASM</h3>
<ul>
<li><strong><a href="https://eldred.fr/gb-asm-tutorial">gb asm
tutorial</a></strong> - Step by step tutorial, building several ROMs to
accompany its explanations.</li>
<li><a href="https://github.com/tobiasvl/hardware.inc">hardware.inc</a>
- Standard include file containing Game Boy hardware definitions for use
in RGBDS projects.</li>
<li><a
href="https://gb-archive.github.io/salvage/tutorial_de_ensamblador/tutorial_de_ensamblador_la_decadence.html">Assembly
tutorial by David Pello</a> - Good document to learn to produce working
asm code for gb. Brief explanations of many important topics. Many
examples with commented source code.</li>
<li><a
href="https://github.com/assemblydigest/gameboy">assemblydigest</a> -
Exploring Game Boy programming techniques:
<ul>
<li><a
href="http://assemblydigest.tumblr.com/post/77203696711/tutorial-making-an-empty-game-boy-rom-in-wiz">Making
an Empty Game Boy ROM (in Wiz)</a></li>
<li><a
href="http://assemblydigest.tumblr.com/post/77404621743/tutorial-making-art-for-the-game-boy">Making
Art for the Game Boy</a></li>
</ul></li>
<li><a
href="http://web.archive.org/web/20150511145100/http://www.bennvenn.com/Beginners_Guide_To_Reverse_Engineering.htm">Beginners
Guide to Reverse Engineering GB</a> - Some starting tips on
disassembling and reverse engineering.</li>
<li><a href="http://voidptr.io/blog/2017/01/21/GameBoy.html">FlappyBoy:
Making a simple Game Boy Game</a></li>
<li><a
href="https://imanoleasgames.blogspot.no/2016/12/games-aside-1-super-game-boy.html">Super
Game Boy development</a> - Step by step tutorial to implement Super Game
Boy features (frame and palettes).</li>
<li><a
href="https://peterwynroberts.wordpress.com/2014/05/11/gameboy-programming-tutorial-hello-world/">GameBoy
programming tutorial: Hello World!</a> - Step by step tutorial.</li>
<li><a href="https://github.com/lancekindle/DMGreport">DMGreport</a> -
Game programming tutorials in assembly.</li>
<li><a href="https://gbdev.gg8.se/wiki/articles/OAM_DMA_tutorial">OAM
DMA tutorial</a> - Example of how to use OAM DMA in assembly.</li>
<li><a href="https://github.com/ahrnbom/gbapfomgd">Game Boy Assembly
Programming for the Modern Game Developer</a> - An e-book about making
Game Boy games in Assembly.</li>
</ul>
<h4 id="sources">Sources</h4>
<p>Fragments of code, effects, proof of concepts and generally non
complete games.</p>
<ul>
<li><a href="http://www.devrs.com/gb/asmcode.php">devrs ASM section</a>
- A lot of working demos and sources.</li>
<li><a href="https://github.com/EmmaEwert/gameboy">EmmaEwerts
experiments</a> - A collection of prototype programs, mostly just toying
around. Among others, a daylight effect, transparency and a weather
effect.</li>
<li><a href="https://github.com/gb-archive/DeadCScroll">DeadCScroll</a>
- A detailed tutorial on how to make the screen wobble, among other
“raster effects”</li>
</ul>
<h4 id="timings">Timings</h4>
<ul>
<li><a
href="http://blog.kevtris.org/blogfiles/Nitty%20Gritty%20Gameboy%20VRAM%20Timing.txt">Nitty
Gritty Gameboy Cycle Timing</a></li>
<li><a
href="https://old.reddit.com/r/EmuDev/comments/59pawp/gb_mode3_sprite_timing/">Mode3
Sprite Timing</a></li>
<li><a
href="http://gameboy.mongenel.com/dmg/gbc_dma_transfers.txt">GameBoy
Color DMA-Transfers v0.0.1</a></li>
<li><a href="http://gameboy.mongenel.com/dmg/istat98.txt">STAT interrupt
timings</a></li>
<li><a href="https://github.com/jdeblese/gbcpu/wiki/Video-Timing">Video
Timing</a></li>
</ul>
<h4 id="boilerplates-and-libraries">Boilerplates and libraries</h4>
<ul>
<li><a
href="https://github.com/nezticle/rgbds-template">rgbds-template</a> -
Basic hello-world example for Game Boy using RGBDS.</li>
<li><a href="http://www.devrs.com/gb/files/galp.zip">Game Boy Assembly
Language Primer</a> - Simple template code with memory defines, copy
routines and IBM font tilemap.</li>
<li><a href="https://github.com/yenatch/bootstrap.gb">bootstrap.gb</a> -
An example Game Boy project.</li>
<li><a
href="https://github.com/junebug12851/GameboyBoilerplateProj">Gameboy
Boilerplate</a> - Boilerplate project to move quicker into the actual
assembly code for your game.</li>
<li><a href="https://github.com/ahrnbom/gingerbread">GingerBread</a> - A
software library for making your own Game Boy games. It is made to be
used alongside the book <a
href="https://github.com/ahrnbom/gbapfomgd">Game Boy Assembly
Programming for the Modern Game Developer</a> which also doubles as
documentation.</li>
<li><a href="https://github.com/ISSOtm/gb-vwf">gb-vwf</a> - Library to
print variable-width text, comes with a demo.</li>
<li><a
href="https://github.com/ISSOtm/gb-boilerplate">gb-boilerplate</a> - A
template for starting Game Boy projects, providing a Makefile for
infrastructure.</li>
<li><a
href="https://github.com/ISSOtm/gb-starter-kit">gb-starter-kit</a> - An
expansion on the above, including base library code as well to get
started faster.</li>
<li><a href="https://github.com/gb-archive/gb-template">gb-template</a>
- A template with basic functions such as joypad input, DMA transfers,
and map/tile data loading.</li>
</ul>
<h4 id="syntax-highlighting-packages">Syntax highlighting packages</h4>
<ul>
<li><a
href="https://github.com/ISSOtm/gbz80-highlight">gbz80-highlight</a> -
Notepad+- and gedit syntax highlighting files for RGBDS assembly.</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=819">Vim
syntax file for the Game Boy assembler RGBASM</a> - Vim syntax
highlighting for RGBDS assembly.</li>
<li><a
href="https://github.com/Leandros/dotfiles/blob/master/.vim/syntax/rgbds.vim">Vim
syntax file for RGBDS</a> - Another Vim syntax highlighting file for
RGBDS assembly.</li>
<li><a href="https://packagecontrol.io/packages/RGBDS">sublime-rgbds</a>
- A Sublime Text 3 package for RGBDS, including syntax highlighting and
some completion snippets.</li>
<li><a href="https://github.com/Imanolea/z80asm-vscode">Z80 Assembly
support for Visual Studio Code</a></li>
<li><a
href="https://github.com/DonaldHays/rgbds-vscode">rgbds-vscode</a> -
Visual Studio Code language extension for RGBDS GBZ80 Assembly.</li>
<li><a href="https://github.com/japanoise/rgbds-mode">rgbds-mode</a> -
Emacs major mode for RGBDS assembly.</li>
</ul>
<h3 id="c">C</h3>
<ul>
<li><a
href="https://github.com/gb-archive/salvage/blob/master/misc/8bit_wonderland.pdf">8-Bit
Wonderland</a> - Well-written introductory document about how the Game
Boy works and how to start developing working code for it.</li>
<li><a
href="https://github.com/gbdk-salvage/grooves-game-boy-programming">Grooves
Game Boy Programming</a> - A complete set of lessons about implementing
various game mechanics in a Game Boy game.</li>
<li><a href="http://pastebin.com/F3tHLj68">How to Write a Simple Side
Scrolling Game</a> - Old (but still relevant) tutorial.</li>
<li><a
href="http://web.archive.org/web/20230327070526/http://pastebin.com/gzT47MPJ">Just
another simple tutorial</a></li>
<li><a
href="https://refreshgames.co.uk/2016/04/18/gameboy-tutorial-rom/">GBDK
Tutorial</a> - Fairly minimal game demo for getting started with
GBDK.</li>
<li><a
href="http://gbdev.gg8.se/wiki/articles/GBDK_Sprite_Tutorial">GBDK
Sprite</a> - Presents a workflow for getting multiple sprites to display
and animate.</li>
<li><a href="http://gbdev.gg8.se/wiki/articles/GBDK_Color_Tutorial">GBDK
Color</a> - Extends your knowledge of basic spriting on the Game Boy by
adding colors to sprites, backgrounds and the window layer.</li>
<li><a
href="http://gbdev.gg8.se/wiki/articles/GBDK_Joypad_Tutorial">GBDK
Joypad</a> - Details the use of the joypad with GBDK.</li>
<li><a
href="https://web.archive.org/web/20210427064949/www.personal.triticom.com/~erm/GameBoy/">Game
Boy home of Flavor</a> - Some full games and sources.</li>
<li><a
href="https://videlais.com/2016/07/03/programming-game-boy-games-using-gbdk-part-1-configuring-programming-and-compiling/">GBDK
Configuring and Programming Tutorial</a> - Configuring GBDK, Using
Tiles, Colliding Sprites, GBTD, GBMB, Memory Management and ROM
Banking.</li>
<li><a href="https://github.com/mrombout/gbdk_playground">Simplified
GBDK examples</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLeEj4c2zF7PaFv5MPYhNAkBGrkx4iPGJo">GBDK
Programming Video Tutorials</a> - A series of video tutorials
introducing beginners to programming with GBDK.</li>
<li><a
href="https://laroldsretrogameyard.com/category/tutorials/gb/">Larolds
Retro Gameyard</a> - A collection of detailed GBDK-2020 based
tutorials.</li>
</ul>
<h2 id="homebrews">Homebrews</h2>
<p>Complete and open source games.</p>
<ul>
<li><a href="https://hh.gbdev.io">Homebrew Hub</a> - A community-led
attempt to collect, archive and preserve every unlicensed and homebrew
game released for Game Boy. Entries are playable online.</li>
</ul>
<h3 id="asm-1">ASM</h3>
<ul>
<li><a href="https://github.com/BonsaiDen/Tuff.gb">Tuff</a></li>
<li><a href="https://github.com/Sanqui/2048-gb">2048-gb</a></li>
<li><a
href="https://bitbucket.org/Sanqui/snake/src/?at=master">Snake</a></li>
<li><a href="https://github.com/huderlem/lazerpong">Lazerpong</a></li>
<li><a href="https://github.com/AntonioND/geometrix">Geometrix</a></li>
<li><a href="https://github.com/AntonioND/ucity">µCity</a></li>
<li><a href="https://github.com/mholtkamp/carazu">Carazu</a></li>
<li><a href="https://github.com/DonaldHays/snake-gb">Snake-gb</a></li>
<li><a href="https://github.com/furrtek/GB303">GB303</a> - GB303
wavetable-based TB-303 style synthesizer for the Nintendo Game Boy.</li>
<li><a href="https://github.com/JustSid/Sushi">Sushi</a></li>
<li><a
href="https://github.com/bitnenfer/flappy-boy-asm">Flappy-boy-asm</a></li>
<li><a href="https://github.com/dubvulture/gbdev">kupman</a> and some
other projects.</li>
<li><a href="https://github.com/tbsp/Adjustris">Adjustris</a></li>
<li><a href="https://github.com/gb-archive/exeman">exeman</a></li>
<li><a href="https://github.com/ISSOtm/Aevilia-GB">Aevilia</a></li>
<li><a href="https://github.com/Kartones/gameboy">GBSlides</a> - A
simple Game Boy Powerpoint-like slides viewer.</li>
<li><a href="https://github.com/dannye/pokered-gbc">Pokered-gbc</a> -
Pokémon Red remade with full GBC support.</li>
<li><a
href="https://github.com/tslanina/Retro-GameBoyColor-ToyToy">ToyToy</a></li>
<li><a
href="https://github.com/tslanina/Retro-GameBoyColor-StefaN">StefaN</a>
- Fourway Breakout clone.</li>
<li><a
href="https://github.com/tslanina/Retro-GameBoyColor-Galaxia">Galaxia</a></li>
<li><a href="https://github.com/sanqui/desgb">desgb</a> - DES
encryption.</li>
<li><a
href="https://github.com/l0k1/superhappyfunbubbletime">superhappyfunbubbletime</a></li>
<li><a
href="https://github.com/lancekindle/minesweepGB">minesweepGB</a></li>
<li><a href="https://github.com/pinobatch/libbet">Libbet and the Magic
Floor</a></li>
<li><a href="https://github.com/dannye/waveform-gb">waveform-gb</a> -
Program visualizing the wave form used by the wave channel. The wave
form can be edited freely and playback of the wave is updated
immediately.</li>
<li><a href="https://gitlab.com/BonsaiDen/vectroid.gb">vectroid.gb</a> -
Developed with gbasm.</li>
<li><a href="https://github.com/gb-archive/plantboy">PlantBoy</a></li>
<li><a href="https://makrill.itch.io/death-planet">Death Planet</a></li>
<li><a href="https://makrill.itch.io/quartet">Quartet</a> - Puzzle game
for the Game Boy (Color) and Super Game Boy.</li>
<li><a href="https://snorpung.itch.io/dangan-gb">Dangan</a></li>
</ul>
<h3 id="c-1">C</h3>
<ul>
<li><a href="https://github.com/bitnenfer/FlappyBoy">FlappyBoy</a></li>
<li><a
href="https://github.com/pashutk/flappybird-gameboy">flappybird-gameboy</a></li>
<li><a href="https://github.com/gb-archive/fbgb">fbgb</a></li>
<li><a
href="https://web.archive.org/web/20171002042716/http://ludumdare.com/compo/ludum-dare-34/?action=preview&amp;uid=6823">Novascape</a></li>
<li><a href="https://github.com/cppchriscpp/SquishyTheTurtle">Squishy
the Turtle</a></li>
<li><a href="https://github.com/avivace/quadratino">Quadratino</a></li>
<li><a href="https://github.com/elfgames/doctorhow">Doctor How</a></li>
<li><a href="https://github.com/Zal0/gbjam2016">Super Princess 2092
Exodus</a> - (<a href="https://github.com/Zal0/ZGB/">ZGB
engine</a>).</li>
<li><a href="https://github.com/brovador/GBsnake">GBsnake</a></li>
<li><a
href="https://github.com/andreasjhkarlsson/gb-mines">gb-mines</a></li>
<li><a
href="http://www.atari2600land.com/gameboy/oranges.html">oranges</a></li>
<li><a
href="https://github.com/Imanolea/bitbitjam3_red_hot_princess_carnage">red
hot princess carnage</a></li>
<li><a
href="https://www.tensi.eu/thomas/programming/games/loderunner/loderunner.html">loderunner</a></li>
<li><a
href="https://refreshgames.co.uk/2017/04/24/ludum-dare-38-entry-hives/">Hives</a></li>
<li><a href="https://github.com/DonaldHays/bubblefactory">Bubble
Factory</a> - *Vanilla- SDCC (no gbdk).</li>
<li><a href="https://github.com/rubfi/gbc-atari-boxing">GBC Atari
Boxing</a> - Atari 2600 Boxing clone for the Game Boy (Color).</li>
<li><a
href="https://github.com/haroldo-ok/really-old-stuff/tree/master/gameboy">GB
raycaster, Vision-8</a> - and some other projects.</li>
<li><a href="https://github.com/SimonLarsen/tobutobugirl-dx">Tobu Tobu
Girl Deluxe</a> - An arcade platformer for the Game Boy (Color).</li>
<li><a href="http://sebastianmihai.com/gameboy-burly-bear.html">Burly
Bear vs. The Mean Foxes</a> (<a
href="http://sebastianmihai.com/gameboy-color-burly-bear.html">GBC</a>
port)</li>
<li><a href="https://github.com/MasterIV/PostBot">PostBot</a></li>
<li><a href="https://github.com/kanfor/gunsridersgameboy">Guns &amp;
Riders</a></li>
<li><a
href="https://github.com/gingemonster/DinosOfflineAdventure">Dinos
Offline Adventure</a> - A clone of the Google Chrome offline game.</li>
<li><a href="https://github.com/rnegron/dino-gb">dino-gb</a> - Another
clone of the Chrome game.</li>
<li><a href="https://github.com/flozz/evoland.gb">Evoland.gb</a> - A
port of the first level of Evoland.</li>
<li><a href="https://github.com/bbbbbr/Petris">Petris</a> - A puzzle
game of shapely pets for the Game Boy Color (<a
href="https://bbbbbr.itch.io/petris">itch.io</a>).</li>
<li><a href="https://github.com/gb-archive/infinity-gbc">Infinity</a> -
RPG developed by Affinix Software primarily between the years 1999 and
2001. The game never found a publisher and was eventually canceled. Got
recently released with the full source, development tools and
workflows.</li>
<li><a href="https://gbdev.gg8.se/forums/viewtopic.php?id=743">Black
Castle</a> - Side scrolling platformer for the Game Boy (<a
href="https://user0x7f.itch.io/black-castle">itch.io</a>).</li>
<li><a
href="https://gbdev.gg8.se/forums/viewtopic.php?id=674">Genesis</a> -
Shmup for the Game Boy (<a
href="https://user0x7f.itch.io/genesis">itch.io</a>).</li>
<li><a
href="https://antonylavelle.itch.io/indestructotank-gb">Indestructo
Tank!</a></li>
<li><a href="https://asobitech.itch.io/super-jetpak-dx">Super JetPak
DX</a></li>
<li><a href="https://aiguanachein.itch.io/powa">Powa!</a> - Side
scrolling platformer for the Game Boy (Color) (<a
href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
<li><a href="https://thegreatgallus.itch.io/cavern-mvm-9">Cavern</a> -
(<a href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
<li><a href="https://ctneptune.itch.io/mona-and-the-witchs-hat-dx">Mona
and the Witchs Hat Deluxe</a> - (<a
href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
<li><a href="https://gamejolt.com/games/the-bouncing-ball-gb/86699">The
Bouncing Ball</a></li>
<li><a href="https://drludos.itch.io/dmg-deals-damage">DMG Deals
Damage</a></li>
</ul>
<h3 id="gb-studio">GB Studio</h3>
<ul>
<li><a href="https://kadabura.itch.io/soul-void">Soul Void</a> -
Interactive horror fiction.</li>
<li><a href="https://izma.itch.io/deadeus">Deadeus</a></li>
<li><a href="https://lumpytouch.itch.io/super-impostor-bros">SUPER
IMPOSTOR BROS.</a></li>
</ul>
<h3 id="demos">Demos</h3>
<ul>
<li><a href="https://github.com/AntonioND/back-to-color">Back to
Color</a></li>
<li><a href="https://github.com/vegard/beach-gbc">beach-gbc</a></li>
<li><a href="https://github.com/mills32/CUTE_DEMO">CUTE DEMO</a></li>
<li><a
href="https://github.com/svendahlstrand/10-print-game-boy"><code>10 PRINT</code>
Game Boy</a></li>
<li><a href="https://github.com/naavis/roboto-demo">Roboto Demo</a></li>
<li><a
href="https://github.com/wtjones/matrix-rain-gb">matrix-rain-gb</a> - A
Matrix digital rain effect in assembler.</li>
<li><a href="https://github.com/LIJI32/GBVideoPlayer">GBVideoPlayer</a>
- A technical demo demonstrating how the Game Boy LCD controller can be
hacked to make a Game Boy Color play a full motion video in color,
together with music.</li>
<li><a
href="https://github.com/LIJI32/GBVideoPlayer2">GBVideoPlayer2</a> - The
second iteration of the above demo, which increases the resolution, adds
<em>stereo- PCM audio, and introduces video compression</em>.</li>
</ul>
<h2 id="reverse-engineering">Reverse Engineering</h2>
<ul>
<li><a
href="http://ecc-comp.blogspot.it/2016/03/reverse-engineering-kirbys-dreamland-2.html">Reverse
engineering Kirbys Dreamland 2</a></li>
<li><a
href="https://github.com/pret/pokemon-reverse-engineering-tools">pokemontools</a>
- a python module that provides various reverse engineering components
for various Pokémon games.</li>
<li><a
href="https://www.megabeets.net/reverse-engineering-a-gameboy-rom-with-radare2">Reverse
Engineering a Gameboy ROM with radare2</a> - A walkthrough to reverse
engineer a Game Boy ROM challenge using radare2.</li>
<li><a
href="http://kemenaran.winosx.com/posts/category-disassembling-links-awakening/">Disassembling
Links Awakening</a> - A series of blog posts about disassembling Links
Awakening DX.</li>
<li><a
href="https://github.com/h3nnn4n/Reverse-Engineering-the-GameBoy-Tetris">Reverse
Engineering the GameBoy Tetris</a></li>
<li><a href="https://gbdev.io/guides/dma_hijacking">DMA hijacking</a> -
A simple technique that allows you to run custom code in most GB/SGB/CGB
games, provided you have an ACE exploit.</li>
</ul>
<h3 id="game-disassemblies">Game Disassemblies</h3>
<ul>
<li><a href="https://github.com/pret/pokered">Pokémon Red/Blue</a></li>
<li><a href="https://github.com/pret/pokecrystal">Pokémon
Crystal</a></li>
<li><a href="https://github.com/pret/pokeyellow">Pokémon Yellow</a></li>
<li><a href="https://github.com/pret/pokegold">Pokémon Gold and
Silver</a></li>
<li><a href="https://github.com/pret/pokepinball">Pokémon
Pinball</a></li>
<li><a href="https://github.com/pret/poketcg">Pokémon TCG</a></li>
<li><a
href="https://github.com/pret/pokegold-spaceworld">pokegold-spaceworld</a>
- Pokémon Gold and Silver 1997 Space World demo.</li>
<li><a href="https://github.com/mojobojo/LADX-Disassembly">Links
Awakening DX</a></li>
<li><a href="https://github.com/drenn1/ages-disasm">Oracle of
Ages</a></li>
<li><a href="https://github.com/vinheim3/tetris-gb-disasm">Tetris</a> -
Complete Tetris disassembly.</li>
<li><a href="https://github.com/DevEd2/FXHammer-Disasm">FX
Hammer</a></li>
<li><a href="https://github.com/sanqui/hm3">Harvest Moon 3</a></li>
<li><a href="https://github.com/daid/FFA-disassembly">Final Fantasy
Adventure</a></li>
<li><a
href="https://github.com/not-chciken/jungle-book-gb-disassembly">The
Jungle Book</a></li>
</ul>
<h2 id="game-boy-camera">Game Boy Camera</h2>
<h3 id="retrieving-images">Retrieving images</h3>
<p>Game Boy Printer emulation (e.g. to retrieve images from the
camera):</p>
<ul>
<li><a
href="https://github.com/mofosyne/arduino-gameboy-printer-emulator">Arduino
Gameboy Printer Emulator</a> - Emulate a gameboy printer via the gameboy
link cable.</li>
<li><a
href="https://github.com/applefreak/esp8266-gameboy-printer">ESP8266
Game Boy Printer</a> - A device that emulates the Gameboy Printer and
lets you retrieve images using WiFi powered by an ESP8266.</li>
<li><a href="https://github.com/HerrZatacke/wifi-gbp-emulator">WiFi GBP
Emulator</a> - A GameBoy printer emulator which provides the received
data over a WiFi connection.</li>
<li><a href="https://github.com/cristofercruz/gbp-esp-shield-pcb">Game
Boy WiFi Printer - D1 Mini Shield</a> - Game Boy Printer interface
shield for D1 mini/mini Pro ESP8266 boards.</li>
<li><a href="https://github.com/mofosyne/GameboyPrinterSniffer">Game Boy
Printer Sniffer</a> - Sniff packet communications between a Game Boy and
the Printer.</li>
</ul>
<h3 id="changing-the-cameras-behavior">Changing the cameras
behavior</h3>
<p>Methods to improve and/or manipulate the cameras quality and
behavior:</p>
<ul>
<li><a href="http://ekeler.com/game-boy-camera-canon-ef-mount">Game Boy
Camera Canon EF Lens Mount</a></li>
<li><a href="https://www.thingiverse.com/thing:4337362">Game Boy Camera
to Canon Lens mount</a> - based on the above.</li>
<li><a
href="https://github.com/cristofercruz/game-boy-camera-frame-replacer">game-boy-camera-frame-replacer</a>
- Manipulate the ROM of a camera to include custom frames</li>
</ul>
<h3 id="post-processing">Post processing</h3>
<ul>
<li><a
href="https://github.com/mofosyne/GameboyPrinterPaperSimulation">Game
Boy Printer Paper Simulation</a> - Generate as-if-printed images of
digital printed images.</li>
<li><a href="https://github.com/HerrZatacke/gb-printer-web">Game Boy
Printer Web</a> - Gallery app for to the Game Boy camera: import
pictures from exports or cartridge dumps and choose color palettes.</li>
</ul>
<h2 id="related-projects">Related projects</h2>
<ul>
<li><a href="https://www.gbstudio.dev/">GB Studio</a> - Drag and drop
game creator with simple, no knowledge required, visual scripting.
<ul>
<li><a href="https://gbstudiocentral.com/resources/">Resources to get
started</a></li>
<li><a href="https://discord.gg/knRryZWGcm">Dedicated Discord</a></li>
<li><a href="https://gumpyfunction.itch.io/lets-build-a-platformer">Lets
Build a Platformer Game!</a> - A course designed to teach anyone how to
create a platformer game using GB Studio 4+.</li>
</ul></li>
<li><a href="https://github.com/trash80/Arduinoboy">ArduinoBoy</a> -
Serial communication (MIDI) from an Arduino to the Game Boy for music
applications such as LittleSoundDJ, Nanoloop, and mGB.</li>
<li><a href="https://github.com/diegovalverde/papiGB">papiGB</a> - Game
Boy Classic fully functional FPGA implementation from scratch.</li>
<li><a href="https://github.com/trun/fpgaboy">fpgaboy</a> -
Implementation Nintendos Game Boy console on an FPGA.</li>
<li><a href="https://github.com/danShumway/Piglet">Piglet</a> - A
LUA-driven AI that plays classic Game Boy color games using
experimentation. In active development.</li>
<li><a href="https://github.com/PumpMagic/ostrich">Ostrich</a> - A Game
Boy Sound System player written in Swift.</li>
<li><a href="https://github.com/trash80/mGB">mGB</a> - A Game Boy
cartridge program that enables the Game Boy to act as a full MIDI
supported sound module.</li>
<li><a href="https://github.com/LIJI32/GBVisualizer">GBVisualizer</a> -
Demonstrating the use of two undocumented Game Boy Color registers,
nicknamed PCM12 (FF76) and PCM34 (FF77), which can be used to read the
current PCM amplitude of the 4 APU channels.</li>
<li><a
href="https://github.com/drhelius/arduinogameboy">ArduinoGameBoy</a> -
Arduino based Game Boy cartridge reader and writer.</li>
<li><a
href="https://github.com/bitnenfer/gameboy-brainfuck">gameboy-brainfuck</a>
- Brainf*ck interpreter.</li>
<li><a href="https://github.com/elseyf/gbfk">gbfk</a> - Brainf*ck
interpreter, with input.</li>
<li><a
href="https://github.com/mattcurrie/gb-save-states">gb-save-states</a> -
Patches to add save state support to Game Boy games when playing on the
original hardware.</li>
<li><a href="https://github.com/jdeblese/gbcpu">gbcpu</a> - A CPU and
peripherals implementing the Game Boy instruction set and
functionality.</li>
<li><a href="https://youtube.com/watch?v=1lzHfLYzyRM">Digitized Speech
in Game Boy Games</a></li>
<li><a href="https://dhole.github.io/post/gameboy_serial_1/">Sniffing
Game Boy serial traffic with an STM32F4</a></li>
<li><a href="https://dhole.github.io/post/gameboy_serial_2/">Virtual
Game Boy Printer with an STM32F4</a></li>
<li><a href="https://dhole.github.io/post/gameboy_serial_3/">Printing on
the Game Boy Printer using an STM32F4</a></li>
<li><a
href="https://dhole.github.io/post/gameboy_cartridge_rw_1/">Programming
Game Boy Chinese cartridges with an STM32F4</a></li>
<li><a
href="https://tilde.town/~minerobber/techwriteups/pokemonpc.html">Pokemon
Pocket Computer:</a> - What is it and how to use it to make cheat
codes.</li>
<li><a href="https://dhole.github.io/post/gameboy_custom_logo/">Booting
the Game Boy with a custom logo</a> - Bypassing the Nintendo logo
check.</li>
<li>Making a Game Boy game in 2017: A “Sheep It Up!” Post-Mortem (<a
href="https://www.gamasutra.com/blogs/DoctorLudos/20171207/311143/">part
1</a>, <a
href="https://www.gamasutra.com/blogs/DoctorLudos/20180213/314554/">part
2</a>)</li>
<li><a href="http://fuji.drillspirits.net/?post=87">Nintendos fake
logos</a> - 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.</li>
<li><a href="https://github.com/stijnfrishert/liblsdj">liblsdj</a> -
Utility library for interacting with the LSDj save format (.sav), song
files (.lsdsng) and more.</li>
<li><a href="https://github.com/jkotlinski/lsdpatch">lsdpatch</a> - Tool
for modifying samples, fonts and palettes on LSDj ROM images.</li>
<li><a
href="https://github.com/ChaosCabbage/crazy-gameboy-video-experiments">Game
Boy video effects</a> - Some little experiments using the STAT interrupt
to do funny video manipulations.</li>
<li><a href="https://github.com/ekimekim/gbos">gbos</a> - A basic
operating system for the Game Boy.</li>
<li><a
href="https://translate.google.com/translate?hl=&amp;sl=ru&amp;tl=en&amp;u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20081226145726%2Fhttp%3A%2F%2Fworkmaster.ru%2Findex.php%3Fp%3D8&amp;sandbox=1">Work
Master OS</a> - Russian multi tasking operating system.</li>
<li><a href="https://github.com/Palmr/gb-link-cable">Game Boy Link Cable
Breakout Board</a></li>
<li><a href="https://github.com/Tauwasser/GBCartFlasher">GBCartFlasher
firmware</a></li>
<li><a href="https://github.com/zephray/VerilogBoy/">VerilogBoy</a> -
Game Boy compatible console Verilog RTL implementation.</li>
<li><a href="https://github.com/furrtek/GBCamcorder">GBCamcorder</a> -
Lo-Fi portable video recorder using a GameBoy Camera cartridge.</li>
<li><a href="https://github.com/insidegadgets/GBCartRead">GBCartRead</a>
- Read ROM, Read RAM or Write RAM from/to a GameBoy Cartridge.</li>
<li><a href="https://github.com/insidegadgets/GBxCart-RW">GBxCart-RW</a>
- A device for reading game ROMs, save games and restoring saves for GB,
GBC and GBA carts from your PC via USB.</li>
<li><a href="http://www.its.caltech.edu/~costis/sgb_hack/">Dumping the
Super Game Boy Boot ROM</a></li>
</ul>
<h3 id="directories">Directories</h3>
<ul>
<li><a href="http://gbdev.gg8.se/files/">Archive of related
files</a></li>
<li><a href="https://github.com/gb-archive">The Game Boy Archive</a> - A
library of Game Boy related software, hardware and literature. Aimed to
mirror and preserve old and fragmented contributions from the last three
decades.</li>
<li><a href="https://github.com/gb-archive/salvage">The Game Boy Archive
- Salvage</a> - Historical archive of software, old articles, FAQs and
various documents.</li>
</ul>
<h3 id="websites">Websites</h3>
<ul>
<li><a href="http://devrs.com/gb">devrs.com/gb</a> - Old home of the
scene: examples, sources, complete documentation, guides, tutorials and
various tools.</li>
<li><a href="http://pdroms.de/news/gameboy/">pdroms.de</a> - Game Boy
releases.</li>
<li><a href="http://hhug.me">Handheld Underground</a> - Unlicensed
games, blog posts about Game Boy, home of the hhugboy emulator.</li>
</ul>
<h2 id="about">About</h2>
<h3 id="contribute">Contribute</h3>
<p>Take a look at <a href="CONTRIBUTING.md">Contribution
Guidelines</a>.</p>
<h3 id="license">License</h3>
<p>Licensed under <strong>GPLv3</strong>. See <a
href="LICENSE">LICENSE</a> for more information.</p>
<h3 id="acknowledgements">Acknowledgements</h3>
<p>Thanks to <a
href="https://github.com/avivace/awesome-gbdev/graphs/contributors">every</a>
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.</p>
<h3 id="sponsors">Sponsors</h3>
<p>Special thanks to our friends at <a
href="https://www.digitalocean.com/">DigitalOcean</a> and <a
href="https://incube8games.com/">Incube8 Games</a>, sponsoring the open
source activites of our Game Boy Development community.</p>
<p><a href="https://github.com/gbdev/awesome-gbdev">gbdev.md
Github</a></p>