pokered
Disassembly of Pokémon Red/Blue
A complete, compilable disassembly of Pokémon Red and Blue for the original Game Boy, lets you study how the games work, document bugs, or create modified ROM hacks from the reconstructed Assembly source code.
This repository contains a disassembly of the original Pokemon Red and Blue games for the Game Boy, released in the late 1990s. A disassembly means that someone took the finished game files and worked backwards to reconstruct the original source code in a human-readable form. The result is an Assembly language codebase that, when compiled, produces byte-for-byte identical copies of the original game cartridge files.
Assembly is the lowest-level programming language, sitting just above the raw instructions that a processor executes. Writing or reading it requires understanding the specific chip inside the original Game Boy hardware. The project targets that chip and produces the exact same game ROM files that Nintendo shipped, verified by matching cryptographic checksums.
The main use of a disassembly like this is to let people study how the original games work, find and document bugs, or create modified versions of the games. The repository links to a wiki with tutorials explaining how to make changes, a symbols file listing the names of functions and variables found in the code, and a set of tools for working with Game Boy assembly code.
To build the ROM files from the source code, you follow setup instructions in a separate install document. The project is part of a broader effort by the pret community, which has produced disassemblies of many other Pokemon games and Game Boy titles. There is a Discord server where contributors and enthusiasts discuss the project.
Where it fits
- Study how the original Pokémon Red game was programmed to understand Game Boy assembly and retro game architecture.
- Create a ROM hack of Pokémon Red by modifying the source code and compiling a custom game cartridge image.
- Find and document known bugs from the original game by tracing the exact Assembly code that causes them.