re: the decoder eras DO change pixels -- 7 of 16 bundles, and title_jp is one
The reach test I deferred twice. sylpheed-port tested three screens across the stale and fixed ui_layout.rs eras, found 0 differing pixels, and concluded the eras explain nothing. Built both eras from source and rendered EVERY composable GP_TITLE bundle through each. 7 of 16 differ. Entries 0-6, 8 and 9 are byte-identical -- which includes title (4), main_menu (5) and extras (6), so the port's result reproduces for the screens they picked. Entry 7 (title_jp) differs by 74 507 px, RMSE 12.409; the two loading bundles by 49 771 px, RMSE 10.078; the four splashes by 23-33k px at RMSE 0.94-1.78. So "the eras explain nothing" is true for three screens and false for the archive. It is specifically false for title_jp, which is one of the two rows their check-all now allows BY NAME with the reason "rest-pose sparkles". Their measurement of that screen was 0 and mine is 74 507; recorded with exact flags as a disagreement for them to check, not adjudicated. Noted that their branch's ui_layout.rs is the stale one (20 ins / 488 del against the pin), so a binary built from their workspace HEAD is the stale era. Two controls, both run first. The binaries genuinely embody the eras: build 5's pteff00.prm reads `rest t=70 [12 70 80 -]` stale against `rest t=12 [0 12 70 80]` fixed. And the renderer is deterministic: same binary, same flags, twice, 0 differing pixels on entries 7 and 12 -- without which every number is noise. Mechanism on entry 7 is a single element, ptlogo_eff3.t32, rest (108,72) -> (98,42). That is the element MISSION.md and ui-resting-pose.md already name as THE plateau-less rest() discriminator, so the era difference on the JP title is our existing open question surfacing rather than a new one. And a trap: entries 10-15 differ by up to 49 771 px with NO rest position change. The rest selection moves to a keyframe at the same (x,y) with a different scale and alpha. My first extraction compared only the rest (x,y) column and would have reported a difference with no cause. A pose is position and scale and alpha. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
46
docs/re/data/decoder-eras-all-16-builds.txt
Normal file
46
docs/re/data/decoder-eras-all-16-builds.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
# The two decoder eras, rendered: all 16 composable bundles of GP_TITLE.
|
||||
# 2026-08-30.
|
||||
#
|
||||
# STALE era = origin/main (ui_layout.rs: "Keyframe time, or None for the
|
||||
# group's last frame" -- a pose's time read from the NEXT record)
|
||||
# FIXED era = formats-pin-2026-08-30 == this branch (a pose's time PRECEDES it)
|
||||
#
|
||||
# Both built from source; renders are `screen render --all --build N --primitives`.
|
||||
#
|
||||
# CONTROL 1 -- the two binaries really do embody the two eras:
|
||||
# stale rest (0,0) t=70 [12:0,0 70:0,0 80:0,0 -:0,0]
|
||||
# fixed rest (0,0) t=12 [0:0,0 12:0,0 70:0,0 80:0,0] (build 5, pteff00.prm)
|
||||
# CONTROL 2 -- the renderer is deterministic: same binary, same flags, twice,
|
||||
# entry 7 -> 0 differing px, entry 12 -> 0 differing px.
|
||||
|
||||
entry what differing px RMSE max|d|
|
||||
0 loading 0 0.000 0
|
||||
1 loading 0 0.000 0
|
||||
2 plate 0 0.000 0
|
||||
3 plate 0 0.000 0
|
||||
4 title 0 0.000 0
|
||||
5 main_menu 0 0.000 0
|
||||
6 extras 0 0.000 0
|
||||
7 title_jp 74507 12.409 233 <-- DIFFERS
|
||||
8 main_menu_jp 0 0.000 0
|
||||
9 extras_jp 0 0.000 0
|
||||
10 splash publisher 32842 1.767 35 <-- DIFFERS
|
||||
11 splash developer 23201 0.942 31 <-- DIFFERS
|
||||
12 loading (dressed) 49771 10.078 229 <-- DIFFERS
|
||||
13 splash publisher twin 31708 1.782 35 <-- DIFFERS
|
||||
14 splash developer twin 23201 0.942 31 <-- DIFFERS
|
||||
15 loading twin 49771 10.078 229 <-- DIFFERS
|
||||
|
||||
7 of 16 bundles differ between the eras; 16-7 are byte-identical.
|
||||
|
||||
# MECHANISM, entry 7 (title_jp): exactly ONE element's rest POSITION moves.
|
||||
# stale 8 ptlogo_eff3.t32 ... rest (108,72)
|
||||
# fixed 8 ptlogo_eff3.t32 ... rest (98,42)
|
||||
# ptlogo_eff3.t32 is the element MISSION.md and ui-resting-pose.md already
|
||||
# name as THE plateau-less rest() discriminator. 74 507 px, RMSE 12.4.
|
||||
|
||||
# MECHANISM, entries 10-15: NO rest position changes at all. The rest
|
||||
# SELECTION moves to a different keyframe which happens to sit at the same
|
||||
# (x,y) with a different SCALE and ALPHA -- e.g. pgloading_delta.t32 holds
|
||||
# (120,560) at 0%,0% a=0 / 75%,75% a=128 / 96%,96% a=192. Comparing the
|
||||
# 'rest (x,y)' column alone says nothing changed; the pixels say otherwise.
|
||||
@@ -55,10 +55,57 @@ which is easy to read as *"I am current"* when it means *"main has nothing"*.
|
||||
fix moves **times**, not pixels. Same signature as the `.tbm` finding and the
|
||||
stale-`sylpheed-cli` finding.
|
||||
|
||||
## 🔴 The eras DO change pixels — on 7 of 16 bundles
|
||||
|
||||
**Done 2026-08-30**, after being deferred twice.
|
||||
[`data/decoder-eras-all-16-builds.txt`](data/decoder-eras-all-16-builds.txt).
|
||||
Both eras built from source and every composable `GP_TITLE` bundle rendered
|
||||
through each.
|
||||
|
||||
| entry | what | differing px | RMSE |
|
||||
|---|---|---|---|
|
||||
| 0–6, 8, 9 | loading, plate, **title**, **main_menu**, **extras**, the JP menu pair | **0** | 0.000 |
|
||||
| **7** | **`title_jp`** | **74 507** | **12.409** |
|
||||
| 10, 13 | publisher splash + twin | ~32 000 | 1.77 |
|
||||
| 11, 14 | developer splash + twin | 23 201 | 0.942 |
|
||||
| 12, 15 | dressed loading + twin | 49 771 | 10.078 |
|
||||
|
||||
⚠️ **`sylpheed-port` tested `title`, `main_menu` and `title_jp` and found 0
|
||||
differing pixels.** Two of those three (4 and 5) are in the identical nine, so
|
||||
their result is reproduced. **`title_jp` is not** — I measure 74 507 pixels and
|
||||
RMSE 12.4 under `screen render --all --build 7 --primitives`. That is a real
|
||||
disagreement, not a rounding one, and it matters because `title_jp` is one of the
|
||||
two rows their `check-all` now allows **by name**. Either the render flags differ
|
||||
or one of the two binaries was not what it was believed to be — the second is a
|
||||
trap this corpus has hit three times. It is theirs to check; I am recording the
|
||||
number and the flags, not adjudicating their tree.
|
||||
|
||||
**Controls, both run before believing any of it:**
|
||||
|
||||
* the two binaries genuinely embody the two eras — build 5's `pteff00.prm` reads
|
||||
`rest t=70 [12 70 80 -]` stale against `rest t=12 [0 12 70 80]` fixed;
|
||||
* the renderer is **deterministic** — same binary, same flags, twice, 0 differing
|
||||
pixels on entries 7 and 12. Without that, every number above is noise.
|
||||
|
||||
### The mechanism, and a trap inside it
|
||||
|
||||
On **entry 7** exactly one element moves: `ptlogo_eff3.t32`, rest `(108,72)` →
|
||||
`(98,42)`. That is the element [`MISSION.md`](../port/MISSION.md) and
|
||||
[`ui-resting-pose.md`](structures/ui-resting-pose.md) already name as **the**
|
||||
plateau-less `rest()` discriminator — so the era difference on the JP title is
|
||||
precisely the open question, not a second unrelated one.
|
||||
|
||||
⚠️ On **entries 10–15 no rest position changes at all**, yet they differ by up to
|
||||
49 771 pixels. The rest *selection* moves to a different keyframe that sits at the
|
||||
**same (x,y) with a different scale and alpha** — `pgloading_delta.t32` holds
|
||||
`(120,560)` at `0%,0% a=0`, `75%,75% a=128`, `96%,96% a=192`. **Comparing the
|
||||
`rest (x,y)` column says nothing changed.** My first extraction did exactly that
|
||||
and would have reported a difference with no cause. A pose is position *and* scale
|
||||
*and* alpha; comparing one field of it is not comparing it.
|
||||
|
||||
## What this does not settle
|
||||
|
||||
* **Whether the two eras render identically beyond three screens.** I set out to
|
||||
test that disc-wide and stopped when the ref check turned up something larger; a
|
||||
build-and-compare across all 12 `GP_TITLE` builds is still not done.
|
||||
* **Why the `title_jp` measurement disagrees with the port's.** Recorded above with
|
||||
the exact flags; not chased into their tree.
|
||||
* **Why 171 commits are unmerged**, and whether that is deliberate. Merging is a
|
||||
human's call — this page only records that the state exists and what it costs.
|
||||
|
||||
Reference in New Issue
Block a user