All projects

Decompilation

Rock Band 3 (Wii) — decompilation & browser port

Drove a stalled community decompilation to ~99% of its game-and-engine target scope with a governed fleet of AI agents — and got the 2010 Wii game playing in a browser.

ActiveMar 2026 – Presentfreeqaz/rb3

Wii · PowerPC · WebAssembly · AI Agents · Game Preservation

Rock Band 3 guitar gameplay, venue and crowd included, rendered by the decompiled engine running as the native/browser port
Fuzzy match, target scope
99.3%
of 41,254 functions matched
31,995
Total commits
3,465
Browser WASM module
6.1 MB

Progress

Matched code (fuzzy, game + engine target scope)

99.3%

as of July 14, 2026

Matched code (fuzzy, game + engine target scope) over time, currently 99.3%0%50%100%Sep 2023Jul 2026Feb 2025
Matched code (fuzzy, game + engine target scope)MilestonesCommits (accent = major)
  • May 25, 2025: Community progress plateaus — Upstream target-scope match flattens near 83% and stays there for ten months.
  • Mar 19, 2026: AI agent fork begins — Project forked as a clean-room experiment in AI-agent-driven decompilation.
  • May 1, 2026: May surge (month) — 1,757 commits in May 2026 alone - nearly three times the entire 2.5-year community history.
  • May 27, 2026: Native port boots — Engine boots to song load on Linux in a single day of bring-up commits.
  • May 29, 2026: Full song plays in browser — WebAssembly build plays a song end-to-end in a browser tab.
  • Jun 10, 2026: WASM build hits 6.1 MB — Browser build optimized from 16.7 MB to 6.1 MB (1.5 MB compressed).
  • Sep 20, 2023: 5 commits — Community decompilation opens
  • Mar 19, 2026: 6 commits — Agent fleet's first day on the fork
  • May 26, 2026: 351 commits — Busiest day of the project
  • May 27, 2026: 79 commits — Native port bring-up in one day

Source: self-measured with objdiff-cli 4.2.3 (decomp-synth progress-history job 6d53): weekly upstream samples from 2024-09 + per-commit fork measurements; 0% start anchored to first community commit 2023-09-20 (build scaffolding only, no source files)

Rock Band 3 for the Wii runs on Harmonix’s Milo engine, compiled with Metrowerks CodeWarrior for PowerPC. A decompilation rebuilds the shipped binary from clean-room C++ until the compiler reproduces the original bytes — progress is a mechanically verified percentage, not an opinion. A community project had reached 628 commits over two and a half years before stalling. In March 2026 I forked it and pointed a fleet of AI coding agents at it.

Four months later the project stands at 99.3% size-weighted fuzzy match across its game and engine targets — the code the port actually reconstructs — and 81.9% fuzzy (63.2% byte-exact) across the entire ~10.9 MiB binary including untargeted SDK and third-party code, with 31,995 of 41,254 functions matched over 3,465 total commits. May 2026 alone produced 1,757 commits, nearly three times the entire prior community history. Along the way the project grew something the original never had: a native Linux/macOS port and an Emscripten/WebAssembly build that plays full songs in a browser tab, with the WASM module optimized down to 6.1 MB (1.5 MB compressed).

The hard problem was not decompilation per se — it was operating LLM agents as a production system. Roughly eight parallel agents run per “wave,” each scoped to a single translation unit with a strict do-not-touch contract, and every candidate win must pass a full-rebuild regression gate across all 41,254 functions before landing. That gate earns its keep: it caught a shared inline “improvement” that scored 97.4% standalone but silently regressed six other functions. A bail-verification protocol refuses to accept an agent’s “this is compiler noise” claim without a mechanical permuter run — which proved two of three such claims premature in one audit. Durable lessons, anti-pattern catalogs, and per-wave economics live in versioned agent memory, so transient sessions accumulate into lasting capability.

Demanding byte-exact matches also surfaced genuine bugs Harmonix shipped in 2010 — an inverted login-retry clause, transposed difficulty branches, a destructor bounds-checking against the wrong container — because a faithful decompilation must first notice them to reproduce them.

The project is active: structural decompilation is mature, and current work focuses on native/web rendering parity and the remaining compiler-forensics long tail. No game assets or copyrighted binaries are stored in the repository — this is preservation through original source.

Screenshots

Rock Band 3's note highway mid-song — full band on a pub-venue stage — rendered by the decompilation's native engine port at 1080p

Rock Band 3 (Wii) — decompilation & browser port | Free Wortley