From 2a17fbeeefad7c2f841fcafdb55ef6c4edf817de Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sun, 23 Aug 2026 20:41:06 +0200 Subject: [PATCH] docs(audit): align validation claims with current evidence The reconstruction ledger still described an obsolete function count, claimed local Windows/macOS cross-target checks despite those standard libraries being absent, and attributed lock, claw, drain, and repeated-launch coverage to the current autoplay trace. Those statements were stronger than the current artifacts prove after the corrected trajectory. Record the final C ledger counts, distinguish configured native CI from local Linux production validation, add both stopped-Wine slingshot probes, and route claw/panel/lock/drain evidence to the deterministic and focused tests that actually cover it. Test Plan: - `rumdl check --flavor commonmark RECONSTRUCTION.md` -- passed - `git diff --cached --check` -- passed --- tdkpin-rs/RECONSTRUCTION.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/tdkpin-rs/RECONSTRUCTION.md b/tdkpin-rs/RECONSTRUCTION.md index 174c2d4..ce8b191 100644 --- a/tdkpin-rs/RECONSTRUCTION.md +++ b/tdkpin-rs/RECONSTRUCTION.md @@ -10,10 +10,10 @@ a9022f1894e3e6e21fc42e8f6c932f7c549ca77f63aaa0c488bb9d55d9d0174c TDKPIN.EXE f1d9ac980c7bfba5dc53eaa9e7cb2c3cd9b82f879ee8962ad40bf863d641bb49 MMTIMER.DLL ``` -The Ghidra recovery covers all 301 named NE exports plus 62 internal function -entries. Its raw output and coverage tables remain beside the binary, so later -work can be checked against the same evidence rather than against this Rust -implementation. +The reconstruction ledger verifies all 391 ordinary in-image functions, six +shared/overlapping entries, and all 301 NE entry points. Its raw output and +coverage tables remain beside the binary, so later work can be checked against +the same evidence rather than against this Rust implementation. ## Coverage by subsystem @@ -50,10 +50,10 @@ decoded, build-ready subset; it does not replace that evidence archive. - Static coverage: all intended decoded visual/audio resources are preserved; the recovered static collision layout is represented in Rust. -- Build coverage: `cargo check`, unit tests, and strict Clippy complete on the - host. Cross-target checks pass for `x86_64-pc-windows-gnu` and - `x86_64-apple-darwin`; CI is configured to build and test natively on Linux, - macOS, and Windows. +- Build coverage: the production build, unit tests, and strict Clippy complete + on the Linux host. This checkout does not have the Windows or macOS Rust + standard-library targets installed; the repository CI is configured to run + check, tests, and Clippy natively on Linux, macOS, and Windows. - Runtime coverage: the Linux executable was launched through the real window backend, the attract screen was inspected, a game was started, a ball was launched, collision scoring was observed, and a rendered frame was captured. @@ -63,16 +63,21 @@ decoded, build-ready subset; it does not replace that evidence archive. controlled terminal-18 claw capture and release. A current one-substep record-2 probe proves special-respawn publication `(17000,23000)/(0,3040)` followed by the same response's `(16698,21191)/(-302,-1809)` continuation. - Rust tests assert these exact live states. + Stopped one-substep probes cover both relative slingshot chains: record 57 + produces `(77369,356597)/(1839,1832)` with spin `-5.28`, and record 72 + produces `(233253,358494)/(-2095,1669)` with spin `+5.46`. Rust and C tests + assert these exact live states. - Deterministic mechanics coverage: named launcher, flipper, and all four claw terminal scenarios are driven by a 120 Hz validation clock while production physics accumulates the recovered 100 Hz substep. Seeded runs use the original Borland random stream. Traces include the last collision-object id and can export the logical 640x460 render target. -- End-to-end gameplay coverage: seeded autoplay charges each launcher ball and - operates both flippers from ball position. The two-minute acceptance run - covers repeated launches, both flippers, targets, bumpers, lock holes, a claw - capture/release pair, and drains while checking every state for finite values. +- End-to-end gameplay coverage: seeded autoplay charges and launches a ball, + operates both flippers from ball position, and covers target and bumper hits + for two minutes while checking every state for finite values. Separate named + deterministic scenarios cover all claw terminals, launcher/flipper edges, + target rotation, the full panel, and effect-seven multiball; focused game + tests cover drains and lock-hole completion. - Semantic boundary: collision, random, spin, fixed-point state, detail callback batching, and flipper publication now use the reconstructed Borland/Win16 timing model. Native texture drawing replaces Win16 GDI calls while preserving