port: their Route 1 is closed for the whole archive, and the exit ramp fooled me again

They closed three routes to pinning the absolute leaf rate. Route 1 -- a top-level
element moving in the same capture as a leaf, so fps cancels -- failed on the
settled title.

Searched all 16 screens for a top-level element still moving at its settle
instant. Two hits, pttitle on extras and extras_jp, and both are false positives:
it arrives, holds from t=24, and the post-settle motion is the exit ramp at t=52
to 58, which plays only when the screen leaves. Third time the exit ramp has
fooled a census of mine, after counting it as the end of visibility and after
making every normal element look like a flash.

The negative generalises their finding: excluding exits, no top-level element on
any of the 16 screens moves at rest. holding clamps every top-level element at its
own hold and the only post-settle keyframes are exits, so no capture of any screen
in this archive can carry a top-level clock alongside a free-running leaf. Route 1
is closed structurally, not just empirically.

Also states something about the port's design I had not: everything that moves on
a settled screen is nested. The three free-running clocks -- looping focus record,
spin, leaf -- are all sub-records, which is now explained rather than observed.

Also marks the 1.87x table conditional, since its input is the rate they cannot
pin.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
Sylpheed port agent
2026-08-30 16:41:18 +00:00
parent 3f2dd46487
commit 88b75f4e35

View File

@@ -9,7 +9,7 @@ dies, which is what this file is for.
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
184 sections. Search this before re-deriving anything.
185 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)
@@ -195,6 +195,7 @@ dies, which is what this file is for.
* [Localising the 1.92 splash floor: it is glyph edges, and off them the port is ~1 RMSE from the game](#localising-the-192-splash-floor-it-is-glyph-edges-and-off-them-the-port-is-1-rmse-from-the-game)
* [Their draw-stream result checked against my export — three confirmations and one correction](#their-draw-stream-result-checked-against-my-export--three-confirmations-and-one-correction)
* [Nested leaves may advance at half rate — a quantified defect in shipped output](#nested-leaves-may-advance-at-half-rate--a-quantified-defect-in-shipped-output)
* [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)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -10452,8 +10453,14 @@ path reads that same `time_units`. So:
| `pteff03` | 10.0 s | **18.7 s** | port **1.87×** too fast |
| `pteff03a` | 12.0 s | **22.4 s** | port **1.87×** too fast |
That is a visible defect in what the boot sequence ships — the title's sweeps
cross in half the time the game takes.
⚠️ **CONDITIONAL, and the condition is not met.** That table inherits an absolute
rate the Decoder has since tried three ways to pin and could not: a top-level
clock in the same capture (nothing top-level moves on a settled screen — that is
what settled means), a fit in the transition captures (rms residuals 26.70/16.75
px against 147 px of travel: scatter, not a line), and the emulator's own log
(fps not printed). So **1.87× is what follows IF 1.07 is the true rate**, and
1.07 is exactly the quantity that is not established. It is recorded as an
exposure to check, not as a defect to fix.
⚠️ **Not changed, and not only out of caution.** `keyframe_units_per_second: 60` is
authored from a measurement off the running game and governs *everything* —
@@ -10480,3 +10487,36 @@ other — real and useful, since it rules out a per-record quirk — but the abs
28.5 fps gives **1.053**, and the gap between that and 1.070 is about the size of
the frame-rate uncertainty. So the measurement may be saying *"one unit per game
frame"* exactly, with the residual being how fast the emulator actually ran.
## Their Route 1 is closed for the whole archive, not just the title
They tried three ways to pin the absolute rate and closed all three. Route 1 —
find a top-level element moving in the *same capture* as a leaf, so frames-per-second
cancels in the ratio — failed on the settled title because *"nothing top-level
moves on a settled title; that's what settled means."*
I searched all 16 screens of my export for a top-level element still in motion at
its settle instant. **Two hits, `pttitle` on `extras` and `extras_jp` — and both
are false positives.** Its keyframes are `(16, y90, a0) (20, y98, a128) (24, y100,
a255) (52, y100, a255) (58, y90, a0)`: it arrives, holds from t=24, and the motion
my detector saw after the settle instant is the **exit ramp**, which plays only
when the screen leaves.
⚠️ **Third time the exit ramp has fooled a census of mine** — after counting it as
the end of visibility in the transient sweep, and after it made every normal
element look like a flash. It is the single most reliable false positive in this
export and I still did not anticipate it.
✅ **But the negative result generalises their finding.** Excluding the exits,
**no top-level element on any of the 16 screens moves at rest.** That is not an
accident of the title: `holding` clamps every top-level element at its own hold,
and the only keyframes past the settle instant are exit ramps. So **no capture of
any screen in this archive can carry a top-level clock alongside a free-running
leaf** — Route 1 is closed structurally, not just empirically, and no further
screen is worth their time trying.
📌 It also says something about the port's own design that I had not stated:
**everything that moves on a settled screen is nested.** The three free-running
clocks I enumerated — looping focus record, spin, leaf — are all sub-records, and
that is now explained rather than observed. Their plate finding is the same shape:
`ptbtn00` is a one-shot fade and the repeating pulse comes from its nested `.rat`.