System-level deep-reads of classic game source — used as a stress test for LLM interpretation of low-level code. Existing disassemblies carry literal per-line comments (“Get the direction wanted”) but rarely explain what the code does at a system level: the data structures, state machines, hardware tricks, and design intent. This series writes that higher layer.
Links: LLM Grounding Problem · Transpilation as a Grounding Strategy · Planner-LM Composites · LLM Agents Across Strategic Games · project SDK → projects/CLAUDE.md
The series grew two different shapes, and forcing either into the other would sever the valuable edges. Per Author Web, Derive Hierarchy, both stay as links:
| Node | What it holds |
|---|---|
| comparisons/ | Adventure · Mappy · Utopia · M.U.L.E. — both arcs, one monorepo |
| koei/ | the shared KOEI toolchain — koei-nes + koei-snes, the engine reversal, the portable-VM finding |
| nes/ | 6502 + PPU substrate → tools/ + 7 title repos |
| snes/ | 65C816 substrate → tools/ + 2 title repos |
| civ-revolution/ | the next title by a different method — no decompilation available, so game-design analysis |
Why koei/ is a peer of nes/ and snes/ rather than a child: the engine is one thing carried
across two consoles, so filing the toolchain under either would split it — and would strand the
portable-VM finding, which exists only because both sides were reversed.
How well can an LLM interpret vintage assembly from a cold read? Assembly is the inverse of natural language — pure mechanical structure, no rhetoric, no narrative, no social cues. The seven-game LLM study named three structural failures (action bias, absent mechanical modeling, rhetorical contagion); assembly isolates mechanical modeling, so the failure mode would be unambiguous. It’s also a control case for the verification-layer thesis: the assembly source is the accumulated state, with no separate ground truth to drift from.
The answer the series produced: when the source is a weakly-grounded formal language (a bespoke
bytecode VM), the move isn’t “read it cold” — it’s build a deterministic transpiler to a grounded
language and let the model read that. vm_decompile.py (bytecode → C) is the existence proof, and
COBOL/legacy modernization is the real-world payoff. See
Transpilation as a Grounding Strategy.
6502 · nes · snes · assembly · reverse-engineering · games · llm-limitations