re: the static weapon datasheet -- Weapon, Shell, AssortMissileParam
The corpus's weapon numbers came from a runtime capture; the static tables are now read with no emulator. The move: IDXD field names are literal strings in the pool, so the stat-shaped keys already harvested from the disassembly (MegaTons, GuidanceType, SpiralType, ...) can be searched directly. 8648 records carry at least one, clustering on three record names in every per-language GP_MAIN_GAME_*.pak: Weapon 131 records, 21 fields -- the launcher Shell 131 records, 37 fields -- the projectile AssortMissileParam 9 records, 20 fields -- missile guidance 131, not the 59 of the WEAPONS roster: that roster is the arsenal menu's list, not the full set. Controlled negative in the same pass: stageNN_settings.tbl does not exist. AUTO_SETTINGS names 28; four path prefixes give 0/116 while both controls in the same loop are found. Also decoded: EnumUnit (54 unit ids tying eNNN/fNNN mesh prefixes to faction/class names), ArmsItemFile (59 weapon -> HUD icon mappings), SETTINGS (sound config), Parameters (HUD markers). New structure doc + artefact; ISL artefacts byte-identical.
This commit is contained in:
@@ -786,6 +786,47 @@ unknown, what evidence exists, and what the first step would be. Move an item in
|
||||
and the corpus's existing weapon datasheet came from a runtime capture, so the
|
||||
static table behind it is still unlocated.
|
||||
|
||||
* ✅✅ **(2026-08-27) THE STATIC WEAPON DATASHEET IS FOUND — `Weapon` (131),
|
||||
`Shell` (131), `AssortMissileParam` (9).
|
||||
[structures/weapon-datasheet-static](structures/weapon-datasheet-static.md),
|
||||
artefact `data/weapon-shell-static.txt`.**
|
||||
The corpus's weapon numbers came from a RUNTIME capture; the static tables
|
||||
behind them are now read with no emulator. 🔑 **The move: IDXD field names are
|
||||
literal strings in the pool**, so the stat-shaped keys already harvested from
|
||||
the disassembly (`MegaTons`, `GuidanceType`, `SpiralType`, `Straight1Type`, …)
|
||||
can be searched directly. **8 648 records carry at least one**, clustering on
|
||||
three record names in every per-language `GP_MAIN_GAME_*.pak`.
|
||||
**`Weapon`** (21 fields): `ID`/`Name`, `TargetType Vessel,Craft,Structure`,
|
||||
`ShotType`, `HitRatio`, `Interval`, `TriggerShotCount`/`TriggerShotInterval`,
|
||||
`LoadingCount`, `Heating`/`Cooling`, `SprayAngle`, `Mass`, `ReticleType`, plus
|
||||
SE and muzzle-flash FX names.
|
||||
**`Shell`** (37 fields): `Power`, `Velocity`, `Acceleration`, `AngularVelocity`,
|
||||
`MinimumRange`/`MaximumRange`, `LifeTime`, `CollisionType Capsule`,
|
||||
`Radius`/`Length`/`Volume`, `ShellMass`, `HP`, `DamageType`, `MovementType`,
|
||||
`IsGravitated`/`IsDestructible`/`IsLockable`/`IsFullCollision`, `Color_R/G/B`,
|
||||
`ShellModel`, hit/jet/contrail FX and SE. With **world unit = 1 metre**, the
|
||||
sample rocket is 6 km range at 3 km/s.
|
||||
**`AssortMissileParam`** (20 fields): the guidance model — `GuidanceType`,
|
||||
`SpiralType`, `Straight1Type/2Type` and min/max ranges for three named motion
|
||||
modes (`sp_sp_*` spiral, `sp_qu_*` quick-turn, `sp_zg_*` zig-zag) plus straight
|
||||
aperture/pitch. Nine variants ship.
|
||||
⚠️ **131, not 59.** The `WEAPONS` roster read last iteration lists 59 — that is
|
||||
the *arsenal menu's* list, not the full weapon set.
|
||||
🔴 **Controlled negative in the same pass: `stageNN_settings.tbl` does not
|
||||
exist.** `AUTO_SETTINGS` names 28 of them; probing pak entry names with **four**
|
||||
path prefixes finds **0 / 116**, while the two controls in the same loop
|
||||
(`stage\UnitGroup_S02.tbl`, `stage\AIParams_S02.tbl`) are **both found**. Same
|
||||
shape as `STAGENN_UNIT_MAX` — named but not shipped.
|
||||
📎 Also decoded on the way: `EnumUnit` = 54 real unit ids
|
||||
(`UN_e107_ADAN_AAFrigate`, `UN_f102_TCAF_LightCarrier_Inv`, …), tying the
|
||||
`eNNN`/`fNNN` mesh prefixes to readable faction/class names; `ArmsItemFile` = 59
|
||||
weapon-id → HUD icon `.t32` mappings (icons, not stats); `SETTINGS` in
|
||||
`tables.pak` = the sound config (`PATH game:\dat\sound.pak+`,
|
||||
`PARAM Pj_Silph.xgs`, member `BANK_SE`); `Parameters` = HUD marker config.
|
||||
🟡 Not settled: reconciling the 131 records against the runtime capture field by
|
||||
field; the stat keys in records not opened here (`MegaTons`, `BulletLimit`,
|
||||
`CrewCount`, `HP_CLASS`); why the roster lists 59 of 131.
|
||||
|
||||
## ✅✅ SOLVED — the mission freeze was a modal sign-in dialog (2026-08-26)
|
||||
|
||||
`XamShowSigninUI` opens a modal dialog and `xeXamDispatchDialog` blocks the
|
||||
|
||||
Reference in New Issue
Block a user