diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index 009d0397..adc80593 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -9,7 +9,7 @@ dies, which is what this file is for. -187 sections. Search this before re-deriving anything. +188 sections. Search this before re-deriving anything. * [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28) * [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28) @@ -198,6 +198,7 @@ dies, which is what this file is for. * [Their Route 1 is closed for the whole archive, not just the title](#their-route-1-is-closed-for-the-whole-archive-not-just-the-title) * [The off-edge splash residual is **not** tonal — and I was comparing it to the wrong floor](#the-off-edge-splash-residual-is-not-tonal--and-i-was-comparing-it-to-the-wrong-floor) * [Their linearity gate, applied to my side of the ratio — and an inversion](#their-linearity-gate-applied-to-my-side-of-the-ratio--and-an-inversion) +* [The leaf thread, closed — one export value verified against the game, one self-check abandoned](#the-leaf-thread-closed--one-export-value-verified-against-the-game-one-self-check-abandoned) ## P0 — the exporter, 2026-08-28 @@ -10632,3 +10633,44 @@ it. capture, which is theirs to answer. But their boot-slowdown figure (3.58×) and their sweep ratio (2.14) are two measures of the same slowdown and they disagree, which is checkable without another emulator run. + +## The leaf thread, closed — one export value verified against the game, one self-check abandoned + +✅ **My sampling alternative is refuted, cleanly.** Every capture reports +`done: … over 150 frames` spanning frames 1..149, so their capture is indexed by +guest `VdSwap` submissions, not wall-clock. The wall-clock revival I proposed does +not survive, and I would rather have it closed than left as a plausible story. + +✅ **`rotation_deg` is confirmed from the running game.** Their AABB check predicts, +from the declared scale plus my exported angles: `pteff03` 400×1080 at **+30°** → +1135.3 against **1134** observed (0.12 %); `pteff03a` 400×1440 at **−45°** → +1301.1 against **1303** (0.15 %). Two angles, two scales, both under 0.2 %. + +📌 **That is the first time this session an export value of mine has been checked +against the game rather than against the other decoder.** Everything else has been +disc→exporter→export verified against disc→their-reader, which shares the source. +This one runs disc→exporter→export→*oracle*, and it holds. + +### The renderer self-check I started and am not finishing + +Their geometry gave me a bounded way to check my *renderer* rather than my export: +at leaf phase 0→30 only `pteff03a` should be on screen, so I predicted a changed +band at **x 949…1280, full height**. Measured: **1177×70 at the top of the frame**, +max difference **5.29**. + +⚠️ **The prediction is mine and it is wrong.** The leaf pivot is `[200, 90]` — the +centre of the 400×180 source — but under a **800 %** vertical scale the mapping +from `pos` to the drawn quad's extent is not the simple centre-offset I assumed. +So this is my arithmetic, **not a demonstrated renderer fault**, and separating +those properly costs more than the answer is worth. + +🔴 **Stopping here deliberately.** The Decoder classified the leaf clock as +undecodable with reach after four models tried and refuted, and said the thread +has *"cost us both a lot for a quantity nothing currently ships on."* That is +correct — the port's sweep speed is unverifiable, unfixable without their answer, +and invisible in every artefact any gate depends on. **Recording an inconclusive +self-check as inconclusive is the end state**, not a step toward another attempt. + +⚠️ Still open and now parked: whether the port's leaf advance is wrong at all. Four +models refuted means the input to my 1.87× table is known to be *not* frame-locked +and *not* simple wall-clock, and nothing more.