feat(reverse): trace the live original physics state
WineDbg changes the Win16 exception path and cannot capture continuous game state reliably. Add a Linux-only launcher that opts the normally running Wine process into same-user tracing without modifying TDKPIN.EXE, plus a sampler that locates the loaded DGROUP and game object from recovered signatures. The CSV trace exposes original millipixel positions, predicted positions, velocities, flipper state, and claw state whenever they change. This provides an external oracle for reconstructing and differentially testing the fixed- point mechanics instead of tuning the Rust approximation against screenshots. Test Plan: - `shellcheck original/tools/run_traceable_original.sh` -- passed - `ruff check original/tools/trace_original_state.py` -- passed - strict shared-library compile with `cc` warnings as errors -- passed - live Wine smoke trace and four-second charged launch capture -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -75,3 +75,21 @@ was not forced into a chosen terminal during the live session, so its claw
|
||||
parity evidence remains the decoded `1000:c79c`/`1000:eab1` control flow,
|
||||
millipixel/Real48 constants, sprite sheet, and deterministic Rust traces rather
|
||||
than a claimed live trajectory comparison.
|
||||
|
||||
## Live fixed-point tracing
|
||||
|
||||
Wine's remote debugger changes the Win16 exception path and is not suitable for
|
||||
continuous gameplay traces. On Linux, `tools/run_traceable_original.sh` starts
|
||||
the unmodified executable with a same-user ptrace opt-in. While it is waiting at
|
||||
the launcher, `tools/trace_original_state.py` locates the live DGROUP and game
|
||||
object by recovered binary/state signatures and records their fixed-point state:
|
||||
|
||||
```sh
|
||||
original/tools/run_traceable_original.sh
|
||||
original/tools/trace_original_state.py --duration 5 --output /tmp/launch.csv
|
||||
```
|
||||
|
||||
The sampler records original millipixel positions, predicted positions,
|
||||
velocities, flipper inputs and states, and claw animation state whenever any of
|
||||
them changes. It neither patches `TDKPIN.EXE` nor pauses Wine. The tracing helper
|
||||
is Linux-only development infrastructure; it is not part of the Rust replica.
|
||||
|
||||
Reference in New Issue
Block a user