re: every challenge mission is flown on a story mission's map

Applied the per-stage join to the other stage-resource fields. Of 338 distinct
(field, value) pairs across the 22 stage objects, 31 are used by more than one
stage. The strongest signal is CollisionMeshes:

  S24  CollisionSet_S11.bin  SUBObjectiveSettings_S01  Anastasis         Test
  S25  CollisionSet_S07.bin  SUBObjectiveSettings_S07  Hargenteen        Test
  S26  CollisionSet_S03.bin  SUBObjectiveSettings_S06  Hargenteen        Test
  S27  CollisionSet_S03.bin  SUBObjectiveSettings_S03  Planet_Lebendorf  Test
  S28  CollisionSet_S14.bin  SUBObjectiveSettings_S01  Lebendorf         EX5
  S29  CollisionSet_S15.bin  SUBObjectiveSettings_S15  Earth             Test

6 of 6 challenge missions reuse a story stage's collision set. Control: S01-S16
are perfectly diagonal, CollisionSet_SNN <-> SUBObjectiveSettings_SNN, 16/16.

Map, objectives and sky are borrowed independently - S24 flies S11's map with
S01's objectives; S26 flies S03's map with S06's objectives under a Hargenteen
sky belonging to neither; S28 flies S14's map with S01's objectives under S01's
sky. Three of six mix, so "S24 is S11" would be wrong.

S28 is the only stage with its own weapon table: 21 stages use
EnumWeapon_Test.tbl (x132), the tutorials EnumWeapon_Tutorial.tbl (x36), and S28
alone EnumWeapon_EX5.tbl (x6). S28 was already the odd stage - the only rou_f004
flight - so this is a second hook on it.

A datapoint for result-screens' open "what does EX_ mean": EX5 is also a variant
suffix on real names - UN_f001_TCAF_DeltaSaber_T_EX5 and
Weapon_TCAF_Ship_AAGun_EX5, 24 each. Not enough to fix the meaning.

Method note: an unanchored EX[0-9] search over binary payloads returns EX0..EX9
at 100-180 hits each - pure noise from matching inside compressed data. Only
prefix-anchored names are real.

All fifteen artefacts byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-28 04:00:52 +00:00
parent 168bebc700
commit 13ac9ccc29
2 changed files with 89 additions and 0 deletions

View File

@@ -119,3 +119,45 @@ running 0…27.
`<lang>\GP_HANGAR_ARSENAL_3D.tbl` all resolve, so the method works).
* Why the numbering skips S17 and parks the tutorials at S18S23 is a production
fact this cannot reach.
## ✅ Every challenge mission is flown on a story mission's map (2026-08-28)
Joining the stage records **per stage** rather than per file name — the same move
that showed S28 borrowing S14's asteroid table ([[asteroid-fields]]):
| stage | `CollisionMeshes` | `EnumerateSubobjective` | `BackGroundID` | `EnumerateWeapon` |
|---|---|---|---|---|
| S24 | **`CollisionSet_S11.bin`** | `SUBObjectiveSettings_S01` | `Anastasis` (S11's) | `EnumWeapon_Test` |
| S25 | **`CollisionSet_S07.bin`** | `SUBObjectiveSettings_S07` | `Hargenteen` (S07's) | `EnumWeapon_Test` |
| S26 | **`CollisionSet_S03.bin`** | `SUBObjectiveSettings_S06` | `Hargenteen` | `EnumWeapon_Test` |
| S27 | **`CollisionSet_S03.bin`** | `SUBObjectiveSettings_S03` | `Planet_Lebendorf` (S03's) | `EnumWeapon_Test` |
| S28 | **`CollisionSet_S14.bin`** | `SUBObjectiveSettings_S01` | `Lebendorf` (S01's) | **`EnumWeapon_EX5.tbl`** |
| S29 | **`CollisionSet_S15.bin`** | `SUBObjectiveSettings_S15` | `Earth` (S15's) | `EnumWeapon_Test` |
**6 of 6 challenge missions reuse a story stage's collision set**, and the control
is exact: **S01S16 are perfectly diagonal**, `CollisionSet_SNN`
`SUBObjectiveSettings_SNN` for their own `NN`, **16/16**. (The 22 stage objects
are the 16 story + 6 challenge; the tutorials share tables, as
[[stage-mission-tables]] records.)
🔑 **Map, objectives and sky are borrowed independently.** S24 flies **S11's map**
with **S01's objectives**; S26 flies **S03's map** with **S06's objectives** under
a `Hargenteen` sky that belongs to neither; S28 flies **S14's map** with **S01's
objectives** under **S01's sky**. Three of the six mix sources, so "S24 *is* S11"
would be wrong — the re-dressing is per field.
🔑 **S28 is the only stage on the disc with its own weapon table.** All 21 others
use `EnumWeapon_Test.tbl` (×132) and the tutorials `EnumWeapon_Tutorial.tbl`
(×36); S28 alone declares **`EnumWeapon_EX5.tbl`** (×6, one per language pack).
A field with exactly one distinctive value is an identification hook, and S28 was
already the odd stage — the only one flying `rou_f004`.
**A datapoint for the open "what does `EX_` mean"** ([[result-screens]]): `EX5`
is also a **variant suffix on real unit and weapon names**
`UN_f001_TCAF_DeltaSaber_T_EX5` and `Weapon_TCAF_Ship_AAGun_EX5`, 24 occurrences
each (4 per pack). So `EX5` names a *variant*, and one stage's weapon list is
built for it. Not yet enough to say what the letters stand for.
⚠️ Method note: an **unanchored** `EX[0-9]` search over the binary payloads
returns `EX0``EX9` at 100180 hits each — pure noise from matching inside
compressed data. Only the prefix-anchored names above are real.