re: the roster's two vocabularies, and a prefix match I mistook for a hit
Correction to the previous commit's own result. The raw byte sweep reported rot_n001 "26 times in 7 archives" - a SUBSTRING count. The exact field value occurs zero times, in every IDXD record and every non-IDXD payload. What the disc carries is rot_n001_break x14, LOD_Frame_rot_n001_break x7, GameModel_rot_n001_break x5. rot_n001 exact is not on this disc. A prefix match is not an exact match, and a byte sweep is the tool that breaks it. rou_e202 does exist, in the other vocabulary: a Model field of a Generic record, six times, one per GP_MAIN_GAME_<lang> pack, with no GameResourceID - which is why the GameResourceID census called it absent. Set arithmetic over every IDXD record: roster 40, Generic.Model 46, GameResourceID 480; roster n Model 34, roster n GID 38, roster n both 33. 38 + 34 - 33 = 39, so 39 of 40 are one or the other and rot_n001 is the sole exception. The six that are GID but not Model: mob_n040..043 are the four AsteroidGroup_00N.AsteroidModelName values (asteroid models, not units) and rou_e004 is a Level_0.Model. What selects the 40 is still open, but two answers are dead: not the Generic.Model set (34 of 46), not the GameResourceID set (38 of 480). The 12 Generic.Model values outside the roster include rou_f002 and rou_f004 - the player's own craft for S7-S16/S24-27,29 and for S28 - while rou_f001 is kept, so "the playable models" is dead too. All fifteen artefacts byte-identical.
This commit is contained in:
@@ -489,3 +489,58 @@ exactly one per `GP_MAIN_GAME_<lang>` pack, with none in `DefTables`. Controls o
|
||||
the same sweep: `rou_e201` 151 / 8 archives, `rou_e901` 917 / 8, `mob_n500` 46 / 8.
|
||||
So neither is an image-only name; **`rou_e202` is simply the rarest member of the
|
||||
roster**, carried once per language pack. 🟡 Which field holds them is not settled.
|
||||
|
||||
## 🔴✅ The roster's two vocabularies — and a prefix match I mistook for a hit (2026-08-28)
|
||||
|
||||
🔴 **Correction first.** Last iteration's raw byte sweep reported `rot_n001` "26
|
||||
times in 7 archives". That was a **substring** count. Matching the *exact* field
|
||||
value gives **zero**, in every IDXD record and every non-IDXD payload. Expanding
|
||||
the surrounding characters shows what the disc actually carries:
|
||||
|
||||
```
|
||||
rot_n001_break x14
|
||||
LOD_Frame_rot_n001_break x7
|
||||
GameModel_rot_n001_break x5
|
||||
```
|
||||
|
||||
**`rot_n001` exact does not exist on this disc; `rot_n001_break` does**, and it is
|
||||
itself one of the `Generic.Model` values. The image names the stem, the disc names
|
||||
the `_break` variant. **A prefix match is not an exact match** — the corpus's own
|
||||
rule, and the byte sweep is exactly the tool that breaks it.
|
||||
|
||||
✅ **`rou_e202` does exist**, in the *other* vocabulary: it is a **`Model` field of
|
||||
a `Generic` record**, six times — one per `GP_MAIN_GAME_<lang>` pack — and it has
|
||||
no `GameResourceID`. That is why the `GameResourceID` census called it absent.
|
||||
|
||||
✅ **The roster is covered by two disjointly-populated fields.** Exact-value sets
|
||||
across every IDXD record on the disc:
|
||||
|
||||
| set | size |
|
||||
|---|---:|
|
||||
| the compiled roster | 40 |
|
||||
| `Generic.Model` values | **46** |
|
||||
| `GameResourceID` values | 480 |
|
||||
| roster ∩ `Generic.Model` | 34 |
|
||||
| roster ∩ `GameResourceID` | 38 |
|
||||
| roster ∩ **both** | 33 |
|
||||
|
||||
`38 + 34 − 33 = 39` — **39 of the 40 are one or the other**, and the single
|
||||
uncovered name is `rot_n001`, for the reason above. The six roster names that are
|
||||
`GameResourceID` but not `Generic.Model` explain themselves:
|
||||
`mob_n040`…`mob_n043` are the four **`AsteroidGroup_00N.AsteroidModelName`**
|
||||
values (18 each, one per pack — asteroid models, not units), and `rou_e004` is a
|
||||
`Level_0.Model`, not a `Generic` one.
|
||||
|
||||
🟡 **What selects the 40 is still open, and two candidate answers are now dead.**
|
||||
It is not the `Generic.Model` set (34 of 46) and not the `GameResourceID` set
|
||||
(38 of 480). The 12 `Generic.Model` values *outside* the roster are `mob_n050`,
|
||||
`rob_e005`, `rot_n001_break`, `rou_e001`, `rou_e002`, `rou_e016`, `rou_e017`,
|
||||
`rou_e018`, **`rou_f002`, `rou_f004`**, an empty string, and a Shift-JIS literal
|
||||
`文字列` ("character string" — a template placeholder, the `_Test` pattern again).
|
||||
**`rou_f002` and `rou_f004` are the player's own craft** for S7–S16 + S24–27,29 and
|
||||
for S28 ([[stage-numbering-and-player-craft]]), and the roster omits both while
|
||||
keeping `rou_f001` — so "the playable or most-used models" is dead too.
|
||||
|
||||
[[unit-substructure-records]] mentions `Generic.Model` as "the mesh the corpus
|
||||
already decodes"; what it does not say is that there are only **46 distinct**
|
||||
values of it disc-wide. `AsteroidGroup_00N` / `AsteroidModelName` are new nouns.
|
||||
|
||||
Reference in New Issue
Block a user