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.
4.1 KiB
✅ The STATIC weapon datasheet — Weapon, Shell, AssortMissileParam
The corpus's weapon numbers came from a runtime capture (weapon-datasheet-runtime, weapon-struct-runtime). The static tables behind them are now located and read, with no emulator involved.
How they were found
Not by guessing a filename. IDXD field names are literal strings in the string
pool, so the stat-shaped keys already harvested from the disassembly
(data/config-keys.txt — MegaTons, GuidanceType, SpiralType,
Straight1Type, BulletLimit, CrewCount, HP_CLASS, …) can be searched
directly across every record on the disc. 8 648 records carry at least one, and
they cluster on three record names.
What is there
| record | per pak | fields | what it is |
|---|---|---|---|
Weapon |
131 | 21 | the launcher — rate of fire, heat, ammo, SE/FX |
Shell |
131 | 37 | the projectile — damage, ballistics, collision, FX |
AssortMissileParam |
9 | 20 | missile guidance tuning |
131 Weapon and 131 Shell records, one-to-one, in each of the per-language
GP_MAIN_GAME_*.pak files; a weapon and its shell share a pak entry. Note this is
131, not the 59 of the WEAPONS name roster — the roster is the arsenal
menu's list, not the full set.
Weapon (sample: Weapon_TCAF_DeltaSaber_Rocket_P)
ID / Name Weapon_TCAF_DeltaSaber_Rocket_P
TargetType Vessel,Craft,Structure
ShotType Single ReticleType 5
HitRatio 1.0 SprayAngle 4.0
Interval 1.0 ReadyInterval 0.0
TriggerShotCount 1 TriggerShotInterval 0.1
LoadingCount 1000 Heating 0.00 Cooling 0.10
Mass 100 SpecialWeaponType 0
ShootSE / ReadySE / FinishSE, MuzzleFlashFxModel_Loop / _OneShot
Shell (sample: Shell_TCAF_DeltaSaber_Rocket_P)
Power 100.0 DamageType Shell FailedDamageRatio 1.0
Velocity 3000.0 Acceleration 0.0 AngularVelocity 0.0
MinimumVelocity / MaximumVelocity 0.0
MinimumRange 10.0 MaximumRange 6000.0 LifeTime 3.0
CollisionType Capsule Radius 30.0 Length 10.0 Volume 10.0
ShellMass 0.005 HP 0.0 MovementType Shell
IsGravitated Yes IsDestructible No IsLockable No IsFullCollision No
IsFixedModel Yes ShellModel wep_t085
Color_R/G/B 1.0 / 0.85 / 0.7
HitFxModel eff_h000 HitFxInEnd Yes ContrailFxFrame GN_Trc_01
JetFxModel / JetFxFrame, HitSE_Damage / HitSE_NoDamage, ThrusterSE
MaximumRange 6000.0 with the corpus's world unit = 1 metre makes this a
6 km rocket; Velocity 3000.0 is 3 km/s.
AssortMissileParam — the guidance model
GuidanceType 0 SpiralType 1 Straight1Type 1 Straight2Type 0
st1_df_aperture 0.5 st1_up_aperture 1.0 st1_up_bias_pow 0.5 st1_df_pitch 10
sp_sp_round_time 0.35 … 0.5 sp_sp_spiral_pow 0.05 … 0.1
sp_qu_cycle_time 0.6 … 1.2 sp_qu_bias_pow 0.35 … 0.65
sp_zg_cycle 0.2 … 0.4 sp_zg_bias 0.1 … 0.3
Three named motion modes with min/max ranges — sp spiral, qu quick-turn,
zg zig-zag — plus a straight-flight aperture and pitch. Nine variants ship.
🔴 And a controlled negative: stageNN_settings.tbl does not exist
AUTO_SETTINGS names 28 files stage01_settings.tbl … stage29_settings.tbl.
Probing pak entry names (name_hash) with four path prefixes — bare,
stage\, arsenal\, dat\ — finds 0 of 116, while the two controls in the
same loop (stage\UnitGroup_S02.tbl, stage\AIParams_S02.tbl) are both
found. So the reader and prefix convention are right and those files are simply
not on the disc — the same shape as STAGENN_UNIT_MAX.
🟡 Not settled
- Whether the 131
Weaponrecords reconcile with the runtime capture field by field — this locates and reads the table; it does not cross-check it. - The other stat keys (
MegaTons,BulletLimit,CrewCount,HP_CLASS,HPGauge,WEAPON_CATEGORIES) belong to records not opened here. - Why the arsenal roster lists 59 of the 131 weapons.