port: the splash ramp is the DECLARED ramp -- shape checked, not just motion

motion-census says in its own header that it cannot do this: "a wrong ramp that
moves every frame passes here." So having restored the motion, this checks the
shape.

Pre-registered from the disc. palogo_sqex_eff declares 0:0 -> 15:255 -> 30:212
-> 45:0, so three straight runs with breakpoints at 15 and 30, the middle slope
~1/5 the magnitude of the last, and the rise ~1.2x the last.

Measured from a FILM of a real boot, on the companion's top strip
(686x11+299+319) which no other element overlaps, so it is that element's own
alpha rather than a composite:

  units  5.6-13.0   +0.00509 /unit   rise
  units   16-28     -0.00090 /unit   gentle fall
  units   31-43     -0.00423 /unit   steep fall
  unit    46.4      0.00000          gone

Breakpoints land where declared: the rise stops between 13.0 and 16.1, the
gentle fall steepens between 28.4 and 31.4.

  ratio middle:last   declared 0.203   measured 0.213   (within 5 %)
  ratio rise:last     declared 1.20    measured 1.20    (exact)

So the port interpolates piecewise-linearly across the declared segments, which
is what the Decoder independently measured the game doing -- 28 distinct alphas
over 28 consecutive presents, modal steps -3 and -14 against predicted -2.87 and
-14.13.

⚠️ RATIOS, NOT ABSOLUTES, and deliberately. The strip mean is an alpha scaled by
the sprite's own pixels; its absolute value carries the texture. A ratio between
segments divides that out, which is the only reason the shape is checkable from
a composite at all.

What this does NOT establish, stated rather than implied: that it LOOKS right --
three instruments have now agreed with a picture a human called wrong, and a
fourth agreeing does not change the standing of the fifth. Nor anything about
the developer splash's three pairs. Nor the absolute alpha.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AHUQvXGyNcKonSEWsgWcX
This commit is contained in:
Sylpheed port agent
2026-09-02 16:03:42 +00:00
parent 8477242656
commit 2f9f21d7c1

View File

@@ -0,0 +1,74 @@
# The splash: frozen, then fixed, and now checked for SHAPE as well as motion
**Status:****animates, and the ramp matches the declared curve.** Written
2026-09-02 by the Port; HANDOFF on this branch answers `9ca1eb5`.
The 2026-09-02 play-test found the splash frozen. The cause and the fix are in
the commit history; this page is the part that comes after — **is the animation
now the right animation?** `motion-census` says explicitly that it cannot answer
that: *"a wrong ramp that moves every frame passes here."*
## Pre-registered (R2)
`palogo_sqex_eff` declares `0:a=0 → 15:a=255 → 30:a=212 → 45:a=0` — three
segments, three gradients:
| segment | declared |
|---|---|
| 0 → 15 | **+17.0** per unit |
| 15 → 30 | **2.87** per unit |
| 30 → 45 | **14.13** per unit |
> So a film should show three straight runs with breakpoints at **15** and
> **30**, the middle slope about **1/5** the magnitude of the last, and the rise
> about **1.2×** the last.
## Measured, from a film of a real boot
Region: `686x11+299+319` — the companion's top strip, which **no other element
overlaps**, so the number is that element's own alpha and not a composite.
| view units | strip mean | slope/unit |
|---|---|---|
| 5.58 | 0.02809 | |
| 10.00 | 0.05086 | **+0.00515** |
| 13.04 | 0.06611 | **+0.00503** |
| 16.12 | 0.07530 | +0.00298 ← crossing the breakpoint |
| 19.21 | 0.07260 | **0.00087** |
| 25.38 | 0.06695 | **0.00092** |
| 28.39 | 0.06482 | 0.00071 |
| 31.39 | 0.05719 | 0.00254 ← crossing the breakpoint |
| 34.39 | 0.04471 | **0.00416** |
| 40.39 | 0.01910 | **0.00428** |
| 43.39 | 0.00655 | 0.00418 |
| 46.39 | 0.00000 | gone |
**Breakpoints land where declared**: the rise stops between 13.0 and 16.1, the
gentle fall steepens between 28.4 and 31.4.
| ratio | declared | measured |
|---|---|---|
| middle : last | 0.203 | **0.213** |
| rise : last | 1.20 | **1.20** |
Within 5 % and exact respectively. **The port interpolates piecewise-linearly
across the declared segments** — which is what the Decoder independently measured
the game doing (28 distinct alphas over 28 consecutive presents, modal steps 3
and 14 against predicted 2.87 and 14.13).
⚠️ **Ratios, not absolutes, and deliberately.** The strip mean is an alpha
scaled by whatever the sprite's own pixels are; its absolute value carries the
texture. A ratio between segments divides that out, which is why the shape is
checkable from a composite at all. Anyone quoting 0.00515 as an alpha is
misreading it.
## What this still does not establish
* That it **looks** right. Three instruments have now agreed with a picture a
human called wrong, and the fourth agreeing does not change the standing of
the fifth. A play-test is the check.
* Anything about the **developer** splash's three logo/companion pairs. One
element, one screen.
* The **absolute** alpha. The shape matches; whether the port's alpha equals the
game's at a given unit is `verify-capture`'s question, and it answers 0.01 %
at the settled pose only.