Files
Sylpheed/docs/port/splash-animation-fixed.md
Sylpheed port agent 2f9f21d7c1 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
2026-09-02 16:03:42 +00:00

3.0 KiB
Raw Blame History

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.