port: the forced-backdrop pass decides two screens and confirms four, not six
I have said 'six forced elements' since implementing it and verified after every change that no verdict moved -- which measured stability, not necessity. Removing the pass entirely: the four splashes are BYTE-IDENTICAL, because palogo_eff0's implied key 0x00000000 is lower than the lowest sprite key and the crate already sorts it first. Only build_12/15 change, and they go black again. Those two are the port's strongest dependency on an undecoded rule: pgloading_eff00 there has layer: null, layer_source: none -- the only elements in the export with neither a read nor an implied key. Their position rests entirely on the occlusion constraint with nothing to fall back on, and that was hiding inside a count of six. Census: 160 layer keys read from sprites, 16 implied (every layerless primitive), 2 absent. FORMAT.md requires a consumer to tell which, and layer_source does. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -9,7 +9,7 @@ dies, which is what this file is for.
|
||||
|
||||
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
|
||||
|
||||
113 sections. Search this before re-deriving anything.
|
||||
114 sections. Search this before re-deriving anything.
|
||||
|
||||
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
|
||||
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
|
||||
@@ -124,6 +124,7 @@ dies, which is what this file is for.
|
||||
* [Auditing `BLOCKED.md` found three stale rows, and the undated ones were all three](#auditing-blockedmd-found-three-stale-rows-and-the-undated-ones-were-all-three)
|
||||
* [The record already answered last iteration's question, under headings that name it](#the-record-already-answered-last-iterations-question-under-headings-that-name-it)
|
||||
* [🔴 Twenty-one messages to a dead address, each one warning me it was dead](#twenty-one-messages-to-a-dead-address-each-one-warning-me-it-was-dead)
|
||||
* [The forced-backdrop pass is load-bearing on two screens, not six](#the-forced-backdrop-pass-is-load-bearing-on-two-screens-not-six)
|
||||
|
||||
<!-- /INDEX -->
|
||||
## P0 — the exporter, 2026-08-28
|
||||
@@ -6722,3 +6723,51 @@ because it converts into evidence that the situation is understood. The fix is n
|
||||
"read the warnings" — I read them all. It is that a warning repeating unchanged
|
||||
across attempts is a *state*, not a footnote, and the second identical one should
|
||||
have been treated as a failure rather than a fact about the world.
|
||||
|
||||
## The forced-backdrop pass is load-bearing on two screens, not six
|
||||
|
||||
I have said "six forced elements" since implementing the rule, and checked after
|
||||
every change that **no verdict moved**. That measured the pass's *stability*, never
|
||||
its *necessity*. Removing it entirely answers the other question:
|
||||
|
||||
| screens | order without the pass |
|
||||
|---|---|
|
||||
| `publisher_logo`, `publisher_logo_r`, `developer_logos`, `developer_logos_r` | **byte-identical** |
|
||||
| `build_12`, `build_15` | first element becomes `pgloading_loop5` — the black screen returns |
|
||||
|
||||
**Four of the six are redundant.** `palogo_eff0`'s layer key is `0x00000000`,
|
||||
`layer_source: implied` — lower than the lowest sprite key on those screens
|
||||
(`0x0000a100`) — so the crate already sorts it first and the occlusion rule merely
|
||||
agrees.
|
||||
|
||||
🔴 **The two that matter have no key at all.** On `build_12`/`build_15`,
|
||||
`pgloading_eff00` carries `layer: null`, `layer_source: none` — the only two
|
||||
elements in the export with neither a read nor an implied key. Their position rests
|
||||
**entirely** on the occlusion constraint, with nothing to fall back on. That is the
|
||||
port's single strongest dependency on a rule it did not decode, and it was hiding
|
||||
inside a count of six.
|
||||
|
||||
### Which is also what makes the rule worth having
|
||||
|
||||
An agreement on four screens where a key already existed is not evidence — it is
|
||||
the rule reproducing the crate. The two screens where it is load-bearing are the
|
||||
two the rule was found on, and the argument for it there is not the key (there is
|
||||
none) but that a permanently black screen is impossible on its face.
|
||||
|
||||
⚠️ So the honest statement, replacing the one I have been repeating: the rule
|
||||
**decides** two screens and **confirms** four. I will not describe it as six again.
|
||||
|
||||
### The layer-key census this came out of
|
||||
|
||||
| `layer_source` | count | which |
|
||||
|---|---|---|
|
||||
| `sprite` — read from the file | 160 | everything with a texture |
|
||||
| `implied` — the crate's, measured per name | 16 | `pteff00`, `pteff02`, `palogo_eff0`, `pgloading_eff00` |
|
||||
| `none` — no key exists | **2** | `pgloading_eff00` on the two loading screens |
|
||||
|
||||
✅ Every layerless primitive's position is `implied` or absent, never read — and
|
||||
`FORMAT.md` requires a consumer to be able to tell, which `layer_source` delivers.
|
||||
The Decoder's own page says `pteff00`'s place on top *"is still a **measured**
|
||||
per-name entry, not a decoded one"*; the port inherits that through
|
||||
`layer: 0xfffffffe, layer_source: implied` and declares it. Nothing is being
|
||||
passed off as decoded that is not.
|
||||
|
||||
Reference in New Issue
Block a user