Game Boy Color / Python / Research prototype
GBC Decompiler.
I’m exploring how the bytes inside a Game Boy Color game can become readable code and editable artwork. This research prototype combines an understanding of the handheld’s memory with observations of a game running in an emulator.
0x4000Which bytes?
Bank A → example data 01 02 03
Bank B → example data A1 B2 C3
A bank is part of an address
Context is identity.
The Game Boy Color switches between memory banks as a game runs. That means the same address can point to different data at different moments. Following those switches helps connect an instruction to the part of the game it belongs to.
Looking at both the stored code and the running game gives two useful views of the same puzzle: what the program contains and how it behaves.
Small editable steps
Reconstruct. Then compare.
The next step is to turn a small part of the game into something editable, such as an assembly routine or a tile of artwork. Rebuilding it connects an edit back to the game.
That cycle makes the work interesting: understand a piece, make a small change, and see how it fits into the whole.

Research in progress
Making the pieces readable.
I’m developing the reconstruction a small piece at a time, with an eye toward clearer code, editable artwork, and better explanations of how the handheld works.
The project brings together my interest in classic games and the tools that help us understand software. There is plenty left to explore, from the way a routine moves data to the way a scene is drawn.
From understanding a handheld’s systems to building an original game for them.
Related: Dungeon Shift


