There were TWO splash screens and this port had neither. Entries 11/14 are the developer logos; entries 10/13 are the SQUARE ENIX publisher wordmark, the first thing the boot shows, which nothing in this project had noticed. They have no .rat layout child so `is_build` cannot see them, and the RE agent established that no CONTENT rule can either: design size fails (every extra composable bundle sampled is 1280x720, same as every screen) and element count fails (fragments run 2..15 elements in GP_OPTIONS/GP_SAVE_LOAD, the splash halves are 3 and 7 -- the ranges overlap). So `screen_builds` is `is_build` plus an authored allow-list of ENTRY INDICES, each carrying a `why` that says it is a locator and not a claim. An allow-list rather than a loosened predicate because this is safe in GP_TITLE and would not be in general: there, widening adds exactly four bundles and all four are real screens, zero fragments. screen_names.json is rekeyed from enumeration ordinal to pak entry. Widening renumbers ordinals, and a name that moves when the enumeration rule changes is not a name -- the file always called the entry the stronger locator, and it is now the only stable one. The two unnamed plates therefore renamed build_10/11 -> build_12/15; they were always locators, and now they locate the right thing. All 16 export and validate.
95 lines
4.6 KiB
JSON
95 lines
4.6 KiB
JSON
{
|
|
"format": "sylpheed.screen_names/1",
|
|
"_": [
|
|
"Which GP_TITLE pak entry is which screen. AUTHORED: the disc does not name its",
|
|
"builds, so every name here is a decision. The identifications come from",
|
|
"HANDOFF Q2 (ui-title-build-map.md), which measured them against framebuffer",
|
|
"captures of the running game; the exporter stamps the name into the screen",
|
|
"file with name_source: \"authored\" so a reader can tell a recovered name from",
|
|
"an invented one.",
|
|
"",
|
|
"KEYED BY PAK ENTRY INDEX, not by the enumeration ordinal. It used to be the",
|
|
"ordinal; widening the enumeration to reach the splash renumbers ordinals, and",
|
|
"a name that moves when the enumeration rule changes is not a name. The entry",
|
|
"was always described here as the stronger locator -- now it is the only",
|
|
"stable one.",
|
|
"",
|
|
"Delete an entry here the day the RE agent decodes a name field."
|
|
],
|
|
"archives": {
|
|
"dat/GP_TITLE.pak": {
|
|
"2": {
|
|
"name": "press_start",
|
|
"why": "HANDOFF Q2: builds 2/3 are the PRESS (A) BUTTON plate -- a build of its own, composited over the title and faded in a beat later. English of the EN/JP pair. Measured against a live capture."
|
|
},
|
|
"3": {
|
|
"name": "press_start_jp",
|
|
"why": "HANDOFF Q2: the Japanese twin of build 2. Out of scope for this milestone; named so it is not mistaken for a screen we need."
|
|
},
|
|
"4": {
|
|
"name": "title",
|
|
"why": "HANDOFF Q2: build 4 is the English title art. Measured against a live capture."
|
|
},
|
|
"5": {
|
|
"name": "main_menu",
|
|
"why": "HANDOFF Q2: builds 5/8 are the five-button main menu; 5 is English. Measured against a live capture. (An earlier reading called 8 a submenu and was withdrawn -- 8 is the Japanese main menu.)"
|
|
},
|
|
"6": {
|
|
"name": "extras",
|
|
"why": "HANDOFF Q2: builds 6/9 are the EXTRAS submenu, the only submenu inside this archive. Measured against a fresh EXTRAS capture."
|
|
},
|
|
"7": {
|
|
"name": "title_jp",
|
|
"why": "HANDOFF Q2: the Japanese twin of build 4."
|
|
},
|
|
"8": {
|
|
"name": "main_menu_jp",
|
|
"why": "HANDOFF Q2: the Japanese twin of build 5."
|
|
},
|
|
"9": {
|
|
"name": "extras_jp",
|
|
"why": "HANDOFF Q2: the Japanese twin of build 6."
|
|
},
|
|
"10": {
|
|
"name": "publisher_logo",
|
|
"why": "The SQUARE ENIX PUBLISHER wordmark -- the FIRST thing the boot sequence shows, before the developer logos. Measured by the RE agent 2026-08-29, render grid at docs/re/captures/title-builds/splash-both-halves-rendered.png. Entries 10/13 are region twins distinguished by the trademark glyph; 10 carries the (TM)."
|
|
},
|
|
"13": {
|
|
"name": "publisher_logo_r",
|
|
"why": "The region twin of entry 10, carrying (R) where 10 carries (TM). Named so it is not mistaken for a second screen the boot path needs."
|
|
},
|
|
"11": {
|
|
"name": "developer_logos",
|
|
"why": "The GAME ARTS / SETA / studio anima logos -- the developer splash, shown after the publisher wordmark. HANDOFF Q2 and the RE agent's 2026-08-29 render grid; draws 7/7 elements."
|
|
},
|
|
"14": {
|
|
"name": "developer_logos_r",
|
|
"why": "The region twin of entry 11, as 13 is to 10."
|
|
}
|
|
}
|
|
},
|
|
"unnamed": {
|
|
"dat/GP_TITLE.pak": "Entries 0/1 and 12/15 are plates never seen running -- not in the boot path, not on any title-side screen, not in the attract loop (HANDOFF Q2). They export under their entry index rather than a name we would be inventing."
|
|
},
|
|
"also_export": {
|
|
"dat/GP_TITLE.pak": {
|
|
"10": {
|
|
"name": "publisher_logo",
|
|
"why": "LOCATED BY ENTRY INDEX, not by a rule. These four bundles declare their sprites directly and have no .rat layout child, so `is_build` cannot see them -- and the RE agent established that NO content rule can: design size fails (every extra composable bundle sampled is 1280x720, the same as every screen) and element count fails (fragments run 2..15 elements in GP_OPTIONS/GP_SAVE_LOAD while these are 3 and 7 -- the ranges overlap). Safe here and not in general: in GP_TITLE the widened set adds exactly these four and all four are real screens, zero fragments."
|
|
},
|
|
"11": {
|
|
"name": "developer_logos",
|
|
"why": "As entry 10: located by index because no content rule distinguishes a splash from a fragment. 7 elements, all drawn."
|
|
},
|
|
"13": {
|
|
"name": "publisher_logo_r",
|
|
"why": "As entry 10, region twin."
|
|
},
|
|
"14": {
|
|
"name": "developer_logos_r",
|
|
"why": "As entry 11, region twin."
|
|
}
|
|
}
|
|
}
|
|
}
|