re: the 95 BASE_INFO screens partitioned - BASE_INFO discriminates screen-config from table-read

Item (a): mine the screen population found last iteration. Resolving every one's
key list via the string-xref join over its own body gives 298 distinct keys and a
three-way split: 95 = 9 corpus-known + 48 new with a readable key list + 38 bare,
where "bare" means BASE_INFO and nothing else. The bare 38 are the honest limit
of the instrument - a screen whose only catalogued string is BASE_INFO cannot be
named this way.

The control turned the finding into a law. Only 9 of the 19 loaders the corpus
documents appear among the 95, and which nine is not arbitrary. The nine that
reference BASE_INFO all read a SCREEN's own configuration: debriefing, career,
save, medals, evaluation list, gamma, POINT_RANKING, CLEAR_TIME_RANKING, hangar.
The ten that do not all read a DATA TABLE: unit definitions, weapon datasheet,
AIParams, stage settings, chatter, PlayerParams, ControlTweak, the PG* HUD
roster, material slots, and the leaderboard. 9/9 and 10/10, both off-diagonals
empty. The leaderboard falling on the table side is a check rather than an
exception - its own doc records that all 18 of its names are tables.pak names, so
it is a table reader that happens to paint a screen. That exclusion is what last
commit's "universal screen marker" claim was missing.

48 new screens are named by their most distinctive keys, including the title
screen (sub_821C4EB0: TITLE_SCREEN/TITLE_MENU/LOADING), the ready room
(sub_821D6D28: SCRIPT_ID/SCRIPT_PATH, confirmed independently by its own error
string silph::GamePart_ReadyRoom::Impl::PrepareScript), movie subtitles, the
three menu modes STANDARD/EXTRA/TUTORIAL, the speaker window, loadout and gallery
views, mission select, and an equip screen carrying the game's own typo
EQUIIP_LIMITATION.

One caution worth recording: a high key count is not a rich screen. The two
27-key entries sub_82297550 and sub_822A2F00 resolve to pure coordinate pairs
(1080,163 / 734,502 / 1164,403) - a layout table, not configuration. Read the
values before trusting the rank.

Still open: the 38 bare screens, and whether the EX_ in EX_MENU_DISABLE_SKIP and
EX_LETTERS is the same EXTRA mode word as +184.

All seventeen artefacts byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-28 11:58:51 +00:00
parent 80406ce3e4
commit 0ace5db7c7
2 changed files with 92 additions and 0 deletions

View File

@@ -6998,3 +6998,33 @@ functions: **10 inside the family, 85 outside** (`95 = 10 + 85`), including
`sub_82286BC8` and `sub_822AE628`. **`BASE_INFO` is the universal screen-key-list
marker; the vtable shape is only a weak filter.** Enumerate screens by
`BASE_INFO`, not by vtable shape.
---
## ✅ 2026-08-28 — the 95 `BASE_INFO` screens partitioned; `BASE_INFO` discriminates screen-config from table-read
Item (a). Resolving every one's key list gives **298 distinct keys** and
`95 = 9 corpus-known + 48 new with keys + 38 bare (BASE_INFO only)`.
🔑 **The control made it a law.** Only **9 of the 19** documented loaders are
among the 95, and the split is exact: the **9** that read a *screen's own config*
(debriefing, career, save, medals, evaluation list, gamma, `POINT_RANKING`,
`CLEAR_TIME_RANKING`, hangar) reference `BASE_INFO`; the **10** that read a
*data table* (unit defs, weapon datasheet, `AIParams`, stage settings, chatter,
`PlayerParams`, `ControlTweak`, `PG*` HUD, material slots, **leaderboard**) do
not. **9/9 and 10/10 — both off-diagonals empty.** The leaderboard falls on the
table side correctly: its own doc records all 18 of its names as `tables.pak`
names.
✅ **48 new screens named**, including the **title screen** (`sub_821C4EB0`), the
**ready room** (`sub_821D6D28`, confirmed by its own error string
`silph::GamePart_ReadyRoom::Impl::PrepareScript`), movie subtitles, the three
menu modes, mission select, and an equip screen carrying the typo
**`EQUIIP_LIMITATION`**.
⚠️ **A high key count is not a rich screen** — `sub_82297550` and `sub_822A2F00`
(27 "keys" each) resolve to pure coordinate pairs (`1080,163`, `734,502`): a
**layout table**, not configuration. Read the values before trusting the rank.
🟡 Open: the 38 bare screens cannot be named by key list. 🟡 Whether the `EX_`
in `EX_MENU_DISABLE_SKIP` / `EX_LETTERS` is the `+184` `EXTRA` word.