The [map] audit named it in one run: subsystem 17 = Torso, attribute ids 12/13 unresolved. The donor's decompiled torso.hpp carries the authentic enum with binary offsets -- ids 3..15, including StickPosition(9), TorsoUp/Down/ Left/Right(10-13), TorsoCenter(14), MotionState(15). Our table stopped at seven entries with MotionState at id 9, on the strength of a comment claiming the rest were messages. The streamed control mappings bind BY ID as direct WRITE destinations, so the truncation produced two different crashes from one cause: in TM mode the button ids 12/13 resolved NULL (the boot write-fault the moment the joystick polled), and in RIO mode the analog id 9 resolved to our motionState StateIndicator -- every analog packet from a live vRIO wrote raw floats over a watcher-socketed object, and the corrupted chains walked into unmapped memory ~30-40s later. That was the 'intermittent' pod fault at the fixed DPMI-host address. vRIO down = no analog = no corruption, which is why the norio conf launched: every observation from the whole hunt drops out of this mechanism. Fix: the full 13-entry donor table; five int command members carved from the dynamicsState reserve (class size unchanged); ctor zeros them. Verified, two agreeing runs each way: TM mode launches with a clean audit and the Thrustmaster joystick driving the torso (stickY=0.907 -> torsoElev 0.349); RIO mode with vRIO STREAMING launches, zero faults, weapons cycling. pod_render_rec is no longer poisoned and the norio workaround is obsolete. The audit-before-the-archive-call pattern (BT_MAP_LOG walks the same streamed table CreateStreamedMappings consumes, naming what will not resolve) turned a two-day intermittent-corruption hunt into a one-run lookup. The streamed RES tables are binding contracts on our attribute enums. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 lines
977 B
Plaintext
27 lines
977 B
Plaintext
BattleTech v4.10
|
|
BTL4Application::BTL4Application
|
|
GaugeInterpreter: undefined label 'Initialization'
|
|
ColorMapperArmor warning: damage zone dz_missle not found
|
|
ColorMapperArmor warning: damage zone dz_missle not found
|
|
ColorMapperArmor warning: damage zone dz_lmissle not found
|
|
ColorMapperArmor warning: damage zone dz_rmissle not found
|
|
ColorMapperArmor warning: damage zone dz_ftorso not found
|
|
ColorMapperArmor warning: damage zone dz_btorso not found
|
|
|
|
32loader runtime error: Unhandled exception
|
|
|
|
Exception 0E at 00FF:00485E1A error code 00000006
|
|
|
|
CS=00FF DS=0107 ES=0107 SS=0107 FS=011F GS=0000
|
|
EAX=00000000 EBX=009CFDE0 ECX=0012DDC8 EDX=00000044
|
|
EBP=0012DDAC ESP=0012DDAC EDI=0012DE3C ESI=00050421
|
|
|
|
The invalid instruction was executed at 00485E1A
|
|
|
|
Module 'C:\REL410\BT\BTL4REC.EXE' section 'CODE' offset 00075E1A
|
|
|
|
[00485E12]: 8B 40 1C 8B 55 0C 8B 12 - 89 10 5D C3 55 8B EC 53
|
|
|
|
The instruction referenced illegal address 00000000
|
|
|