From 4b8a65e04a9aa58ce30f5160cd77f0cfaa71fe9e Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Fri, 28 Aug 2026 07:47:06 +0000 Subject: [PATCH] re: _all/_child is not a convention (1 of 166); eff_n0071 is a live explosion Refuted, and it was my own suggestion from last turn. Across all 166 .xpr packages the _child suffix occurs in ONE file, Stage_S24.xpr, with exactly one stem, stg24_04, 20 occurrences. Across the 105394 distinct parsed pak names - record names, field names and string values - names ending _all or _child occur ZERO times. So the pair is mesh-internal to a single model and never reaches the data tables; the tables only ever name the bare stg24_04. n = 1 is not a convention, and the multi-part mesh mechanism the corpus actually owns is xbg7-mesh's grouped index/vertex pools, which is a different thing. The orphan tables' five unique effects split three ways, chased through PARSED names rather than .xpr bytes: eff_n0071 LIVE - Generic.GameResourceID in DefTables.pak and an Explosion record's ExplosionFxModel in all six GP_MAIN_GAME_* archives (x6 = one user) eff_e0033 a mesh in Base.xpr, but no data reference eff_e0058/_e0059/_e0060 neither a mesh nor any reference So one "abandoned" entry is not abandoned: the orphan LOD tables list an effect the shipped _test table omits while the game still binds it elsewhere. Control recorded so the negative has force: effect names bind through a whole family of fields - Effect_Paralyze (2874 values), HitFxModel (738), ShellModel (516), JetFxModel_000/001/002, MuzzleFlashFxModel_Loop - so a value that resolves through none of them really is unreferenced, not merely missed by a narrow search. All fifteen artefacts byte-identical. --- docs/re/BACKLOG.md | 27 ++++++++++++++ docs/re/structures/stage-mission-tables.md | 43 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index a8ab243a..f6ed40f8 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -6559,3 +6559,30 @@ resource enumerations — they show presence only, and are acceptable here becau the names are long, distinctive, and matched to the full trailing token. Also **`grep -c` counts lines, not occurrences**; the counts come from `grep -o | wc -l` after that was caught. + +--- + +## ❌✅ 2026-08-28 — `_all`/`_child` is not a convention; `eff_n0071` is a live explosion + +Item (a). + +❌ **Refuted, and it was my own suggestion.** Across all **166 `.xpr`** packages +the `_child` suffix occurs in **one file** (`Stage_S24.xpr`) with **one stem** +(`stg24_04`); across the **105 394 distinct parsed pak names**, `_all`/`_child` +occur **0 times**. The pair is mesh-internal to a single model and never reaches +the data tables. **n = 1 is not a convention** — and the composite mechanism the +corpus actually owns is `xbg7-mesh`'s grouped index/vertex pools. + +✅ **The orphan tables' five unique effects split three ways**: `eff_n0071` is +**live** — a `Generic.GameResourceID` in `DefTables.pak` and an `Explosion` +record's **`ExplosionFxModel`** in all six `GP_MAIN_GAME_*` archives (×6 = one +user). `eff_e0033` has a mesh in `Base.xpr` but no data reference. `_e0058`, +`_e0059`, `_e0060` have **neither**. + +So one "abandoned" entry isn't abandoned: the orphan LOD tables list an effect +the shipped `_test` table omits while the game still binds it elsewhere. + +⚠️ Control recorded: effect names bind through a family of fields — +`Effect_Paralyze` (2 874), `HitFxModel` (738), `ShellModel` (516), +`JetFxModel_00N`, `MuzzleFlashFxModel_Loop` — so a value resolving through none +of them is genuinely unreferenced, not missed by a narrow search. diff --git a/docs/re/structures/stage-mission-tables.md b/docs/re/structures/stage-mission-tables.md index 6d8466ad..3e3784b7 100644 --- a/docs/re/structures/stage-mission-tables.md +++ b/docs/re/structures/stage-mission-tables.md @@ -405,3 +405,46 @@ long and distinctive and the match was expanded to the full trailing token, and they establish **presence**, not a resource enumeration. Also `grep -c` counts *lines*, not occurrences; the counts above come from `grep -o | wc -l` after that was caught. + +### ❌ `parent` + `_all` + `_child` is **not** a convention — one stem, one file + +The `stg24_04` composite invited the reading that this is the engine's standard +composite-model shape. **Measured, it is not:** + +* across all **166 `.xpr`** packages, the `_child` suffix occurs in **1 file** + (`Stage_S24.xpr`), with exactly **one stem** (`stg24_04`), 20 occurrences; +* across the **105 394 distinct parsed pak names** (record names, field names and + string values), names ending `_all` or `_child` occur **0 times**. + +So the pair is **mesh-internal to one model** and never appears in the data +tables at all — the tables only ever name the bare `stg24_04`. **n = 1 is not a +convention**, and the multi-part mesh mechanism the corpus does own is +[[xbg7-mesh]]'s grouped index/vertex pools, which is a different thing entirely. + +### ✅ The orphan tables' five effects split three ways + +Chasing each of the five `_test` lacks, through **parsed** names this time rather +than `.xpr` bytes: + +| effect | in an `.xpr` | referenced in data | +|---|---|---| +| `eff_n0071` | — | **YES — live** | +| `eff_e0033` | `Base.xpr` | no | +| `eff_e0058`, `_e0059`, `_e0060` | **no** | no | + +🔑 **`eff_n0071` is a live explosion effect.** It appears as a +`Generic.GameResourceID` in `DefTables.pak` and as an **`Explosion` record's +`ExplosionFxModel`** in all six `GP_MAIN_GAME_*` archives — ×6, i.e. **one user** +under the per-pak-copy rule. So one of the "abandoned" entries is not abandoned; +the orphan LOD tables list an effect the shipped `_test` table omits even though +the game still binds it elsewhere. + +The other four are declared **only by their own field names in the orphan +tables** — `eff_e0033` at least has a mesh in `Base.xpr`; `_e0058`, `_e0059` and +`_e0060` have neither a mesh nor any other reference. + +⚠️ Control for the "referenced in data" column: effect names are bound through a +whole family of fields — `Effect_Paralyze` (2 874 values), `HitFxModel` (738), +`ShellModel` (516), `JetFxModel_000/001/002`, `MuzzleFlashFxModel_Loop` — so a +value that resolved through none of them really is unreferenced, not merely +missed by a narrow search.