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.
54 lines
2.4 KiB
JSON
54 lines
2.4 KiB
JSON
{
|
|
"format": "sylpheed.flow/1",
|
|
|
|
"_": [
|
|
"The boot sequence. AUTHORED, and it has to be: HANDOFF Q6 closed this with a",
|
|
"negative -- the order is in none of the four places it could have been. It is",
|
|
"not in config.ini's empty [SYSTEM], not in the movie manifest (which carries",
|
|
"assets, not transitions), not in a persistent GamePart field (the requested id",
|
|
"lives only as a stack argument in flight), and `GP_ADVERTISE_DEMO` has zero",
|
|
"xrefs of any kind. A transition is a call with a name argument, chosen by code.",
|
|
"",
|
|
"So this file REPRODUCES AN OBSERVATION. The sequence below is what the RE",
|
|
"agent watched the game do, not what any file on the disc says it does. Nothing",
|
|
"here may be presented as decoded."
|
|
],
|
|
|
|
"boot": [
|
|
{
|
|
"screen": "publisher_logo",
|
|
"why": "The SQUARE ENIX wordmark is the first thing the boot shows -- RE agent, 2026-08-29. Entry 10 of the pair; 13 is its region twin and the port shows one, not both."
|
|
},
|
|
{
|
|
"screen": "developer_logos",
|
|
"why": "GAME ARTS / SETA / studio anima, after the publisher wordmark. HANDOFF Q2."
|
|
},
|
|
{
|
|
"screen": "title",
|
|
"why": "HANDOFF Q2/Q6: the boot reaches the title after the splashes. The intro video (ADVERTISE_MOVIE -> ADV.wmv) plays between the splash and the title in the real boot and is SKIPPED here -- it is P4, and the sequencer names the gap rather than pretending the order is different."
|
|
}
|
|
],
|
|
|
|
"dwell": {
|
|
"_": [
|
|
"DELIBERATELY EMPTY. Each screen's dwell is its own keyframe group -- the",
|
|
"publisher wordmark reaches its hold at t=235 (3.92 s) and the developer",
|
|
"logos at t=190 (3.17 s), both read from the disc. Holding beyond that would",
|
|
"be a number nobody has measured, so the sequencer holds for zero extra time",
|
|
"and the pacing is the disc's own.",
|
|
"",
|
|
"When a capture times the real boot, the extra hold per screen goes here."
|
|
]
|
|
},
|
|
|
|
"screens": {
|
|
"_": [
|
|
"What each button does. NOT FILLED IN -- that is P5. HANDOFF Q4 measured the",
|
|
"destination screens and the RE agent later decoded that a transition is a",
|
|
"lookup by NAME, giving a candidate vocabulary (TITLE_SCREEN, TITLE_MENU,",
|
|
"LOADING, DIFFICULTY, EXTRA_MENU, TUTORIAL_MENU). Those are the right `goto`",
|
|
"targets when this is written, marked as the name match they are."
|
|
]
|
|
}
|
|
}
|