Nintendo Game Boy Reverse Engineering
Edit on Github | Updated: 26th April 2026Introduction
The original Game Boy (DMG) and Game Boy Color (GBC) are good reverse-engineering targets because the software stack is still small enough to reason about directly, while the hardware is rich in cartridge mappers, boot-time behaviour, audio quirks, and late-1990s toolchains. They sit at a useful midpoint between 8-bit home consoles and later handhelds, so platform details are still visible instead of disappearing behind large SDKs and operating systems.
This page serves two roles. It groups the RetroReversing posts related to the Game Boy family, and it curates a set of external references that are worth keeping close while you work through ROMs, schematics, tools, or source code.
Quick Technical Reference
The quick reference below is useful when choosing an emulator, debugger, or disassembly target:
| Property | Notes |
|---|---|
| CPU | Sharp LR35902, an 8-bit CPU with i8080 and Z80 ancestry |
| Display | 160x144 LCD with tile- and sprite-based graphics |
| RAM | DMG has 8 KB work RAM and 8 KB VRAM; GBC expands the memory available to software |
| Audio | Four hardware sound channels |
| Cartridges | Commonly include ROM plus mapper hardware such as MBC controllers, battery-backed RAM, or RTC logic |
Hardware
Understanding the platform before opening a ROM saves time. The Game Boy family is simple enough to study at board-level, but it still has enough cartridge and accessory variation that hardware context matters.
Hardware Architecture
If you want a broad architectural overview before going deeper, Copetti’s write-up is one of the best starting points:
Boot ROM
The boot ROM is one of the first platform-specific code paths worth understanding. It establishes initial hardware state, checks cartridge header data, and controls the startup sequence:
Sharp LR35902 Microprocessor
The Sharp LR35902 is close enough to Z80-family code to feel familiar, but different enough that you should treat it as its own target architecture. In practice it sits somewhere between the i8080 and the Z80 and is not binary-compatible with either:
Schematics
If you want to work from recreated board-level documentation, Gekkio’s schematic set is a strong reference for the Pocket hardware revision:
The Ultimate Game Boy Talk
The video below is still one of the best broad introductions to the hardware and the programming model, especially if you want one long-form overview before drilling into specific subsystems:
The Game Boy, a hardware autopsy
These two videos are worth keeping together because they focus on the physical hardware itself rather than the higher-level architectural write-ups above:
Development
Understanding the official toolchain helps when you encounter build artifacts, linker conventions, or assembly layout in old projects.
Development Kit Hardware
Nintendo sold dedicated development hardware for Game Boy projects, and the physical setup explains a lot about how teams built, tested, and flashed handheld software in the early 1990s:
Software Development Kit
Alongside the hardware, Nintendo also shipped a software development kit with assemblers, linkers, and related utilities:
Assembly Language
The Game Boy CPU uses its own instruction set variant, so it helps to keep a Game Boy specific opcode reference nearby instead of assuming normal Z80 compatibility:
Reverse Engineering
If you want to begin with projects that already expose structure, build systems, or platform specific research, start with the material below.
Pokemon Red and Blue
The Pokemon Reverse Engineering Team (PRET) reconstructed Pokemon Red and Blue into retail matching assembly, making it one of the most useful Game Boy case studies for understanding large commercial codebases:
Link’s Awakening
The Link’s Awakening disassembly effort produced a steady stream of technical write-ups that are still useful when you want to see how a polished commercial Game Boy title is structured internally:
Looney Tunes Carrot Crazy
If you want a more focused example of reversing a single Game Boy Color title, this write-up is a good smaller target:
Exclusive Games as Research Targets
Platform exclusives are often better long-term preservation targets because they are less likely to have cleaner ports or modern rereleases. These two category pages are simple discovery lists rather than technical references, but they are useful when you need candidate ROMs to investigate:
Source Code
Official or near-official source releases are especially valuable on Game Boy because they expose real memory layouts, tool conventions, and cartridge assumptions that decompilation alone can hide.
Mr Do! for Original Game Boy
The released source code for Mr Do! is a useful reference point for how a commercial Game Boy project was organised in 1990:
Games
Some game-specific anecdotes are worth keeping because they point to development constraints, unusual implementation tricks, or particularly good analysis material.
Alien 3
Alien 3 is a useful reminder of how compressed licensed handheld schedules could be. Jas Austin has said the Game Boy version was written in about five weeks 1.
Fastest commercial game I've ever written? That would have been Alien3 on Game Boy. Done in about 5 weeks :) with @recluse_games #gamedev
— Jas Austin (@IamXERO) February 1, 2013
R-Type
According to Jas Austin, the Game Boy version of R-Type was largely built from memory after arcade research trips rather than from shared code or art assets 2.
He also described being hired after showing a one-week demo to B.I.T.S, which is a useful glimpse into how quickly Game Boy contract work could move in that era 2.
I agree, it's amazing some of the lengths we have to go to when we didn't have code or assets. For R-Type I did most of it from memory after visits to the Trocadero in London. And I didn't live in London.
— Jas Austin (@IamXERO) April 18, 2020
The company B.I.T.S obtained the license to develop the Game Boy version of the game but required a programmer to work on the title. Jas Austin heard about this through his agency and travelled to London to meet up, he impressed them so much that he was given a development kit and a deadline of a week to come up with a demo. He did such a good job he got a permanent job at B.I.T.S 2.
I hid a version of John Conway's game of Life in R-Type on the Game Boy.
— Jas Austin (@IamXERO) April 5, 2021
Austin later mentioned hiding an implementation of John Conway’s Game of Life inside the cartridge 3, and also shared source graphics for the level 3 ship by Mark Jones 4.
Source graphics for Game Boy R-Type Lv3 ship. By Mark Jones... #ScreenshotSaturday24YearsAgo pic.twitter.com/RsKlc0rQOE
— Jas Austin (@IamXERO) April 25, 2015
How Pokemon Gold & Silver Work (Tribute to Satoru Iwata)
TheHappieCat explains the technical wizardry Satoru Iwata employed to fit the Kanto region into Pokémon Gold & Silver. The video provides a primer on low-level assembly programming and memory alignment, illustrating how efficient data packing and optimization allowed for the game’s massive scope on the limited Game Boy Color hardware.
Peripherals and Accessories
The wider Game Boy ecosystem matters for reverse engineering because several accessories introduce their own protocols, bootstrap behaviour, or unusual cartridge side hardware.
Mobile Adapter GB
Nintendo released a Japanese accessory called the Mobile Adapter GB which connected a Game Boy Color to a mobile phone. Only a small set of games used it, making it a good example of an obscure platform feature that remained dormant for years:
Super Game Boy
The video below explains how the Super Game Boy embeds Game Boy hardware inside a Super Nintendo cartridge, creating a hybrid environment with its own timing and presentation quirks:
Wide Boy 64
The video below covers the Wide Boy 64, an official but non-retail device used by developers and press to run Game Boy and Game Boy Advance software through an N64 based setup:
Game Boy Printer
The Game Boy Printer is relevant because it exposes another side of the accessory protocol stack, and because several games shipped explicit printing features rather than treating it as a camera-only novelty. Pokemon Yellow, Pokemon Gold, and Pokemon Silver all used it for game-specific output such as Pokedex stickers 5.
GB Booster
The GB Booster was an unlicensed Nintendo 64 accessory in the same broad space as the Super Game Boy, but built outside Nintendo’s official hardware ecosystem. Two short references are useful if you want to document it further:
- Chris McCovell - Notes and photos covering the hardware and behaviour of the device.
- GameHacking.org Wiki - A general reference page for the accessory.
Datel Game Booster and GameStudio
The video below shows Datel’s PlayStation Game Booster:
The Image below shows the later GameStudio accessory for PlayStation 2 also by Datel:
Dance Dance Revolution Controller for GBC
Konami’s Dance Dance Revolution controller for the Game Boy Color is a useful example of how far the accessory ecosystem stretched beyond normal link cable peripherals:
Sound
The audio hardware is one of the most technically interesting parts of the platform, especially once you move beyond music drivers and start looking at the analogue side.
Game Boy Color Audio Chip Reversing
Ken Shirriff’s reverse engineering of the Game Boy Color audio amplifier chip is one of the best examples of taking the handheld beyond emulator level understanding and into silicon level analysis. The chip contains three power op-amps for the speaker and headphone paths, so the article is useful if you want analogue details rather than just register level behaviour:
I reverse-engineered the audio chip in the #Nintendo Game Boy Color. It contains three power op-amps for the speaker and headphone channels. This 1998 chip is built from about 100 NPN and PNP transistors. Die photo from @johndmcmaster. Article & schematic:https://t.co/EhsVogAJPl pic.twitter.com/J6CYPsOdaz
— Ken Shirriff (@kenshirriff) May 2, 2020
Synthic
Synthic played a large set of Game Boy games in a custom headless emulator and tracked the audio registers into a text format. That data was then used to train a machine learning model to generate new Game Boy music:
Tools and File Formats
If you are tracing ROM headers, cartridge metadata, or patch formats, the material below is worth keeping close.
File Formats
Start here if you want a broader survey of Game Boy file structures before drilling into specific ROM hacks or tools:
gbtoolsid
When dealing with homebrew or unlabeled ROM sets, gbtoolsid is a practical first pass because it can often identify the toolchain used to build a Game Boy ROM:
DMG-palette-patcher
MrBlinky has released a Python tool for patching Original Game Boy (DMG) ROMs to use specific color palettes when played on a Game Boy Color. The script works by modifying the ROM’s header-specifically the license code and title checksum-to trick the Game Boy Color’s boot ROM into automatically selecting one of 45 built-in color palettes, such as the classic grey theme, rather than the default blue-greenish hues.
gb-save-states
gb-save-states is interesting because it applies patch based save state support to commercial games running on original hardware, which makes it a good example of practical ROM level instrumentation:
Blem! PlayStation Emulator for the GB
Blem! was a prank ROM that pretended to boot a PlayStation emulator on the Game Boy. The joke was a reference to the Bleem! PlayStation emulator, and it was notable enough to show up in GBX issue 3 in a short discussion of Game Boy emulation on PC and Mac 6. It is not technically important in the same way as the tools above, but it is a useful reminder that handheld homebrew culture also produced jokes, hoaxes, and magazine folklore around emulation.
All Posts
The Nintendo Gigaleak preserves the AGB boot ROM material in two useful forms. Inside other/agb_bootrom it survives as a real Subversion repository, and separately the leak also includes agb_bootrom_trunk.zip, an... ...
The Nintendo Gigaleak preserves the CGB boot ROM material in two useful forms. Inside other/agb_bootrom it survives as a compact SVN repository, and separately the leak also includes cgb_bootrom_trunk.zip, an... ...
Introduction The Game Boy Reversing Emulator (RE) is a fork of the libRetro Same Boy emulator tailored for reverse engineering. The main aim is to generate information that will be... ...
Official Game Boy Software Development Kit (by Intelligent Systems) The official Game Boy development kit was developed by Intelligent systems and sold with their development kit hardware such as the... ...
This post covers all the hardware developers used to create games for the original Dot Matrix Game Boy (DMG) and Game Boy Color (GBC) and some were even used for... ...
Introduction This page documents the official release of the assembly source for Ocean Software’s Mr Do! port to the Game Boy. It focuses on what the code is doing (maps,... ...
Sprite Tile editing with Tile Layer Pro If you have ever wondered how graphical rom hacks are made this is for you! This should work for most early games such... ...
On the 11th April 2020 the source code to the original generation of Pokemon games was released to 4chan as osrc.zip. This zip archive contained a password protected zip file... ...
Introduction The Pokemon Reverse Engineering Team (PRET) have managed to pull off a marvellous achievement, they have fully reverse engineered Pokemon Red and Blue back into Z80 assembly code 1.... ...
Super Game Boy SDK Sample and BIOS Files This page covers the sgb folder preserved in the Nintendo Gigaleak inside: other/CGB AZL__ゼルダの伝説 夢を見る島DX Source/Disk1/ゼルダの伝説_JP3_US3_EU2/DEMO_zelda/sgb Although it was found inside the... ...
Have you ever seen Twitch Plays Pokemon (TPP) and wondered how it actually works? How does typing comments in a twitch stream result in the player moving in the original... ...
The Zelda Links Awakening source code was released in the original Gigaleak inside dmg.7z, itself stored inside Other.7z. This part of the leak contains much more than a single source... ...
Archive Source This article analyzes the Link’s Awakening 2D art and graphics workspace preserved in the Gigaleak - specifically from the NEWS_04 archive, a 96 MB Nintendo NEWS workstation backup.... ...
The CGB.7z section of the Nintendo Gigaleak preserves Game Boy Color-era material for two projects: The Legend of Zelda: Link’s Awakening DX and Hamtaro 2. For Zelda, this archive is... ...
The Z80 Microprocessor: Pioneering Gaming and Beyond The history of the Z80 microprocessor is a tale of innovation and influence that left an indelible mark on the world of computing... ...
References
-
Jas Austin on Alien 3 for Game Boy taking about five weeks - Twitter/X ↩
-
Terminator 2, R-Type, Altered Beast with Jas Austin - The Retro Hour EP320 - YouTube ↩ ↩2 ↩3
-
Jas Austin on hiding Conway’s Game of Life inside R-Type - Twitter/X ↩
-
Jas Austin sharing R-Type source graphics by Mark Jones - Twitter/X ↩
-
GBX issue 3 (September 2001) page 11 ↩