handoff: address the loading bundles by pak entry, not by is_build ordinal

The port caught this before writing a name: over the twelve bundles is_build
accepts, ordinals 10/11 are entries 12/15, while ENTRIES 10/11 are the two
splash bundles. A key written from an ordinal names the publisher wordmark as a
loading screen and still validates. Restated in entry space throughout.
This commit is contained in:
sylph-decoder
2026-08-29 14:15:50 +00:00
parent 0fd21bd744
commit 5a0fa8f6f9

View File

@@ -96,11 +96,20 @@ moved `GP_TITLE` build 7 by 13.1 % of its pixels; with pose 0's time restored:
So `screen render` is still the reference you diff against, unchanged. **If your
static screens move, that is your bug, not this change.**
## ✅ 2026-08-29 — builds 0/1 and 10/11 are the LOADING SCREEN (your ask #2)
## ✅ 2026-08-29 — `GP_TITLE` **entries 0, 1, 12, 15** are the LOADING SCREEN (your ask #2)
🔴 **Address these by PAK ENTRY, not by `is_build` ordinal.** The port raised
this and it is a real foot-gun: over the twelve bundles `is_build` accepts
(entries 0,1,2,3,4,5,6,7,8,9,12,15) the *ordinals* 10 and 11 are **entries 12 and
15**, while **entries** 10 and 11 are `palogo_sqex` and
`palogo_gamearts`/`seta`/`anima` — the two splashes. A key written `"10"`/`"11"`
from an ordinal therefore names the publisher wordmark and the developer logos as
loading screens, and everything still validates. The loading bundles are
**entries 0, 1, 12, 15** (= build ordinals 0, 1, 10, 11).
**Decoded** — the authors' own element names, straight out of the declaration
table. Every element of all four bundles is prefixed `pgloading_`: the 7-element
pair (builds 0/1) is the plain plate, the 10-element pair (builds 10/11) adds
pair (entries 0/1) is the plain plate, the 10-element pair (entries 12/15) adds
`pgloading_eff00.prm`, `pgloading_loop5.rat` and `pgloading_baseeff.t32` over a
circuit-line background. `DELTASABER / SYLPHEED A.I.` is the caption art on
`pgloading_str.t32`, not the screen's identity.
@@ -112,8 +121,9 @@ are two, but nothing observed says which bundle is which. 🟡 undecided.
🟡 **Which member of each pair is English: the first half of the data segment.**
All eight pairs put exactly one member in each half of `GP_TITLE.p00`, and all
three pairs whose language is visible (4/7, 5/8, 6/9) put English in the first.
So builds **0, 2, 4, 5, 6, 10 are English**; 1, 3, 7, 8, 9, 11 Japanese. 🟡 not
three pairs whose language is visible (entries 4/7, 5/8, 6/9) put English in the
first. So **entries 0, 2, 4, 5, 6, 10, 11, 12 are English**; entries 1, 3, 7, 8,
9, 13, 14, 15 Japanese. 🟡 not
✅ — the three pairs this is *used* for are exactly the three no capture can
check, and nothing in the bundle bytes differs between those twins at all.
[`ui-title-build-map.md`](../re/ui-title-build-map.md)