awesome-gbdev
A curated list of Game Boy development resources such as tools, docs, emulators, related projects and open-source ROMs.
https://github.com/gbdev/awesome-gbdev
Last synced: 4 days ago
JSON representation
-
Homebrews
-
C
- Homebrew Hub - A community-led attempt to collect, archive and preserve every unlicensed and homebrew game released for Game Boy. Entries are playable online.
- Squishy the Turtle
- Super Princess' 2092 Exodus - ([ZGB engine](https://github.com/Zal0/ZGB/)).
-
Demos
- Back to Color
- beach-gbc
- CUTE DEMO
- `10 PRINT` Game Boy
- Roboto Demo
- matrix-rain-gb - A Matrix digital rain effect in assembler.
- GBVideoPlayer - 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.
- GBVideoPlayer2 - The second iteration of the above demo, which increases the resolution, adds *stereo- PCM audio, and introduces video compression*.
-
GB Studio
- Soul Void - Interactive horror fiction.
- Deadeus
- SUPER IMPOSTOR BROS.
-
-
Introduction
-
Programming
-
ASM
- gb asm tutorial - Step by step tutorial, building several ROMs to accompany its explanations.
- Assembly tutorial by David Pello - Good document to learn to produce working asm code for gb. Brief explanations of many important topics. Many examples with commented source code.
- Making an Empty Game Boy ROM (in Wiz)
- Making Art for the Game Boy
- Beginner's Guide to Reverse Engineering GB - Some starting tips on disassembling and reverse engineering.
- FlappyBoy: Making a simple Game Boy Game
- Super Game Boy development - Step by step tutorial to implement Super Game Boy features (frame and palettes).
- GameBoy programming tutorial: Hello World! - Step by step tutorial.
- OAM DMA tutorial - Example of how to use OAM DMA in assembly.
- dev'rs ASM section - A lot of working demos and sources.
- Nitty Gritty Gameboy Cycle Timing
- Mode3 Sprite Timing
- GameBoy Color DMA-Transfers v0.0.1
- STAT interrupt timings
- Video Timing
- Game Boy Assembly Language Primer - Simple template code with memory defines, copy routines and IBM font tilemap.
- Vim syntax file for the Game Boy assembler RGBASM - Vim syntax highlighting for RGBDS assembly.
- Vim syntax file for RGBDS - Another Vim syntax highlighting file for RGBDS assembly.
- sublime-rgbds - A Sublime Text 3 package for RGBDS, including syntax highlighting and some completion snippets.
- Assembly tutorial by David Pello - Good document to learn to produce working asm code for gb. Brief explanations of many important topics. Many examples with commented source code.
- assemblydigest - Exploring Game Boy programming techniques:
- DMGreport - Game programming tutorials in assembly.
- Game Boy Assembly Programming for the Modern Game Developer - An e-book about making Game Boy games in Assembly.
- 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"
- Nitty Gritty Gameboy Cycle Timing
- Mode3 Sprite Timing
- GameBoy Color DMA-Transfers v0.0.1
- STAT interrupt timings
- rgbds-template - Basic hello-world example for Game Boy using RGBDS.
- Game Boy Assembly Language Primer - Simple template code with memory defines, copy routines and IBM font tilemap.
- bootstrap.gb - An example Game Boy project.
- Gameboy Boilerplate - Boilerplate project to move quicker into the actual assembly code for your game.
- GingerBread - A software library for making your own Game Boy games. It is made to be used alongside the book [Game Boy Assembly Programming for the Modern Game Developer](https://github.com/ahrnbom/gbapfomgd) which also doubles as documentation.
- gb-vwf - Library to print variable-width text, comes with a demo.
- gb-boilerplate - A template for starting Game Boy projects, providing a Makefile for infrastructure.
- gb-starter-kit - An expansion on the above, including base library code as well to get started faster.
- gb-template - A template with basic functions such as joypad input, DMA transfers, and map/tile data loading.
- gbz80-highlight - Notepad+- and gedit syntax highlighting files for RGBDS assembly.
- Z80 Assembly support for Visual Studio Code
- rgbds-vscode - Visual Studio Code language extension for RGBDS GBZ80 Assembly.
- rgbds-mode - Emacs major mode for RGBDS assembly.
- gb asm tutorial - Step by step tutorial, building several ROMs to accompany its explanations.
- dev'rs ASM section - A lot of working demos and sources.
- hardware.inc - Standard include file containing Game Boy hardware definitions for use in RGBDS projects.
- gb asm tutorial - Step by step tutorial, building several ROMs to accompany its explanations.
- Making an Empty Game Boy ROM (in Wiz)
- Making Art for the Game Boy
- FlappyBoy: Making a simple Game Boy Game
- Super Game Boy development - Step by step tutorial to implement Super Game Boy features (frame and palettes).
- Vim syntax file for the Game Boy assembler RGBASM - Vim syntax highlighting for RGBDS assembly.
-
C
- 8-Bit Wonderland - Well-written introductory document about how the Game Boy works and how to start developing working code for it.
- How to Write a Simple Side Scrolling Game - Old (but still relevant) tutorial.
- Just another simple tutorial
- GBDK Tutorial - Fairly minimal game demo for getting started with GBDK.
- GBDK Sprite - Presents a workflow for getting multiple sprites to display and animate.
- GBDK Color - Extends your knowledge of basic spriting on the Game Boy by adding colors to sprites, backgrounds and the window layer.
- GBDK Joypad - Details the use of the joypad with GBDK.
- Game Boy home of Flavor - Some full games and sources.
- GBDK Configuring and Programming Tutorial - Configuring GBDK, Using Tiles, Colliding Sprites, GBTD, GBMB, Memory Management and ROM Banking.
- GBDK Programming Video Tutorials - A series of video tutorials introducing beginners to programming with GBDK.
- Larold's Jubilant Junkyard - A collection of detailed GBDK-2020 based tutorials.
- Grooves Game Boy Programming - A complete set of lessons about implementing various game mechanics in a Game Boy game.
- Just another simple tutorial
- GBDK Programming Video Tutorials - A series of video tutorials introducing beginners to programming with GBDK.
- Larold's Retro Gameyard - A collection of detailed GBDK-2020 based tutorials.
- Just another simple tutorial
- Game Boy home of Flavor - Some full games and sources.
- How to Write a Simple Side Scrolling Game - Old (but still relevant) tutorial.
- GBDK Sprite - Presents a workflow for getting multiple sprites to display and animate.
- GBDK Color - Extends your knowledge of basic spriting on the Game Boy by adding colors to sprites, backgrounds and the window layer.
- GBDK Joypad - Details the use of the joypad with GBDK.
- GBDK Programming Video Tutorials - A series of video tutorials introducing beginners to programming with GBDK.
-
-
Related projects
-
Directories
- Archive of related files
- 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.
- The Game Boy Archive - Salvage - Historical archive of software, old articles, FAQs and various documents.
- Archive of related files
-
Post processing
- GB Studio - Drag and drop game creator with simple, no knowledge required, visual scripting.
- Resources to get started
- Dedicated Discord
- Digitized Speech in Game Boy Games
- Sniffing Game Boy serial traffic with an STM32F4
- Virtual Game Boy Printer with an STM32F4
- Printing on the Game Boy Printer using an STM32F4
- Programming Game Boy Chinese cartridges with an STM32F4
- Pokemon Pocket Computer: - What is it and how to use it to make cheat codes.
- Booting the Game Boy with a custom logo - Bypassing the Nintendo logo check.
- 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.
- Work Master OS - Russian multi tasking operating system.
- Dumping the Super Game Boy Boot ROM
- Work Master OS - Russian multi tasking operating system.
- Lets Build a Platformer Game! - A course designed to teach anyone how to create a platformer game using GB Studio 4+.
- 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.
- Ostrich - A Game Boy Sound System player written in Swift.
- mGB - A Game Boy cartridge program that enables the Game Boy to act as a full MIDI supported sound module.
- GBVisualizer - 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.
- ArduinoGameBoy - Arduino based Game Boy cartridge reader and writer.
- gameboy-brainfuck - Brainf*ck interpreter.
- gbfk - Brainf*ck interpreter, with input.
- gb-save-states - Patches to add save state support to Game Boy games when playing on the original hardware.
- gbcpu - A CPU and peripherals implementing the Game Boy instruction set and functionality.
- 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.
- liblsdj - Utility library for interacting with the LSDj save format (.sav), song files (.lsdsng) and more.
- lsdpatch - Tool for modifying samples, fonts and palettes on LSDj ROM images.
- Game Boy video effects - Some little experiments using the STAT interrupt to do funny video manipulations.
- gbos - A basic operating system for the Game Boy.
- Game Boy Link Cable Breakout Board
- GBCartFlasher firmware
- GBCamcorder - Lo-Fi portable video recorder using a GameBoy Camera cartridge.
- GBCartRead - Read ROM, Read RAM or Write RAM from/to a GameBoy Cartridge.
- GBxCart-RW - A device for reading game ROMs, save games and restoring saves for GB, GBC and GBA carts from your PC via USB.
- sm83-render - A 3D model of the Game Boy CPU layout in Blender.
- Work Master OS - Russian multi tasking operating system.
- visual-sm83 - A visual transistor level simulation of the Game Boy CPU core in JavaScript, running in a browser.
- Dedicated Discord
- Digitized Speech in Game Boy Games
- part 1
- VerilogBoy - Game Boy compatible console Verilog RTL implementation.
- GBCamcorder - Lo-Fi portable video recorder using a GameBoy Camera cartridge.
-
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.
- 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.
-
-
Reverse Engineering
-
Demos
- Reverse engineering Kirby's Dreamland 2
- DMA hijacking - A simple technique that allows you to run custom code in most GB/SGB/CGB games, provided you have an ACE exploit.
- Disassembling Link's Awakening - A series of blog posts about disassembling Link's Awakening DX.
- pokemontools - a python module that provides various reverse engineering components for various Pokémon games.
- Reverse Engineering the GameBoy Tetris
- Reverse engineering Kirby's Dreamland 2
- Reverse Engineering a Gameboy ROM with radare2 - A walkthrough to reverse engineer a Game Boy ROM challenge using radare2.
- Disassembling Link's Awakening - A series of blog posts about disassembling Link's Awakening DX.
-
Game Disassemblies
- Pokémon Red/Blue
- Pokémon Crystal
- Pokémon Yellow
- Pokémon Gold and Silver
- Pokémon Pinball
- Pokémon TCG
- pokegold-spaceworld - Pokémon Gold and Silver 1997 Space World demo.
- Oracle of Ages
- Tetris - Complete Tetris disassembly.
- FX Hammer
- Harvest Moon 3
- Final Fantasy Adventure
- The Jungle Book
- Final Fantasy Adventure
- Link's Awakening DX
- Oracle of Ages
-
-
Software Development
-
Assemblers
- RGBDS - Assembler and linker package. [Documentation](https://rgbds.gbdev.io).
- ASMotor - Assembler engine and development system targeting Game Boy, among other CPUs. Written by the original RGBDS author. [Documentation](https://github.com/asmotor/asmotor/tree/develop#further-reading).
- wla-dx - Yet Another GB-Z80/Z80/... Multi Platform Cross Assembler Package. [Documentation](http://www.villehelin.com/wla.txt).
- ASMotor - Assembler engine and development system targeting Game Boy, among other CPUs. Written by the original RGBDS author. [Documentation](https://github.com/asmotor/asmotor/tree/develop#further-reading).
-
Compilers
- API docs: Getting Started
- Documentation, links and tools
- 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.
- RGBDS-Live - In-browser coding environment to try out RGBDS.
- tniASM - Macro Assembler.
- gbasm-rs - An opinionated Rust based compiler for Game Boy z80 assembly code.
- API docs: Getting Started
- Examples
- Documentation, links and tools
- 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 - A JavaScript based compiler for Game Boy z80 assembly code.
- tniASM - Macro Assembler.
- Assembler - Assembler written in Swift.
- llvm-gbz80 - gbz80](https://github.com/Bevinsky/clang-gbz80) - Clang/LLVM port to the GBZ80 CPU (similar to the deprecated [euclio/llvm-gbz80](https://github.com/euclio/llvm-gbz80)).
- gbdk-go - A compiler translates Go programs to C code. The output C code is built into GB ROM by GBDK.
- Rust-GB - A compiler and library that enable the development of GB ROMs using Rust.
- 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.
- gbdk-go - A compiler translates Go programs to C code. The output C code is built into GB ROM by GBDK.
- RGBDS-Live - In-browser coding environment to try out RGBDS.
- gbasm-rs - An opinionated Rust based compiler for Game Boy z80 assembly code.
-
Emulators
- BGB - Powerful emulator and debugger. Provides an accurate hardware emulation.
- 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](https://marketplace.visualstudio.com/items?itemName=emulicious.emulicious-debugger).
- SameBoy - Accurate emulator with a wide range of powerful debugging features.
-
Programming Languages
Categories
Sub Categories
Keywords
gameboy
40
game-boy
14
reverse-engineering
11
disassembly
10
pokemon
8
gbz80
8
assembly
7
assembly-language
6
gameboy-color
6
gameboy-emulator
6
gbdk
6
gameboy-advance
4
emulator
4
rgbds
4
gbdev
4
homebrew
4
game-boy-color
3
gameboy-camera
3
game
3
sdcc
2
tilemap
2
demoscene
2
arduino
2
cartridge
2
graphics
2
tilesets
2
demo
2
gb
2
game-tools
2
gimp
2
gba
2
gimp-plugin
2
tilemap-editor
2
game-development
2
game-boy-advance
2
rust
2
sm83
2
retrogaming
1
dmg
1
dumper
1
harvest-moon
1
des
1
dino
1
chrome-dinosaur-game
1
extracts-photos
1
chrome-dino-game
1
gameboy-printer-emulator
1
libpng
1
gameboy-printer
1
Z80
1