Files
Sylpheed/export-probe/screens/title/build_01.json
Sylpheed port agent fda417a5db port(exporter): the archive list is data, not a hardcoded constant
crates/sylpheed-export read dat/GP_TITLE.pak and nothing else. authored/flow.json
records LOAD GAME, TUTORIAL, OPTIONS and NEW GAME's difficulty chain as MEASURED
destinations that are blocked because 'not a GP_TITLE build, so there is no
screen file to go to'. The blocker was neither the disc nor the reader --
examples/probe_archives.rs finds screen builds in 24 archives using the EXISTING
detector -- it was that constant.

The list now comes from authored/screen_names.json export_archives, whose
'archives' map was ALREADY keyed by archive path. Absent, it defaults to
dat/GP_TITLE.pak, so an old authored tree exports what it always did.

Sprite groups are mapped per archive rather than derived from the filename:
sprites live at sprites/<group>/<screen>/, unnamed builds are named build_NN by
entry index which restarts at 0 in every archive, so two archives sharing a group
would collide. An unmapped archive is rejected rather than given a directory a
typo could invent.

NO BEHAVIOUR CHANGE, and verified as such before anything is added: exported to a
separate tree with the current authored data and diffed -- export/screens and
export-probe/screens are IDENTICAL, manifest screen list identical.

The archive list itself is unchanged in this commit. Adding one is next, and
separately, so any regression is attributable to the archive rather than to the
refactor.
2026-09-03 17:57:06 +00:00

1099 lines
22 KiB
JSON

