← all projects

frog-adv-decomp

CPythonTypeScript

Byte-matching GBA decompilation driven by a multi-agent LLM pipeline

A matching decompilation of a Game Boy Advance title that rebuilds a byte-identical ROM from clean-room C source — with most of the work performed by an orchestrated fleet of LLM agents, each verifying its output against the original binary.

byte-identical ROM

Matched

739 / ~1,114

Functions in C

2,670

Commits

Highlights

  • 01The build produces a byte-identical ROM: built SHA-1 equals the original, zero diff bytes — the hardest correctness bar in decompilation.
  • 02A cost-tiered multi-model pipeline routes small functions to cheaper models and the hard tail to frontier models in goal mode, each agent isolated in its own git worktree with automatic verify-or-revert gating.
  • 03739 of ~1,114 functions decompiled to C (66%), across 2,670 fine-grained commits from the automated loop.
  • 04~50 custom Python tools form the harness: target ranking, function-boundary detection, per-symbol asm diffing, relocation checks — each linter encoding a real historical bug it now prevents.
  • 05Corpus-assisted matching mines C idioms from ~20 sibling GBA decompilations without copying code.
  • 06Strict clean-room discipline: no leaked source consulted, user-supplied SHA-verified ROM, pre-commit hooks guaranteeing no copyrighted bytes ever land in the repo.
Multi-agent decompilation workflow
Fifteen agents reclaiming assembly stubs into pure C matches, each in an isolated worktree.
Goal-mode agent match report
A goal-mode agent reporting a verified match: byte diff zero, ROM still identical.
full write-up in progress — detailed notes on this project are coming soon.