re: which archives the disc can name -- 100% for menu paks, 0.0% for the 2D paks and READY_ROOM

Chasing more prefixes for the 419 HUD config paths would have been the
same mistake twice, so this censuses the whole disc: harvest every
plausible asset-name string from every archive (6027), hash each under
the 16 known path prefixes, and ask per archive what fraction of its TOC
that explains.  idxd-container.md and idxd-tag-hash.md own the hash;
neither says which archives are reachable by it.

The result is bimodal.  GP_TITLE 16/16, GP_PAUSE_MENU 11/11,
GP_STAGE_CLEAR 44/44, GP_CHALLENGE 151/151, GP_MOVIE_THEATER 56/56,
MiscBin 40/40, GP_GAMEOVER, GP_BUNK, GP_SYSTEM, GP_TUTORIAL and fonts
are at 100%; tables.pak 78/79, GP_DIALOG 139/140, the six language paks
115/117; GP_MAIN_GAME_* 751/1119.  Then the cliff: the six
GP_MAIN_GAME_*2D.pak at 0 of 711 each, and GP_READY_ROOM at 6 of 1106 --
the largest UI pak on the disc, not previously noted anywhere.

Eleven paks at 100% in the same run is the control that makes 0.0% a
finding rather than a failed guess.

So the 419 HUD paths are not missing assets: nothing in the 2D paks is
reachable by name from the disc's own strings at all.  Those TOC keys
hash names that are not written anywhere readable.

Also refuted first: the 419 values under 13 name transformations, every
one scoring 0 against the E2D 711 and against all 16630 entries.

Not settled: what those names are.  The lever left is the hash's shape
-- the top byte is the character-sum checksum -- but that needs a name
corpus the disc does not contain.

New structure doc, artefact and regenerator; the other eight regenerate
byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 15:08:24 +00:00
parent bb37b16847
commit 15b97af170
5 changed files with 199 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
# How much of each pak's TOC can be named from the disc's own strings
# Regenerate: python3 tools/re-capture/archive_naming.py
# See docs/re/structures/archive-naming.md
candidate asset-name strings harvested: 6027
path prefixes tried: 16
archive entries named pct
sound.pak 9519 1 0.0%
GP_HANGAR_ARSENAL.pak 1538 347 22.6%
DefTables.pak 1465 130 8.9%
GP_MAIN_GAME_D.pak 1119 751 67.1%
GP_MAIN_GAME_E.pak 1119 751 67.1%
GP_MAIN_GAME_F.pak 1119 751 67.1%
GP_MAIN_GAME_I.pak 1119 751 67.1%
GP_MAIN_GAME_J.pak 1119 751 67.1%
GP_MAIN_GAME_S.pak 1119 751 67.1%
GP_READY_ROOM.pak 1106 6 0.5%
GP_MAIN_GAME_D2D.pak 711 0 0.0%
GP_MAIN_GAME_E2D.pak 711 0 0.0%
GP_MAIN_GAME_F2D.pak 711 0 0.0%
GP_MAIN_GAME_I2D.pak 711 0 0.0%
GP_MAIN_GAME_J2D.pak 711 0 0.0%
GP_MAIN_GAME_S2D.pak 711 0 0.0%
GP_DEBRIEFING_PILOTLOG.pak 234 78 33.3%
GP_CHALLENGE.pak 151 151 100.0%
GP_DIALOG.pak 140 139 99.3%
deu.pak 117 115 98.3%
eng.pak 117 115 98.3%
esp.pak 117 115 98.3%
fra.pak 117 115 98.3%
ita.pak 117 115 98.3%
jpn.pak 117 115 98.3%
GP_SAVE_LOAD.pak 108 102 94.4%
GP_MISSION_SELECT.pak 88 22 25.0%
GP_LEADERBOARD.pak 87 81 93.1%
tables.pak 79 78 98.7%
GP_MOVIE_THEATER.pak 56 56 100.0%
GP_STAGE_CLEAR.pak 44 44 100.0%
MiscBin.pak 40 40 100.0%
GP_OPTIONS.pak 26 24 92.3%
GP_MISSION_LOG.pak 24 22 91.7%
GP_TITLE.pak 16 16 100.0%
GP_GAMEOVER.pak 12 12 100.0%
GP_PAUSE_MENU.pak 11 11 100.0%
GP_BUNK.pak 10 10 100.0%
fonts.pak 3 3 100.0%
GP_SYSTEM.pak 2 2 100.0%
GP_TUTORIAL.pak 2 2 100.0%