Earthsiege Research archive

Profile and mount field catalogue

The definitions browser now joins movement, aiming, damage, collision, camera, LOD, equipment and effect consumers back to the original records. Values and on-disk offsets are retained alongside the typed names; native HERC objects add a two-byte prefix, so their instruction offsets are two greater.

build_stats.py decodes and checks the original readers; audit_profile_consumers.py adds the consumer catalogue and bounded runtime-read index. Rebuild them in that order. The latter records 80 distinct profile read sites across 144 original full simulation frames in six initialized scenarios: idle, moving, turning, activated opponents, firing and collision. Actual actor controllers, damage and weapon methods execute; input is controlled and sound uses the documented silent gate. The report is profile-consumers.json.

Disk offset Meaning / consumer
0–8 Body steering and gait rates/accelerations; LOCOMOTION.md
10 Camera part ID, original 0x13201
12–18, 26–44 Movement/start-stop and articulated aiming sequences/rates/limits
20 Placement height
22, 24 Shield center height and radius; 0xfca8 / HERC impact 0x13b44
46–65 Signed part-ID list, negative terminator; cross-LOD binding 0x19ba0
66 Base combat assessment rating
68 Disabled animation sequence
70 Low-memory model root selection, 0x19cf0
72, 74, 76 Leg count, removal after destruction, contact mass factor
78, 80 Zero in all 16 supplied profiles; no semantic consumer identified and no read in this bounded trace
82, 84 Chassis salvage value and detachable-weapon permission
86–97 Display name bytes
98–104 Local camera attachment and orbit-focus Y/Z offsets, 0x10ee0
106 Runtime chassis index; loader 0x19cf0 overwrites the stored word
108, 110 Reverse fast-gait exit rate and actor contact radius
112–116 Signed attachment-effect type list, negative terminator
117–121 Corresponding animated model part IDs
122 Turn-in-place sequence
124–147 Twelve internal-damage combat-rating penalties
148 LIGHT/MEDIUM/HEAVY/ENEMY texture bank selection
150–169 Ten stored sound-trigger thresholds; current attachment consumer indexes 0–3
170–189 Ten stored sound-rearm thresholds; current attachment consumer indexes 0–3
190 Initial shield capacity

Original 0x11330 creates the attached effects from the type list and the 0xbc1d8 model table. 0x144dc places them at their animated part transforms. For the player's footsteps it selects a threshold pair according to gait, direction and disabled/collapse state. Crossing one threshold arms a latch; crossing the other emits sound 29 or 31 and clears it. Thus these sounds follow authored motion rather than a constant timer. The disabled type-2 case uses world height; the ordinary footstep case uses the part's local Y coordinate. The full stored arrays remain visible even though their extra slots lack a demonstrated current consumer.

GL mount records are 26 bytes: part ID at 0; pitch/yaw sequence at 2/4; orientation at 6; cockpit control number at 7; XYZ position at 16/18/20; paired-slot relative offset at 22; equipment slot at 23. Construction, muzzle transforms, templates, weapon groups and paired firing are documented in WEAPONS.md and MODEL_BROWSER.md. Disk 8/10/12/14/24 remain unlabelled. Their values resemble angle bounds and a rate, but values alone do not establish that meaning or that the current game uses them. The bounded original frame trace observes no reads of those bytes; raw values are retained and are not applied as invented limits in the viewer.

No observed read is not a proof against other branches or computed consumers. These are explicit endpoints for the remaining neutral fields, not claims that all historical intentions have been recovered. The complete original tape replays add scheduling evidence; they do not by themselves give every stored value a semantic name.