re: who references a .prt decides whether it ships -- menu named, in-game embedded

Censused the whole 135 unresolved set instead of chasing the five.
Cross-tab over all 376 .prt names: referenced by tables.pak AND
resolves 241; neither 100; referenced but absent 35; resolves WITHOUT
being referenced by tables.pak -- ZERO.

So resolving implies a tables.pak reference, 0 counterexamples of 376.
tables.pak holds the menu screen configs and every part it names ships
as <lang3>\<name>.prt.  The 100 names that appear only inside the
GP_MAIN_GAME_*2D.pak bundles never ship as entries -- the in-flight HUD
is authored into the bundles, not loaded by name.  The five pgmsg_*.prt
were never a special case; the split is menu = named + shipped,
in-game = embedded.

It is not a prefix rule: 6 of the 135 pg* names do resolve (pgloading,
pgloading2, pgmsg_scr, pgpause, pgpause_ttrl, pgpbase), because
tables.pak names them.

The 35-name residual is one coherent family -- pgmenu_btn*/item*/pad,
pgfacewin*, pgtextwin, phinfo1-3, 02d, 02d_scr, psview_release: the
in-game pause menu and squadron-order overlay, named by a menu config
but drawn from the in-game bundles.  Consistent with the split, not
separately proved.

Artefact +44 lines / 0 deletions; the other six regenerate
byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 14:13:41 +00:00
parent 94065d40ec
commit e4000d9cb5
4 changed files with 119 additions and 2 deletions

View File

@@ -22,6 +22,50 @@
prbase.prt resolves under: ['eng\\', 'jpn\\', 'fra\\', 'deu\\', 'ita\\', 'esp\\']
palogo1.prt resolves under: ['eng\\', 'jpn\\']
## WHO REFERENCES a part decides whether it ships as an entry
cross-tab (referenced by tables.pak?, resolves as an entry?):
tables=True resolves=True 241
tables=False resolves=False 100
tables=True resolves=False 35
=> resolving IMPLIES referenced by tables.pak: 0 counterexamples of 376
the 35 referenced-but-absent parts:
02d.prt
02d_scr.prt
pgfacewin.prt
pgfacewin_base.prt
pgfacewin_dead.prt
pgfacewin_em.prt
pgfacewin_tr.prt
pgmenu_btn00.prt
pgmenu_btn00f.prt
pgmenu_btn01.prt
pgmenu_btn01f.prt
pgmenu_btn10.prt
pgmenu_btn10f.prt
pgmenu_btn11.prt
pgmenu_btn11f.prt
pgmenu_btn12.prt
pgmenu_btn12f.prt
pgmenu_btn20.prt
pgmenu_btn20f.prt
pgmenu_btn21.prt
pgmenu_btn21f.prt
pgmenu_btn22.prt
pgmenu_btn22f.prt
pgmenu_btn30.prt
pgmenu_btn30f.prt
pgmenu_item0.prt
pgmenu_item1.prt
pgmenu_item2.prt
pgmenu_item3.prt
pgmenu_pad.prt
pgtextwin.prt
phinfo1.prt
phinfo2.prt
phinfo3.prt
psview_release.prt
pg* parts: 135, of which 6 resolve: ['pgloading.prt', 'pgloading2.prt', 'pgmsg_scr.prt', 'pgpause.prt', 'pgpause_ttrl.prt', 'pgpbase.prt']
## `<stem>_sub.rat` sub-bundles inside RATC
distinct _sub.rat names: 11
pgmsg_end_sub.rat in 6 archives ['GP_MAIN_GAME_D2D.pak', 'GP_MAIN_GAME_E2D.pak']