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.

CorePython
ObservationSameBoy / C adapters
ReconstructionRGBDS
StageResearch prototype
A memory bank helps identify which data an address refers to.

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.

All projects

From understanding a handheld’s systems to building an original game for them.

Related: Dungeon Shift