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.
This commit is contained in:
Sylpheed RE agent
2026-08-28 07:47:06 +00:00
parent ee66627952
commit 4b8a65e04a
2 changed files with 70 additions and 0 deletions

View File

@@ -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.

View File

@@ -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.