{
"format": "sylpheed.screen/3",
"exporter": "sylpheed-export 0.1.0",
"formats_rev": "8b6dbcf",
"source": {
"archive": "dat/GP_TITLE.pak",
"entry": 1,
"build": 1
},
"name": "build_01",
"name_source": "index",
"design": [
1280,
720
],
"elements": [
{
"index": 0,
"id": "pgloading_loop1",
"declared": "pgloading_loop1.rat",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_circle1.png",
"leaf": {
"record": "pgloading_loop1.rat",
"loop_length_units": 300,
"elements": [
{
"id": "pgloading_circle1",
"declared": "pgloading_circle1.t32",
"sprite": "sprites/title/build_01/pgloading_circle1.png",
"blend_additive": true,
"pivot": [
37,
37
],
"rest": {
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 0
},
"keyframes": [
{
"t": 0,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 300,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": -360
}
]
}
]
},
"opt_link": "pgloading_loop3.rat",
"pivot": [
37,
37
],
"blend_additive": true,
"layer_source": "sprite",
"layer": "0x0000c110",
"animated": true,
"rest": {
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 16
},
"keyframes": [
{
"t": 0,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 8,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 16,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 32,
"pos": [
130,
574
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 40,
"pos": [
130,
574
],
"scale": [
150,
150
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 1,
"id": "pgloading_loop3",
"declared": "pgloading_loop3.rat",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_processing.png",
"leaf": {
"record": "pgloading_loop3.rat",
"loop_length_units": 120,
"elements": [
{
"id": "pgloading_processing",
"declared": "pgloading_processing.t32",
"sprite": "sprites/title/build_01/pgloading_processing.png",
"blend_additive": false,
"pivot": [
132,
12
],
"rest": {
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 30
},
"keyframes": [
{
"t": 0,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x40ffffff",
"rotation_deg": 0
},
{
"t": 5,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x50ffffff",
"rotation_deg": 0
},
{
"t": 25,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xf0ffffff",
"rotation_deg": 0
},
{
"t": 30,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 65,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 73,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xf0ffffff",
"rotation_deg": 0
},
{
"t": 112,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x50ffffff",
"rotation_deg": 0
},
{
"t": 120,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x40ffffff",
"rotation_deg": 0
}
]
}
]
},
"opt_link": "pgloading_loop4.rat",
"pivot": [
132,
12
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x0000c150",
"animated": true,
"rest": {
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 24
},
"keyframes": [
{
"t": 0,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 16,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 24,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 26,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 34,
"pos": [
223,
614
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 2,
"id": "pgloading_str",
"declared": "pgloading_str.t32",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_str.png",
"pivot": [
81,
20
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x0000c150",
"rest": {
"pos": [
227,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 22
},
"keyframes": [
{
"t": 0,
"pos": [
227,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 14,
"pos": [
187,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 18,
"pos": [
217,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x80ffffff",
"rotation_deg": 0
},
{
"t": 20,
"pos": [
224,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xc0ffffff",
"rotation_deg": 0
},
{
"t": 22,
"pos": [
227,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 28,
"pos": [
227,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 34,
"pos": [
207,
553
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 3,
"id": "pgloading_line",
"declared": "pgloading_line.t32",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_line.png",
"pivot": [
0,
16
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x0000c140",
"rest": {
"pos": [
167,
581
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 18
},
"keyframes": [
{
"t": 0,
"pos": [
167,
581
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 10,
"pos": [
167,
581
],
"scale": [
0,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 14,
"pos": [
167,
581
],
"scale": [
75,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x80ffffff",
"rotation_deg": 0
},
{
"t": 16,
"pos": [
167,
581
],
"scale": [
96,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xc0ffffff",
"rotation_deg": 0
},
{
"t": 17,
"pos": [
167,
581
],
"scale": [
99,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xe0ffffff",
"rotation_deg": 0
},
{
"t": 18,
"pos": [
167,
581
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 26,
"pos": [
167,
581
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 32,
"pos": [
167,
581
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 4,
"id": "pgloading_loop4",
"declared": "pgloading_loop4.rat",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_delta.png",
"leaf": {
"record": "pgloading_loop4.rat",
"loop_length_units": 360,
"elements": [
{
"id": "pgloading_delta",
"declared": "pgloading_delta.t32",
"sprite": "sprites/title/build_01/pgloading_delta.png",
"blend_additive": true,
"pivot": [
47,
51
],
"rest": {
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 0
},
"keyframes": [
{
"t": 0,
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 360,
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 360
}
]
}
]
},
"pivot": [
47,
40
],
"blend_additive": true,
"layer_source": "sprite",
"layer": "0x0000c130",
"animated": true,
"rest": {
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0,
"t": 8
},
"keyframes": [
{
"t": 0,
"pos": [
120,
560
],
"scale": [
0,
0
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 4,
"pos": [
120,
560
],
"scale": [
75,
75
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x80ffffff",
"rotation_deg": 0
},
{
"t": 6,
"pos": [
120,
560
],
"scale": [
96,
96
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xc0ffffff",
"rotation_deg": 0
},
{
"t": 7,
"pos": [
120,
560
],
"scale": [
99,
99
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xe0ffffff",
"rotation_deg": 0
},
{
"t": 8,
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 32,
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0xffffffff",
"rotation_deg": 0
},
{
"t": 38,
"pos": [
120,
560
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 5,
"id": "pgloading_eff01",
"declared": "pgloading_eff01.t32",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_eff01.png",
"pivot": [
166,
72
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x0000c100",
"rest": {
"pos": [
202,
528
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0,
"t": 16
},
"keyframes": [
{
"t": 0,
"pos": [
202,
528
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 16,
"pos": [
202,
528
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0
},
{
"t": 32,
"pos": [
202,
528
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0
},
{
"t": 40,
"pos": [
202,
528
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
},
{
"index": 6,
"id": "pgloading_eff02",
"declared": "pgloading_eff02.t32",
"role": "decoration",
"kind_raw": "0x0",
"sprite": "sprites/title/build_01/pgloading_eff02.png",
"pivot": [
94,
93
],
"blend_additive": false,
"layer_source": "sprite",
"layer": "0x0000c100",
"rest": {
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0,
"t": 22
},
"keyframes": [
{
"t": 0,
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 16,
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
},
{
"t": 22,
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0
},
{
"t": 28,
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x60ffffff",
"rotation_deg": 0
},
{
"t": 34,
"pos": [
74,
518
],
"scale": [
100,
100
],
"tint_rgba": "0xffffffff",
"fade_argb": "0x00ffffff",
"rotation_deg": 0
}
]
}
],
"paint_order": [
5,
6,
0,
4,
3,
1,
2
],
"buttons": [],
"settle_window": [
34,
38,
36
],
"unresolved": [
"keyframe_time_unit",
"paint_order_ties",
"fade_out_duration"
]
}