The project
This adapter comes out of a campaign teaching fleets of AI coding agents to
reconstruct shipped game binaries byte-for-byte — matching
decompilation, the console-preservation community's gold standard: rewrite
C++ until the original vintage compiler, at the original flags, reproduces
the retail machine code exactly. In that campaign, agent swarms byte-matched
over 44,000 functions of a stripped retail Xbox 360 binary in about ten
weeks — with every proposal judged by the real compiler and
objdiff, never by a model.
decomp-synth is the search-and-ML side of that system: an engine that
searches behavior-preserving C++ rewrites against the real build, and mines
its own verified attempts into training data. This adapter is the broadest
cut of that flywheel so far — and part of the project's practice of
publishing research artifacts with their evidence stated plainly, including
the null results. The design rule throughout: models propose, deterministic
oracles dispose — byte-exact recompilation is the only terminal judge.
Background reading, in order:
Honest status notes
Published as a research artifact with its evidence stated plainly:
- No measured win over v14. In a paired 4-model run on the multi-turn
feedback instrument (118 start states, K=2 replicas), v16 does not separate
from v14 at any rank: witness deltas +2/+1/+2, p = 1.0 / 1.0 / .77.
- The rank ladder is flat. r32/r64/r128 trained on the byte-identical
corpus measure within noise of each other (r64−r32 −1, p=.77; r128−r32
exactly 0, p=1.0), replicating a flat NLL ladder — adapter capacity is not
the 9B ceiling, which is why this release is the r32.
- Single training seed (seed=42, all rungs) — even the flat verdict is
provisional on magnitude under the project's multi-seed rule.
- The corpus is 100% single-turn while the target instrument is 4-turn —
a known mismatch; the multi-turn supply line is separate, in-flight work.
- The instrument itself was live in the same cells: real compiler feedback
beat derangement-scrambled feedback in all six arm×replica cells
(strongest: +8 discordant vs 0, p=.0078).
What it does bring over v14: ~2.2× the training rows, the proposal-model and
synthesis task shapes, and broader substrate coverage (below).
Model facts
Table | |
|---|
| base | Qwen/Qwen3.5-9B (apache-2.0) |
| method | LoRA r=32, α=64, dropout 0.05, bf16 |
| corpus | 8,735 chat-rendered rows (v16_v5chat.jsonl, sha dc2f1a4e…) |
| trained | 2026-08-28 |
| format | chat (Qwen chat template) |
Training sources
Rows are derived from the change histories of these community decompilation
projects (measured per-row attribution of the corpus):
- rb3-xenon and
dc3-decomp — Xbox 360 MSVC (≈7,600 rows)
- zeldaret/tww and
zeldaret/tp — GameCube mwcc (≈570 rows)
- DarkRTA/rb3 — Wii mwcc (≈510 rows)
- plus ≈1,260 rows from a private Halo: Combat Evolved Anniversary (Xbox
360) reconstruction effort, not publicly linkable
See each linked project for its own terms. The corpora themselves are not
published; the shipped PUBLISHED.json pins the corpus file's sha256 as
provenance.
How to use it
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-9B", dtype="bfloat16", device_map="auto")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-9B")
model = PeftModel.from_pretrained(base, "freeqaz/decomp-synth-lifter-v16-v5chat-qwen3.5-9b-lora")
Chat template. Prompts follow the project's repair / synthesis / proposal
formats; like every adapter in this family, it is a proposal engine for a
compile-and-score loop — sample multiple candidates, compile each with the
target project's real toolchain, and let objdiff judge. Byte-exact is the
only acceptance criterion. If your use case is the 4-turn feedback loop,
prefer v14-evalformat
(no measured v16 win there); reach for v16 when you want the synthesis-from-stub
and edit-proposal task shapes or the broader substrate coverage. At 9B it
fits a single 24 GB GPU in bf16; vLLM with --enable-lora serves it well.
The adapter family
Table with columns: adapter, base, format, role| adapter | base | format | role |
|---|
| v10 | Qwen3.6-27B | RAW | single-turn matcher, reference 27B |
| gtp0c | Qwen3.8-27B | RAW | v10 recipe verbatim on the newer base (matched pair) |
| v13-chain r32 | Qwen3.5-9B |
Integrity
PUBLISHED.json (shipped) carries per-file sha256 written by the training
job at publish time. Two internal metadata files it pins
(train_summary.json, artifact-manifest.json) are retained in the
project's artifact store but not shipped here — they carry training-box
paths. adapter_config.json was rewritten post-training to the HF base id;
original bytes at provenance/adapter_config.orig.json.
License
Adapter weights: Apache-2.0. A model trained to reproduce shipped game
code can reproduce shipped game code — that is its purpose; decompilation
projects operate in a long-standing community norm of clean-room
reconstruction for interoperability and preservation.