WORKBENCH / EVIDENCE FIRST

Stop guessing.
Start comparing.

A practical, standard-library-powered way to inventory a game, pin the original build, map functions to Rust and compare deterministic state traces. A passing test is a bounded result, not a whole-game compatibility claim.

01 / MEASURED PORTING

One feature.
One oracle. One verdict.

Give the agent a stable source of evidence and a next actionable gap.

01 / DISCOVER

Inventory

Identify formats and code-bearing files. Hash the exact original binary without executing it.

inspect · inventory · pin
02 / TRACK

Port ledger

Map original entry points to Rust functions and distinguish implemented, wired and trace-compared results.

ledger add · set · audit
03 / EXECUTE

Two real processes

Run a deliberately selected original-side probe and Rust probe with identical scripted inputs.

oracle_runner.py --compare
04 / VERIFY

First mismatch

Reject empty traces and stale evidence. Compare actual events with exact numbers by default.

parity · report · audit
02 / REPRODUCIBLE BY DESIGN

Readable commands.
Real exit codes.

The CLI requires no REA account or GPU. Ghidra, REA and Unicorn remain optional external tools used only when they improve the specific investigation.

EXAMPLE / TERMINALPYTHON 3.9+
python3 scripts/workbench.py doctor
python3 scripts/workbench.py pin \
  --original /games/Game.exe \
  --output reference.lock.json

python3 scripts/oracle_runner.py \
  scenario.json \
  --output ./capture \
  --allow-execute-original --compare

python3 scripts/workbench.py ledger \
  --db port-ledger.sqlite audit

These commands show the interface; they do not claim a game has been tested here.

03 / GUARDRAILS

No green checkmark without evidence.

Separate environments. Both processes get distinct basic scratch folders. This is not a security sandbox. Run untrusted programs only in a VM.

Scope the claim. Lock file hashes and passing traces prove only a specific recorded comparison. They do not establish that a trace was independently captured or a game is 1:1 complete.

Preserve the original. Game assets, binaries and decompiler dumps stay on the user's local machine, outside Git history.

Full technical guide ↗