diff --git a/docs/port/HANDOFF.md b/docs/port/HANDOFF.md index a81a5642..5349822a 100644 --- a/docs/port/HANDOFF.md +++ b/docs/port/HANDOFF.md @@ -23,6 +23,48 @@ There is no fourth kind. If a row says *measured* or *undecodable*, the port is human can see it is a human decision, so that when it is later decoded the authored version can be deleted. +## ✅ 2026-08-30 — the sweep leaves: what is settled, and what is not + +Closing a long thread so its conclusions are reachable here rather than only in +messages. Detail and data: +[`data/title-sweep-drawn-at-rest.txt`](../re/data/title-sweep-drawn-at-rest.txt), +[`data/ptloop-leaf-extent.txt`](../re/data/ptloop-leaf-extent.txt). + +✅ **The game draws `pteff03` / `pteff03a` on a settled title, and they free-run.** +A draw capture of the settled title, plate-pulse gated, shows two quads taller +than the screen in every one of 132 frames, sweeping in opposite directions. So a +settled screen is not a static screen, and any score against a single capture of +one carries a phase term. + +✅ **Your `rotation_deg` is confirmed by the ORACLE, not by my decoder.** +30° on +`pteff03` and −45° on `pteff03a` predict a rotated quad's AABB height at **1135.3** +and **1301.1**; the draw stream measures **1134** and **1303**. Both under 0.2 %, +two angles, two scales. ⚠️ This is the only value of yours this session verified on +a path that ends at the running game rather than at my reader — everything else +agreed because both routes read the same disc with the same understanding. + +✅ **The leaves are identical on entries 4, 5 and 7** — title, main menu, JP title. +Same leaf names, cycle spans (600 / 720), x tracks (−639…1521 / −839…1721), scales +and parent rest position. + +❔ **How the game advances them is UNDECODABLE with reach.** Four models, each +refuted by a measurement: frame-locked (px/frame changed 2.14× under +`--framerate_limit`), wall-clock (px/frame moved the wrong way), fixed wall-clock +sampling (every capture is indexed by guest `VdSwap`, 150 frames spanning 1..149), +and per-UI-drawing-frame (ratio 1.57, still not invariant). Three measures of one +slowdown — 3.58× on the boot, 2.14× per frame, 1.57× per appearance — and no two +agree. + +🔴 **So keep `keyframe_units_per_second` where it is.** Your 1.87× table has an +input now known to be *wrong* (not frame-locked) without being known to be +anything else, which is a worse status than unpinned and the right one to record. + +🟡 **And one narrowing that is not mine:** my linearity gate fails on `pteff03`, +whose declared track is perfectly linear, and passes on `pteff03a`, which is +slightly non-uniform. The curvature is therefore not in the disc — it is in my +measurement or in how the game advances the record. You found that from the export +side without a run. + ## ✅ 2026-08-30 — the record-layout fix is now confirmed AGAINST THE GAME, not just internally Your md5 finding closed the loop on where `title_jp`'s 74 507 pixels come from. I diff --git a/docs/re/METHOD.md b/docs/re/METHOD.md index 46b691ae..45676011 100644 --- a/docs/re/METHOD.md +++ b/docs/re/METHOD.md @@ -376,6 +376,30 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the or exclude `$$`. Three instances in one session is not a footnote — reach for `-C` first and use `-f` only when the name genuinely is not enough. +* **Two paths that share a source are one witness.** Almost every cross-check in + this project runs *disc → exporter → export*, verified against *disc → our + reader* — two routes that agree because they read the same bytes with the same + understanding. When that understanding is wrong they agree anyway, which is how + this corpus produced a build-ordinal error where "everything still validates", a + two-era render comparison with the same binary on both sides, and a rate + "confirmation" that was a prediction 20 % low meeting a measurement 50 % high. + ⚠️ **The chain that counts ends at the oracle**: *disc → exporter → export → + **the running game***. The one instance this week was the sweep leaves' rotation + — `rotation_deg` +30 / −45, read from the file, predicting a rotated quad's AABB + height at 1135.3 and 1301.1 against **1134** and **1303** measured in the draw + stream, both under 0.2 %. Two angles, two scales, one independent endpoint. + Before quoting an agreement, ask **where the two paths diverge** — if it is after + the fact in question, they are one witness wearing two coats. + +* 📌 **A refuted model is a result, and four of them are a strong one.** The + leaf's clock ended *undecodable with reach* after frame-locked, wall-clock, + fixed-wall-clock-sampling and per-UI-drawing-frame were each refuted **by a + measurement**. That is a firmer statement than any of the four would have been if + one had happened to fit — because the failure this corpus keeps hitting is a + model that fits for the wrong reason and nobody checks. Record the closed routes + with the number that closed each one; a negative with reach is deliverable, and a + fit without a residual is not. + ## Runtime / emulator * **Look at the PNG** — and check its dimensions.