From 3da617d04bc549d4d62e2a89399b136ae35220fd Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Fri, 28 Aug 2026 06:11:41 +0000 Subject: [PATCH] re: BackGroundID is an identity, not a file name; its sibling names the asset The one value class that resolved to neither a record nor a file resolves to neither because it is neither. BackGroundID lives on StageResource (174 records carry it) directly beside BackGroundPackage, and that sibling holds the real asset: game:\hidden\Resource3D\BG_.xpr. My earlier suffix sweep had a real bug: it tried BG_ and .xpr as alternatives, never as a pair, so BG_Acheron.xpr was never in the search space. A one-transform-at-a-time sweep cannot find a two-transform name. But the obvious follow-on hypothesis - "the package is BG_.xpr" - is also refuted: it holds in only 12 of the 24 StageResource records carrying both fields. Hargenteen spans six packages (BG_Hargenteen{,_near,_far,_dead}.xpr plus BG_Acheron.xpr and BG_Stg26.xpr), and BG_Acheron.xpr serves both the Acheron id (S09) and the Hargenteen id (S25). The relation is many-to-many in both directions, roughly 18 distinct packages across 10 ids. So the id is a logical place - Acheron, Earth, Hargenteen, Lebendorf - and the package is the mesh actually loaded, chosen per stage from that place's _near / _far / _dead variants. Two details fall out: PD is the Prometheus Driver (BG_P_Driver.xpr, on S16, the boss stage), and the challenge stages that re-dress a story sky carry bespoke BG_Stg24/26/27.xpr packages while keeping the story stage's id - the same borrow-and-re-dress pattern already recorded for maps and objectives. Not settled: Original carries no BackGroundPackage at all; whether that means no sky or an engine default is unknown. All fifteen artefacts byte-identical. --- docs/re/BACKLOG.md | 27 +++++++++++++ docs/re/structures/stage-definition-table.md | 42 ++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 761af8b4..b1e6e627 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -6380,3 +6380,30 @@ strings for all ten backgrounds — and also 0 for `Formation_4_Bird`, `AI_Structure`, `NP_ArrowHead`, `ACROPOLIS`, `CollisionSet_S03.bin`, all of which *do* resolve in data. The executable names no data value, so the negative discriminates nothing. + +--- + +## ✅❌ 2026-08-28 — `BackGroundID` is an identity; the sibling field names the asset + +Item (a). The one value class that resolved to neither record nor file resolves +to neither **because it is neither**. `BackGroundID` lives on `StageResource` +(174 records) directly beside **`BackGroundPackage`**, which holds the real asset +`game:\hidden\Resource3D\BG_.xpr`. + +⚠️ **My earlier suffix sweep had a bug**: it tried `BG_` and `.xpr` as +alternatives, never as a pair, so `BG_Acheron.xpr` was never in the search space. +**A one-transform-at-a-time sweep cannot find a two-transform name.** + +❌ **"the package is `BG_.xpr`" is refuted** — true in only **12 of 24** +records. `Hargenteen` spans six packages (`_near`/`_far`/`_dead`, plus +`BG_Acheron.xpr` and `BG_Stg26.xpr`); `BG_Acheron.xpr` serves two different ids. +**Many-to-many both ways**, ~18 packages across 10 ids. + +🔑 The id is a **logical place** (Acheron, Earth, Hargenteen, Lebendorf) and the +package is the mesh actually loaded, chosen per stage from that place's variants. +`PD` = the Prometheus Driver (`BG_P_Driver.xpr`, S16). The challenge stages that +re-dress a story sky carry bespoke `BG_Stg24/26/27.xpr` while keeping the story +id — the same borrow-and-re-dress pattern already seen for maps and objectives. + +🟡 Not settled: `Original` carries **no** `BackGroundPackage` — whether that is +"no sky" or an engine default is unknown. diff --git a/docs/re/structures/stage-definition-table.md b/docs/re/structures/stage-definition-table.md index b0774b41..9cc05d42 100644 --- a/docs/re/structures/stage-definition-table.md +++ b/docs/re/structures/stage-definition-table.md @@ -273,3 +273,45 @@ exact strings for all ten, but it also contains **0** for `Formation_4_Bird`, of which *does* resolve in data. The executable names no data value at all, so this negative does not distinguish backgrounds from anything else. **Powerless, not evidence** — recorded so it is not re-run. + +### ✅ `BackGroundID` is an identity, not a file name — its sibling names the asset + +The sweep above left `BackGroundID` as the one class resolving to neither a +record nor a file. It resolves to **neither because it is neither**: the field +lives on `StageResource` (174 records carry it) directly beside +**`BackGroundPackage`**, and *that* sibling holds the asset — +`game:\hidden\Resource3D\BG_.xpr`. + +⚠️ **My earlier suffix test had a real bug.** It tried `BG_` and `.xpr` as +alternatives, never as a **pair**, so `BG_Acheron.xpr` was outside the search +space. **A one-transform-at-a-time sweep cannot find a two-transform name.** + +❌ **But "the package is `BG_.xpr`" is refuted too** — it holds in only +**12 of the 24** `StageResource` records that carry both fields: + +| `BackGroundID` | packages actually used | +|---|---| +| `Hargenteen` | `BG_Hargenteen{,_near,_far,_dead}.xpr`, **`BG_Acheron.xpr`**, `BG_Stg26.xpr` | +| `Acheron` | `BG_Acheron.xpr`, `BG_Acheron_near.xpr` | +| `Lebendorf` | `BG_Lebendorf.xpr`, `BG_Lebendorf_near.xpr` | +| `Earth` | `BG_Earth.xpr`, `BG_Earth_far.xpr` | +| `Planet_Lebendorf` | `BG_Planet_Lebendorf.xpr`, `BG_Stg27.xpr` | +| `Anastasis` | `BG_Anastasis.xpr`, `BG_Stg24.xpr` | +| `PD` | **`BG_P_Driver.xpr`** | +| `Original` | **none — the field is absent** | + +🔑 So the id is a **logical place** — the game's own locations, Acheron, Earth, +Hargenteen, Lebendorf — and the package is the **mesh actually loaded**, picked +per stage from `_near` / `_far` / `_dead` variants of that place. The relation is +**many-to-many in both directions**: `Hargenteen` spans six packages, and +`BG_Acheron.xpr` serves both `Acheron` (S09) and `Hargenteen` (S25). Roughly 18 +distinct packages across 10 ids. + +Two details the table hands over: **`PD` is the Prometheus Driver** +(`BG_P_Driver.xpr`, on S16 — the boss stage, cf. [[stage16-boss]]), and the three +challenge stages that re-dress a story sky carry **bespoke `BG_Stg24/26/27.xpr`** +packages while keeping the story stage's id — the same borrow-and-re-dress +pattern [[stage-numbering-and-player-craft]] found for maps and objectives. + +🟡 **`Original` has no `BackGroundPackage` at all.** Whether that means "no sky" +or "whatever the engine defaults to" is not settled here.