Files
Sylpheed/export-probe2/screens/title/press_start.json
Sylpheed port agent 3efe1cc03e port(exporter): export GP_OPTIONS -- the OPTIONS screens render
authored/screen_names.json export_archives gains dat/GP_OPTIONS.pak, alone.
Adding all four candidate archives at once would land 139 new screens together
and make any regression unattributable.

Result: 14 screen builds, 30-41 sprites each, ZERO missing sprites, 434 PNGs.
All 30 screens (16 title + 14 options) validate against sylpheed.screen/3, and
export/screens/title is BYTE-IDENTICAL to before -- the addition disturbed
nothing existing.

And they render. build_04 is the real CONTROL SETTINGS screen: 43 elements,
1280x720, title, ten labelled rows and the button legend, every sprite resolving.
Element ids carry a po_ prefix, so these are the options builds and not a
coincidence of the detector.

⚠️ One element, po_pad_slider1, has no sprite in the export and is reported as
NOT DRAWN rather than silently skipped.

⚠️ Screens are unnamed (build_NN by entry index) and OPTIONS is not yet reachable
from the menu -- ptbtn04 still has goto=null. Naming and wiring are the next
units, deliberately separate from making the screens exist.
2026-09-03 18:10:58 +00:00

327 lines
7.8 KiB
JSON

{
"format": "sylpheed.screen/3",
"exporter": "sylpheed-export 0.1.0",
"formats_rev": "8b6dbcf",
"source": {
"archive": "dat/GP_TITLE.pak",
"entry": 2,
"build": 2
},
"name": "press_start",
"name_source": "authored",
"name_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. 📌 SOURCE, added 2026-09-01 in the uncited-why backfill: the four bundles are identified in docs/re/ui-title-build-map.md, and the ordinal-versus-entry distinction this entry depends on is docs/re/structures/build-ordinal-vs-entry.md. ⚠️ The sibling references below (\"as entry 10, region twin\") are a citation form too -- they point at another entry in this file rather than at a document, and forcing a path onto them would be mislabelling to satisfy a counter.",
"design": [
1280,
720
],
"elements": [
{
"index": 0,
"id": "ptbtn00",
"declared": "ptbtn00.rat",
"role": "unknown",
"kind_raw": "0x73002",
"sprite": "sprites/title/press_start/ptbtn00.png",
"focus_sprite": "sprites/title/press_start/ptbtn00f.png",
"focus": {
"record": "ptbtn00f.rat",
"loop_length_units": 120,
"elements": [
{
"id": "ptbtn00f",
"declared": "ptbtn00f.t32",
"sprite": "sprites/title/press_start/ptbtn00f.png",
"blend_additive": true,
"pivot": [
268,
38
],
"rest": {
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x50ffffff",
"rotation_deg": 0,
"t": 35
},
"keyframes": [
{
"t": 0,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 6,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x06ffffff",
"rotation_deg": 0
},
{
"t": 29,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x4affffff",
"rotation_deg": 0
},
{
"t": 35,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x50ffffff",
"rotation_deg": 0
},
{
"t": 50,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x50ffffff",
"rotation_deg": 0
},
{
"t": 58,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x4affffff",
"rotation_deg": 0
},
{
"t": 97,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x06ffffff",
"rotation_deg": 0
},
{
"t": 105,
"pos": [
371,
537
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
}
]
},
"leaf": {
"record": "ptbtn00.rat",
"loop_length_units": 120,
"elements": [
{
"id": "ptbtn00",
"declared": "ptbtn00.t32",
"sprite": "sprites/title/press_start/ptbtn00.png",
"blend_additive": false,
"pivot": [
256,
25
],
"rest": {
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 0
},
"keyframes": [
{
"t": 0,
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
}
]
}
]
},
"opt_link": "ptbtn00f.rat",
"pivot": [
256,
25
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x00008110",
"rest": {
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 236
},
"keyframes": [
{
"t": 0,
"pos": [
383,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 214,
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 236,
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 238,
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 244,
"pos": [
383,
550
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
}
],
"paint_order": [
0
],
"buttons": [],
"settle_window": [
214,
236,
225
],
"unresolved": [
"keyframe_time_unit",
"paint_order_ties",
"fade_out_duration"
]
}