diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 11a1bab..02e14e4 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -627,6 +627,39 @@ unknown, what evidence exists, and what the first step would be. Move an item in ๐ŸŸก Whether `Stage30`โ€“`Stage33` exist on disc (33 table slots, 28 scripts) is still open. +* โœ…๐Ÿ”ด **(2026-08-27) THE CONFIG IS AN INI, IT SHIPS NEARLY EMPTY, AND EVERY STAGE + TAKES `PLANE = 200` / `VESSEL = 20`. + [structures/isl-condition-builtins](structures/isl-condition-builtins.md).** + ๐Ÿ”ด **Correction to my own label.** I called `sub_824480D0`/`sub_82448AA0`/ + `sub_824482D0` an *XML* config reader on the strength of the pak census's 40 + ``, + ``, ``) โ€” mesh/texture declarations, not + config. + โœ… **The real config is a loose `config.ini` at the disc root**, header comment + ใ€Œใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ/ใ‚ฒใƒผใƒ ใƒ‘ใƒผใƒˆๅˆๆœŸ่จญๅฎšใƒ†ใƒผใƒ–ใƒซใ€ โ€” "application / game-part + initial-settings table", noting that `SYSTEM` holds what the game and every game + part share. That matches every key this code touches (`SYSTEM`, `GP_SCRIPT`, + `SCRIPTS`, `Resource2D`, `TABLE`, `GRAPH_PATH`, `EX_FONT`, `SCRIPT_ID`, + `SCRIPT_PATH`, `BASE_INFO`, `PLANE`, `VESSEL`, `STAGENN_UNIT_MAX`) โ€” they are INI + section and key names. + ๐Ÿ”‘ **The shipped file is 400 bytes**: `[SYSTEM]` (empty) and `[LANGUAGE]` + (`= eng` default plus `#0x01โ€ฆ#0x06`). **No `[STAGENN_UNIT_MAX]` anywhere**, and + `UNIT_MAX`/`VESSEL` appear in **0** pak entries. + โœ… **The absence is CONTROLLED.** The same scan over all 41 paks decompressed + **26 443 entries** and found `MSG_DEMO` 192ร—, `mapmesh_box_500km` 162ร— and + ``, ``, +`` โ€” mesh and texture +declarations, nothing to do with game config. + +The real config is a **loose INI at the disc root**, `config.ini`, whose header +comment reads *ใ€Œใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ/ใ‚ฒใƒผใƒ ใƒ‘ใƒผใƒˆๅˆๆœŸ่จญๅฎšใƒ†ใƒผใƒ–ใƒซใ€* โ€” "application / +game-part initial-settings table" โ€” and notes that the `SYSTEM` section holds +settings the game and every game part share. That matches every key this code +touches: `SYSTEM`, `GP_SCRIPT`, `SCRIPTS`, `Resource2D`, `TABLE`, `GRAPH_PATH`, +`EX_FONT`, `SCRIPT_ID`, `SCRIPT_PATH`, `BASE_INFO`, `PLANE`, `VESSEL`, +`STAGENN_UNIT_MAX` โ€” INI section and key names. + +**And the shipped file is 400 bytes.** In full it has two sections: + +``` +[SYSTEM] + +[LANGUAGE] + = eng ; default +#0x01 = eng ; XC_LANGUAGE_ENGLISH +#0x02 = jpn ; XC_LANGUAGE_JAPANESE +โ€ฆ deu / fra / esp / ita +``` + +`[SYSTEM]` is **empty**, and there is no `[STAGENN_UNIT_MAX]` anywhere. + +| check | result | +|---|---| +| `.ini` files on the extracted disc | **1** โ€” `config.ini`, 400 bytes, printed in full | +| `[STAGENN_UNIT_MAX]` sections in it | **0** | +| `UNIT_MAX` in any pak entry | **0** | +| `VESSEL` in any pak entry | **0** | + +The pak scan is **controlled**: the same loop over all 41 paks decompressed +**26 443 entries** and found `MSG_DEMO` 192ร—, `mapmesh_box_500km` 162ร— and +` โ‡’ **The lookup always misses, so every stage runs on the defaults: +> `PLANE = 200`, `VESSEL = 20`.** + +๐ŸŸก A hash search was run too, in case the section were name-hashed like a pak +entry: `name_hash("STAGE01โ€ฆ33_UNIT_MAX")`, `name_hash("PLANE")`, +`name_hash("VESSEL")` โ€” **0 hits as pak entry keys**. Eight of the 35 hashes did +appear as 4-byte words *inside* entries, seven of them in the 1.1 GB `sound.pak`; +that is the chance rate for a 32-bit needle in a blob that size, not a finding. + ๐ŸŸก Its neighbours belong to the same cluster: `builtin103` reads `[phase+10156]` and `[phase+10152]` (9 and 7 writers), and a sibling vtable stub clears `[phase+10152]`. The shape is an engineโ†’script status trio, but that is a