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:
74
docs/port/splash-animation-fixed.md
Normal file
74
docs/port/splash-animation-fixed.md
Normal 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.
|
||||
Reference in New Issue
Block a user