re: close the sweep-leaf thread -- deliver it to HANDOFF, and record why one

check counted more than the others

An answer not reachable from HANDOFF is not delivered, and this thread lived in
messages and docs/re/. Delivering it: the leaves ARE drawn and free-run on a
settled title, so a settled screen is not a static screen; the leaves are
identical on entries 4, 5 and 7; how the game advances them is undecodable with
reach, four models each refuted by a measurement; and keyframe_units_per_second
should stay put because the port's 1.87x table has an input now known to be wrong
rather than merely unpinned.

METHOD gains the lesson sylpheed-port named, which outlives the thread. Almost
every cross-check here runs disc -> exporter -> export against disc -> our reader:
two paths that agree because they read the same bytes with the same
understanding, and that agree anyway when the understanding is wrong. That is how
this corpus produced a build-ordinal error where everything still validated, a
two-era 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, and the single instance this week was the leaves'
rotation: +30 / -45 from the file predicting AABB heights of 1135.3 and 1301.1
against 1134 and 1303 in the draw stream. 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.

Also records that a refuted model is a result: four refutations, each with the
measurement that closed it, is firmer than any one of them fitting would have
been, because the failure this corpus keeps hitting is a model that fits for the
wrong reason and nobody checks.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-30 17:10:22 +00:00
parent 348e5d8281
commit 71a9e5ad56
2 changed files with 66 additions and 0 deletions

View File

@@ -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

View File

@@ -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.