The canopy-eye confirming run (5th post-Torso-fix run with vRIO live) faulted with the old signature during the load drain -- four clean runs then one fault. The two-runs rule keeps earning its keep. The BT_MAP_LOG audit now prints the whole resolved contract, not just NULLs. The L4 list carries 13 direct mappings: mapper stick/throttle/reverse/looks (ids 3/4/6/10-12), Torso torsoCenter (id 14, matching the donor), and TriggerState (id 19 = the known 0x13 binding) on six weapons. Every destination resolves and every size is right -- the 8-byte joystick write lands in an 8-byte ControlsJoystick, buttons are ints into ints. One type wart noted, not fixed: MechWeapon binds TriggerState onto fireImpulse, a Scalar -- a ButtonGroup direct writes an int bit-pattern, so a real trigger press stores 1.4e-45f. Size-safe, but the fire FSM will never read a real button press as a pull; fire worked in tests only via the BT_FORCE_FIRE hook, which writes a proper float. The RIO trigger needs an int home for TriggerState. Surviving fault theories, in current order: an emulator/DPMI-host serial-IRQ interaction whose probability guest timing merely modulates (the fault's constants -- fixed host EIP, fixed cr2, always during the load drain -- fit this better than the corruption story ever did, since the smash point never moved across builds where our BSS moved); a second corruption source outside the direct mappings; sampling noise. riostreak.sh is measuring the post-fix rate over four consecutive runs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
15 lines
637 B
Bash
15 lines
637 B
Bash
#!/bin/bash
|
|
# Four consecutive RIO-live runs; count faults. Each run ends at launch or fault.
|
|
cd /c/VWE/TeslaRel410/emulator/render-bridge
|
|
RESULTS=""
|
|
for i in 1 2 3 4; do
|
|
bash podrun.sh pod_render_rec streak$i > /dev/null 2>&1
|
|
until grep -q "Turning Plasma" podlog.txt 2>/dev/null || grep -qE "illegal address|page you don't own" podlog.txt 2>/dev/null; do sleep 10; done
|
|
if grep -q "page you don't own" podlog.txt; then R=FAULT; else R=CLEAN; fi
|
|
T=$(grep -o "ticks=[0-9]*" podlog.txt | tail -1)
|
|
RESULTS="$RESULTS run$i=$R($T)"
|
|
echo "run$i: $R $T"
|
|
done
|
|
taskkill //F //IM dosbox-x.exe > /dev/null 2>&1
|
|
echo "STREAK RESULT:$RESULTS"
|