re: retract the paint-key census and redo it over all 21 184 sprites

The census filtered pak entries whose own first four bytes are T8aD.  A sprite
is usually a child of a RATC bundle, and a bundle entry's magic is RATC, so a
top-level magic filter cannot see one:

    top-level T8aD entries (counted)    4 525 sprites,  45 keys
    T8aD inside RATC bundles (missed)  16 659 sprites, 204 keys
    both                               21 184 sprites, 216 keys

171 of the 216 keys exist only inside bundles.  The sharpest statement of the
error: that census never saw GP_TITLE.pak at all -- the pak holding both of the
screens this page's entire evidence comes from.

Retracted: "45 values", "the keys are pak-local", "each auxiliary pak occupies
its own narrow high-byte band".  On the full population 68/216 keys (31%, not
9%) cross a pak family and the per-pak ranges overlap heavily -- GP_BUNK
0x8000-0xa110, GP_TITLE 0x8000-0xc150, GP_LEADERBOARD 0x8000-0xf100.  The tidy
banding was an artifact of seeing one or two keys per pak.  So the key looks
like a shared vocabulary, which is the opposite of what I published.

Survives, now on the full population: the field is a u16 at +0x0A (upper half
zero 21 184/21 184), and it is an enumeration (216 values for 21 184 sprites).

Three wrong numbers on this page now, all the same shape -- a statistic computed
over a population I had not checked was the population in question.  Stated once
at the end of the section rather than three times: check the sampling frame
before the statistic.
This commit is contained in:
Sylpheed RE agent
2026-08-26 10:06:23 +00:00
parent e5dde6f4db
commit 35f67a2a37
4 changed files with 145 additions and 107 deletions

View File

@@ -1,17 +1,35 @@
pak families: {'GP_CHALLENGE.pak': 2, 'GP_DEBRIEFING_PILOTLOG.pak': 2, 'GP_HANGAR_ARSENAL.pak': 3, 'GP_LEADERBOARD.pak': 3, 'GP_MAIN_GAME_2D.pak': 34, 'GP_MISSION_LOG.pak': 1, 'GP_MISSION_SELECT.pak': 1, 'GP_OPTIONS.pak': 1, 'GP_SAVE_LOAD.pak': 3, 'GP_STAGE_CLEAR.pak': 1}
ALL T8aD sprites (top-level + RATC children): 21184
upper half of the +0x08 word is zero : 21184/21184
distinct u16 keys at +0x0A : 216
keys in more than one pak family : 68/216 = 31%
keys confined to GP_MAIN_GAME_2D : 52/216
the six language 2D paks have identical key sets: True (6 paks)
keys in more than one FAMILY: 4/45 -> ['0000', '9092', '9110', '9200']
keys confined to GP_MAIN_GAME_2D alone: 33/45
per family, its keys:
GP_CHALLENGE.pak: ['9110', '9200']
GP_DEBRIEFING_PILOTLOG.pak: ['9091', '9092']
GP_HANGAR_ARSENAL.pak: ['9200', '9300', '9400']
GP_LEADERBOARD.pak: ['9108', '9110', '9200']
GP_MAIN_GAME_2D.pak: ['0000', '7d00', '7e00', '7e10', '7e20', '7e40', '7e50', '7e51', '7e52', '7e80', '7e90', '7f00', '7f10', '7f20', '7f30', '7f40', '7f60', '7f61', '8000', '8010', '8020', '8030', '8040', '8080', '8100', '8108', '8110', '8200', '8210', '8300', '8800', '8880', '8900', '9820']
GP_MISSION_LOG.pak: ['a410']
GP_MISSION_SELECT.pak: ['9110']
GP_OPTIONS.pak: ['0000']
GP_SAVE_LOAD.pak: ['b100', 'b110', 'b210']
GP_STAGE_CLEAR.pak: ['9092']
keys per family:
GP_BUNK.pak: 16 keys 8000..a110
GP_CHALLENGE.pak: 9 keys 8000..9200
GP_DEBRIEFING_PILOTLOG.pak: 17 keys 8200..9900
GP_DIALOG.pak: 22 keys 8100..f102
GP_GAMEOVER.pak: 6 keys d840..d862
GP_HANGAR_ARSENAL.pak: 20 keys 8000..9412
GP_LEADERBOARD.pak: 14 keys 8000..f100
GP_MAIN_GAME_2D.pak: 72 keys 0000..9820
GP_MISSION_LOG.pak: 5 keys a400..a420
GP_MISSION_SELECT.pak: 13 keys 8300..9820
GP_MOVIE_THEATER.pak: 7 keys 8300..9122
GP_OPTIONS.pak: 21 keys 0000..b900
GP_PAUSE_MENU.pak: 8 keys 8020..a112
GP_READY_ROOM.pak: 45 keys 0000..9fff
GP_SAVE_LOAD.pak: 27 keys 8300..f100
GP_STAGE_CLEAR.pak: 12 keys 8200..9112
GP_SYSTEM.pak: 7 keys a010..a112
GP_TITLE.pak: 28 keys 8000..c150
GP_TUTORIAL.pak: 5 keys 8210..8312
deu.pak: 5 keys 8000..8010
eng.pak: 5 keys 8000..8010
esp.pak: 5 keys 8000..8010
fra.pak: 5 keys 8000..8010
ita.pak: 5 keys 8000..8010
jpn.pak: 5 keys 8000..8010
commonest 12 keys: [('8000', 1768), ('8100', 1524), ('9230', 1454), ('9400', 857), ('9220', 776), ('9402', 720), ('8010', 689), ('9110', 527), ('9100', 467), ('8900', 450), ('8400', 426), ('a100', 423)]