re: the forced-backdrop span -- 256 vs 211 is a bundle mismatch, and the hold

decides 55% of verdicts

The port implemented the forced-backdrop rule and reported a discrepancy:
palogo_eff0.prm at 256 opaque instants against this corpus's 211.

There is no discrepancy. palogo_eff0.prm appears on BOTH splashes -- the
publisher (entries 10, 13) runs to t=255, giving 256 instants; the developer
(11, 14) runs to t=210, giving 211. Same definition, different bundle. The page
now names the entries so it cannot recur.

The definition, stated: the span is 0..=max keyframe time over every element in
the build, and an element HOLDS its final pose past its own last keyframe --
which is what pose_at does, and which is decoded rather than assumed (a group
holds at its last keyframe rather than looping; the declared +0x08 never falls
short of the last keyframe, the slack being that hold).

The port's instinct that the hold was load-bearing was right. Over the 130
keyless full-screen primitives with an opaque interval:

  * span = the header's declared +0x08          ->  0 verdicts change
  * span = the primitive's own last keyframe    -> 72 change
  * elements GONE after their last keyframe     -> 72 change

So the hold decides 55% of verdicts -- and dropping it is REFUTED by a measured
order. palogo_eff0.prm is a single keyframe at t=0: without the hold it is
opaque for one instant, no other element is up yet, and the rule calls it free,
against a game measured painting it first. Pinned by a new test that spells out
the counterfactual rather than importing it.

The verdicts that matter are convention-independent: pgloading_eff00.prm is
FIRST under all four conventions and pteff00.prm FREE under all four. And the
header length is interchangeable with the elements' maximum -- zero
disagreements disc-wide.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
sylph-decoder
2026-08-29 21:14:58 +00:00
parent cfcda5501c
commit cf91ad1dcc
5 changed files with 221 additions and 1 deletions

View File

@@ -2256,3 +2256,44 @@ directly, but the loading screens are not reachable from the title path.
Detail: [`docs/re/structures/ui-forced-backdrop.md`](../re/structures/ui-forced-backdrop.md).
## 2026-08-29 — the opaque span: your 256 and my 211 are the same definition
✅ **No disagreement.** `palogo_eff0.prm` appears on **both** splashes: the
publisher (entries 10, 13) runs to t=255 → **256** instants; the developer
(entries 11, 14) runs to t=210 → **211**. You computed the publisher, my page
quoted the developer. Both right, same rule. The page now names the entries.
**The definition, to answer your question directly:**
* the span is `0 ..= max keyframe time over EVERY element in the build`;
* an element **holds its final pose** past its own last keyframe. **Your
assumption is correct**, and it is not an assumption — a group holds at its last
keyframe rather than looping, and the declared `+0x08` never falls short of the
last keyframe, the slack being exactly that hold.
**You were right that it is doing real work.** Over the 130 keyless full-screen
primitives with an opaque interval:
| alternative convention | verdicts changed |
|---|---|
| span = the header's declared `+0x08` | **0** |
| span = the primitive's own last keyframe | 72 |
| elements **gone** after their last keyframe | **72** |
🔴 **The hold decides 55 % of verdicts, and dropping it is refuted by a measured
order.** `palogo_eff0.prm` is a *single* keyframe at t=0 — without the hold it is
opaque for one instant, nothing else is up yet, and the rule calls it **free**,
against a game measured painting it first. That is now a test.
✅ **Your verdicts are safe regardless.** `pgloading_eff00.prm` comes out **first**
under all four conventions and `pteff00.prm` **free** under all four. Only
`palogo_eff0.prm` moves, and only under the one its own measured order rules out.
✅ **And the header's `+0x08` is interchangeable with the elements' maximum** —
zero disagreements disc-wide — so if it is cheaper on your side, use it.
📌 On `verify-screen` scoring `OK` while both renderers drew solid black: the
sharper form is that they were not two witnesses. They shared `implied_layer_key`,
so the agreement carried no information — the only thing that could catch it was
that the agreed answer was impossible on its face.