re: EnumWeapon_EX5.tbl adds exactly one weapon; a tutorial expectation refuted

Diffed S28's bespoke weapon table against the common one. The disc has exactly
three weapon tables, and each is a single EnumWeapon record whose FIELD NAMES
are the weapons - the Enumerate-style declaration shape again:

  EnumWeapon_Test.tbl       126 names
  EnumWeapon_EX5.tbl        127 names = the same 126, same order, plus one
  EnumWeapon_Tutorial.tbl     9 names = a strict subset of Test
  union                     127

The whole of S28's bespoke table is one extra weapon,
Weapon_TCAF_Ship_AAGun_EX5. Zero removals, identical order on the shared 126.

That explains one of weapon-struct-runtime's five "never instantiated" disc
records: the AA-gun variant is declared by EnumWeapon_EX5.tbl only, and that
table belongs to S28 alone, which the captured save was not playing.

It also refutes that document's expectation that "running the tutorial should
instantiate the _Ttrl pair". It will not: EnumWeapon_Tutorial.tbl's nine names
are Weapon_NULL, Weapon_ADAN_Puppy_NoseGun, Weapon_DSaber_P_wep_{01_Beam,
02_Missile,58_Laser} and Weapon_TCAF_DeltaSaber_{Beam,Cannon,Missile,
ASMissile} - neither _Ttrl weapon is among them. Four of the five
uninstantiated records are declared by no weapon table on the disc at all.

EX is still not identified but narrowed hard: the entire content of S28's own
weapon table is a single _EX5 AA-gun variant, and the only other _EX5 name on
the disc is UN_f001_TCAF_DeltaSaber_T_EX5.

All fifteen artefacts byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-28 04:17:15 +00:00
parent 13ac9ccc29
commit ad03991fa1
2 changed files with 61 additions and 2 deletions

View File

@@ -262,8 +262,26 @@ whole `…Ratio` family that blocked Route B is simply "no penalty".
objects; the 5 with no runtime object are context variants that this save
never loads — `Weapon_TCAF_DeltaSaber_NoseGun_Ttrl` / `_Laser_Ttrl`
(tutorial), `_NoseGun_None`, `Weapon_TCAF_Ship_AAGun_EX5`,
`Weapon_ADAN_Attacker_S_GunTurret`. Running the tutorial should instantiate
the `_Ttrl` pair. No runtime object lacked a disc record.
`Weapon_ADAN_Attacker_S_GunTurret`. No runtime object lacked a disc record.
✅🔴 **Followed up statically 2026-08-28 — and "running the tutorial should
instantiate the `_Ttrl` pair" is refuted.** The disc has exactly **three**
weapon tables, and each is a single `EnumWeapon` record whose *field names* are
the weapons: `EnumWeapon_Test.tbl` (126), `EnumWeapon_EX5.tbl` (**127 — the
same 126 plus one**), `EnumWeapon_Tutorial.tbl` (**9, a strict subset of
Test**). Union: **127**.
| of the five | declared by |
|---|---|
| `Weapon_TCAF_Ship_AAGun_EX5` | **`EnumWeapon_EX5.tbl` only** — and that table belongs to **S28 alone** ([[stage-numbering-and-player-craft]]) |
| `_NoseGun_Ttrl`, `_Laser_Ttrl`, `_NoseGun_None`, `Weapon_ADAN_Attacker_S_GunTurret` | **no weapon table at all** |
So one of the five is explained — it loads only in Stage 28 — and the other
four are **declared by nothing on the disc**, tutorial included: the nine names
in `EnumWeapon_Tutorial.tbl` are `Weapon_NULL`, `Weapon_ADAN_Puppy_NoseGun`,
`Weapon_DSaber_P_wep_{01_Beam,02_Missile,58_Laser}` and
`Weapon_TCAF_DeltaSaber_{Beam,Cannon,Missile,ASMissile}` — **neither `_Ttrl`
weapon is among them.** Running the tutorial will not instantiate them.
- Defaulted `Power` values vary per weapon (1, 10, 100, 300, 500, 1000), so they
are **not** one constructor constant. Where they come from — the IDXD's
undecoded binary node/index region, or per-type code defaults — is **not