docs(reverse): decode claw release arithmetic

Correct the coordinate model from guessed 16.16 values to the millipixel arithmetic shown by the 16-bit division routine.

Decode the Borland Real48 direction constants and record the exact position and velocity tables used by every claw terminal.

Test Plan:
- git diff --cached --check
- Compare constants against segment 1 disassembly at 9bca and eab1
This commit is contained in:
2026-08-22 18:44:50 +02:00
parent 99a6082b2a
commit 75c2464e72
2 changed files with 62 additions and 17 deletions
+9 -4
View File
@@ -42,17 +42,22 @@ renamed.
destination is `(238,47)`; closing rows begin at source y=0 and opening rows
at source y=148.
- Claw capture/contact uses sound 2015; release uses sound 2016.
- The release-coordinate projection is `(raw + 500) / 1000` for rendering;
decoded physics centers are `(258,78)`, `(270,94)`, `(275,97)`, and
`(325,92)` for the four selectable terminal frames.
- The speed scalar is 3800 millipixels per tick. Its Borland Real48 direction
constants are decoded for all release cases in the readable C companion.
## Explicit pending evidence
- Decode the runtime/FPU conversion used to project the claw's raw 16.16
release coordinates and non-frame-18 velocity into playfield pixels.
- Recover or differentially measure the timer cadence used for each claw frame.
- Differentially verify the recovered 10/20/30/40/50 ms timer choices against
live original captures; the Rust port intentionally uses the default 30 ms
claw cadence independently of render rate.
- Transcribe the full fixed-point flipper impulse calculation, then compare it
with the Rust floating-point collision response.
- Validate the reconstructed sequences against deterministic Rust traces and
captured frames from the original executable.
Those four items are intentionally not counted as semantic parity. The readable
Those items are intentionally not counted as semantic parity. The readable
C file preserves their raw constants and labels the unresolved conversion so a
later implementation cannot silently turn an estimate into claimed evidence.