BT410 5.3.78: the torso twists from the button path; two buffer overruns fixed

BT_FORCE_TORSO sweeps the twist BUTTONS -- the members the streamed direct
mappings write -- so the chain runs without a hand on the RIO.  Live on the
pod: twist sweeps -0.015 to -0.891 rad and back as cmdL/cmdR alternate, at
the resource rate 0.873 rad/s, inside the authored +/-2.443 limits, with
jointtorso resolved.  End to end: attribute id -> direct-mapping destination
-> TorsoSimulation integrator -> skeleton joint -> the canopy eye hanging off
that chain.  5.3.68's table and 5.3.71's integrator both confirmed against
real button semantics.

Two buffer overruns, one of them mine.  Reading TORSO.CPP back caught the
ctor still zeroing dynamicsState[22] after I shrank the array to [16] by
carving the command members out of its front: 24 bytes past the end of every
Torso, on the heap, every mission, since 5.3.68.  A sweep for the same shape
across BT/BT_L4/MUNGA found a pre-existing one -- MECHMPPR.CPP zeroing
reserved[22] against reserved[21].

Both now bound by ELEMENTS().  The rule for this tree: any array carved out
of a reserve block must have its initialiser bound by ELEMENTS, because the
carve is exactly the edit that silently invalidates a literal.

Neither explains the residual host fault (it predates 5.3.68 at 3/3), but
both were real corruption running in every mission -- and the Torso one was
introduced by the very fix that cut the fault rate, which is worth
remembering whenever a rate MOVES instead of going to zero.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-29 19:52:38 -05:00
co-authored by Claude Fable 5
parent e69d761fb8
commit 3c289ff10a
8 changed files with 1940 additions and 180 deletions
+1 -171
View File
@@ -1,5 +1,5 @@
LOG: Early LOG Init complete
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_quiet.conf
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_rec.conf
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
LOG: Logging init: beginning logging proper. This is the end of the early init logging
LOG: Logging: No logfile was given. All further logging will be discarded.
@@ -54,173 +54,3 @@ LOG: ISA Plug & Play BIOS enabled
LOG: VGA ROM BIOS init callback
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
LOG: WARNING: No translation support (to host) for code page 0
LOG: DOS keyboard layout loaded with main language code US for layout us
LOG: XMS: 50 handles allocated for use by the DOS environment
LOG: EMS page frame at 0xe000-0xefff
LOG: COMMAND.COM env size: 720 bytes
LOG: COMMAND.COM environment block: 0x0701 sz=0x002d
LOG: COMMAND.COM main body (PSP): 0x072f sz=0x009a
LOG: COMMAND.COM stack: 0x0749
LOG: pixratio 1.350, dw false, dh false
LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750
LOG: SHELL:Redirect output to COM3
LOG: VPXLOG: fifosock client connected
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
LOG: 185063235 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]00000000/0 [44]bf6ae9ee/-0.917632 [48]ffffffff/nan
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
VPX lights@f121: type6=2 typeE=6 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
VPX_PF_WATCH hit: lin=7000FA64 code=4 CS:EIP=00FF:000066D4 SS:ESP=0107:00017560
EAX=00000001 EBX=F000CA60 ECX=00000000 EDX=FFFFFFFF ESI=00017640 EDI=00017574 EBP=00017570
now=201863.877ms last serial RX 0.871ms ago deliveries=5569
code @EIP: 6A 00 57 53 56 FF 53 04 83 F8 00 0F 84 9C 07 00 00 8B 1B EB E6 6A 01 57
stack: 00017640 F000CA60 00017574 00000000 00120F92 0001000F 00000000 00000000 00000000 00000000
IVT match for EBX=F000CA60: INT00 INT06 INT07 INT2B INT2C INT2D INT32 INT34 INT35 INT36 INT37 INT38 INT39 INT3A INT3B INT3C INT3D INT3E INT3F INT40 INT42 INT44 INT45 INT47 INT48 INT49 INT4A INT4C INT4D INT4E INT4F INT50 INT51 INT52 INT53 INT54 INT55 INT56 INT57 INT58 INT59 INT5A INT5B INT5C INT5D INT5E INT5F INT66 INT68 INT69 INT6A INT6B INT6C INT6D INT6E INT6F
IVT[08-0F]: 0D1A0777 0D1A077B 0D1A077F 0D1A0783 0D1A0787 0D1A078B 0D1A078F 0D1A0793
ebp chain: [00017570]ret=0001000F
rx[ 0] t=201743.006 (120.871 ago) cs:eip=00FF:0044244C byte=00
rx[ 1] t=201745.004 (118.873 ago) cs:eip=00FF:00428B35 byte=00
rx[ 2] t=201746.005 (117.872 ago) cs:eip=00FF:004C427C byte=00
rx[ 3] t=201748.005 (115.872 ago) cs:eip=00FF:0000B83A byte=00
rx[ 4] t=201750.003 (113.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 5] t=201752.005 (111.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 6] t=201754.004 (109.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 7] t=201756.004 (107.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 8] t=201758.005 (105.872 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 9] t=201761.003 (102.873 ago) cs:eip=00FF:004CE03E byte=07
rx[ 10] t=201762.004 (101.873 ago) cs:eip=00FF:004CDFC8 byte=FC
rx[ 11] t=201764.003 (99.873 ago) cs:eip=0020:0000176F byte=87
rx[ 12] t=201766.009 (97.868 ago) cs:eip=00FF:0045F505 byte=00
rx[ 13] t=201768.006 (95.871 ago) cs:eip=0020:000040A6 byte=00
rx[ 14] t=201771.005 (92.872 ago) cs:eip=00FF:004290B0 byte=00
rx[ 15] t=201773.004 (90.873 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 16] t=201774.004 (89.873 ago) cs:eip=00FF:00441928 byte=00
rx[ 17] t=201776.008 (87.869 ago) cs:eip=00FF:00429109 byte=00
rx[ 18] t=201778.004 (85.873 ago) cs:eip=00FF:004424BC byte=00
rx[ 19] t=201780.004 (83.873 ago) cs:eip=00FF:004C4292 byte=00
rx[ 20] t=201781.009 (82.867 ago) cs:eip=00FF:0045EE5B byte=00
rx[ 21] t=201783.004 (80.873 ago) cs:eip=00FF:0042539C byte=00
rx[ 22] t=201785.003 (78.873 ago) cs:eip=00FF:004CDFC8 byte=07
rx[ 23] t=201787.005 (76.872 ago) cs:eip=00FF:004CE03E byte=FC
rx[ 24] t=201789.005 (74.872 ago) cs:eip=00FF:004CDFC8 byte=87
rx[ 25] t=201791.005 (72.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 26] t=201792.004 (71.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 27] t=201794.003 (69.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 28] t=201796.014 (67.863 ago) cs:eip=0020:000002B1 byte=00
rx[ 29] t=201798.005 (65.872 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 30] t=201801.004 (62.873 ago) cs:eip=00FF:0042C958 byte=00
rx[ 31] t=201803.005 (60.872 ago) cs:eip=00FF:00442442 byte=00
rx[ 32] t=201804.004 (59.873 ago) cs:eip=00FF:0042C9B4 byte=00
rx[ 33] t=201806.006 (57.871 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 34] t=201808.005 (55.871 ago) cs:eip=00FF:0042585D byte=00
rx[ 35] t=201810.003 (53.873 ago) cs:eip=00FF:004CE3B3 byte=07
rx[ 36] t=201812.003 (51.873 ago) cs:eip=00FF:004318F3 byte=FC
rx[ 37] t=201813.005 (50.871 ago) cs:eip=00FF:00410608 byte=87
rx[ 38] t=201815.006 (48.871 ago) cs:eip=00FF:004CC3F8 byte=00
rx[ 39] t=201817.007 (46.870 ago) cs:eip=00FF:004C4223 byte=00
rx[ 40] t=201819.010 (44.867 ago) cs:eip=00FF:0045ECFF byte=00
rx[ 41] t=201821.005 (42.871 ago) cs:eip=00FF:00424B40 byte=00
rx[ 42] t=201822.006 (41.871 ago) cs:eip=00FF:004109C8 byte=00
rx[ 43] t=201824.004 (39.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 44] t=201826.005 (37.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 45] t=201829.004 (34.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 46] t=201830.004 (33.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 47] t=201832.006 (31.871 ago) cs:eip=0020:00000FE8 byte=00
rx[ 48] t=201834.003 (29.873 ago) cs:eip=0020:00001755 byte=07
rx[ 49] t=201836.004 (27.873 ago) cs:eip=0020:0000176F byte=FC
rx[ 50] t=201838.004 (25.873 ago) cs:eip=00FF:0044244C byte=87
rx[ 51] t=201841.007 (22.870 ago) cs:eip=00FF:00441928 byte=00
rx[ 52] t=201843.011 (20.866 ago) cs:eip=00FF:00429109 byte=00
rx[ 53] t=201844.005 (19.872 ago) cs:eip=00FF:0042C958 byte=00
rx[ 54] t=201846.003 (17.873 ago) cs:eip=00FF:00442428 byte=00
rx[ 55] t=201848.005 (15.872 ago) cs:eip=00FF:00429109 byte=00
rx[ 56] t=201850.005 (13.872 ago) cs:eip=00FF:0042512B byte=00
rx[ 57] t=201851.004 (12.873 ago) cs:eip=0020:00001E01 byte=00
rx[ 58] t=201854.004 (9.873 ago) cs:eip=00FF:00422A28 byte=00
rx[ 59] t=201856.004 (7.873 ago) cs:eip=0020:000002E5 byte=00
rx[ 60] t=201858.904 (4.973 ago) cs:eip=00FF:00492A13 byte=00
rx[ 61] t=201859.009 (4.867 ago) cs:eip=0020:00001738 byte=07
rx[ 62] t=201861.005 (2.871 ago) cs:eip=0020:000040B8 byte=FC
rx[ 63] t=201863.006 (0.871 ago) cs:eip=00FF:00493CFB byte=87
VPX_PF_WATCH hit: lin=7000FA64 code=4 CS:EIP=00FF:000066D9 SS:ESP=0107:00017560
EAX=00000001 EBX=F000CA60 ECX=00000000 EDX=FFFFFFFF ESI=00017640 EDI=00017574 EBP=00017570
now=201864.707ms last serial RX 0.803ms ago deliveries=5570
code @EIP: FF 53 04 83 F8 00 0F 84 9C 07 00 00 8B 1B EB E6 6A 01 57 56 6A 02 6A 00
stack: 00017640 F000CA60 00017574 00000000 00120F92 0001000F 00000000 00000000 00000000 00000000
IVT match for EBX=F000CA60: INT00 INT06 INT07 INT2B INT2C INT2D INT32 INT34 INT35 INT36 INT37 INT38 INT39 INT3A INT3B INT3C INT3D INT3E INT3F INT40 INT42 INT44 INT45 INT47 INT48 INT49 INT4A INT4C INT4D INT4E INT4F INT50 INT51 INT52 INT53 INT54 INT55 INT56 INT57 INT58 INT59 INT5A INT5B INT5C INT5D INT5E INT5F INT66 INT68 INT69 INT6A INT6B INT6C INT6D INT6E INT6F
IVT[08-0F]: 0D1A0777 0D1A077B 0D1A077F 0D1A0783 0D1A0787 0D1A078B 0D1A078F 0D1A0793
ebp chain: [00017570]ret=0001000F
rx[ 0] t=201745.004 (119.703 ago) cs:eip=00FF:00428B35 byte=00
rx[ 1] t=201746.005 (118.702 ago) cs:eip=00FF:004C427C byte=00
rx[ 2] t=201748.005 (116.702 ago) cs:eip=00FF:0000B83A byte=00
rx[ 3] t=201750.003 (114.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 4] t=201752.005 (112.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 5] t=201754.004 (110.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 6] t=201756.004 (108.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 7] t=201758.005 (106.702 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 8] t=201761.003 (103.703 ago) cs:eip=00FF:004CE03E byte=07
rx[ 9] t=201762.004 (102.703 ago) cs:eip=00FF:004CDFC8 byte=FC
rx[ 10] t=201764.003 (100.703 ago) cs:eip=0020:0000176F byte=87
rx[ 11] t=201766.009 (98.698 ago) cs:eip=00FF:0045F505 byte=00
rx[ 12] t=201768.006 (96.701 ago) cs:eip=0020:000040A6 byte=00
rx[ 13] t=201771.005 (93.702 ago) cs:eip=00FF:004290B0 byte=00
rx[ 14] t=201773.004 (91.703 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 15] t=201774.004 (90.703 ago) cs:eip=00FF:00441928 byte=00
rx[ 16] t=201776.008 (88.699 ago) cs:eip=00FF:00429109 byte=00
rx[ 17] t=201778.004 (86.703 ago) cs:eip=00FF:004424BC byte=00
rx[ 18] t=201780.004 (84.703 ago) cs:eip=00FF:004C4292 byte=00
rx[ 19] t=201781.009 (83.697 ago) cs:eip=00FF:0045EE5B byte=00
rx[ 20] t=201783.004 (81.703 ago) cs:eip=00FF:0042539C byte=00
rx[ 21] t=201785.003 (79.703 ago) cs:eip=00FF:004CDFC8 byte=07
rx[ 22] t=201787.005 (77.702 ago) cs:eip=00FF:004CE03E byte=FC
rx[ 23] t=201789.005 (75.702 ago) cs:eip=00FF:004CDFC8 byte=87
rx[ 24] t=201791.005 (73.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 25] t=201792.004 (72.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 26] t=201794.003 (70.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 27] t=201796.014 (68.693 ago) cs:eip=0020:000002B1 byte=00
rx[ 28] t=201798.005 (66.702 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 29] t=201801.004 (63.703 ago) cs:eip=00FF:0042C958 byte=00
rx[ 30] t=201803.005 (61.702 ago) cs:eip=00FF:00442442 byte=00
rx[ 31] t=201804.004 (60.703 ago) cs:eip=00FF:0042C9B4 byte=00
rx[ 32] t=201806.006 (58.701 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 33] t=201808.005 (56.701 ago) cs:eip=00FF:0042585D byte=00
rx[ 34] t=201810.003 (54.703 ago) cs:eip=00FF:004CE3B3 byte=07
rx[ 35] t=201812.003 (52.703 ago) cs:eip=00FF:004318F3 byte=FC
rx[ 36] t=201813.005 (51.701 ago) cs:eip=00FF:00410608 byte=87
rx[ 37] t=201815.006 (49.701 ago) cs:eip=00FF:004CC3F8 byte=00
rx[ 38] t=201817.007 (47.700 ago) cs:eip=00FF:004C4223 byte=00
rx[ 39] t=201819.010 (45.697 ago) cs:eip=00FF:0045ECFF byte=00
rx[ 40] t=201821.005 (43.701 ago) cs:eip=00FF:00424B40 byte=00
rx[ 41] t=201822.006 (42.701 ago) cs:eip=00FF:004109C8 byte=00
rx[ 42] t=201824.004 (40.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 43] t=201826.005 (38.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 44] t=201829.004 (35.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 45] t=201830.004 (34.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 46] t=201832.006 (32.701 ago) cs:eip=0020:00000FE8 byte=00
rx[ 47] t=201834.003 (30.703 ago) cs:eip=0020:00001755 byte=07
rx[ 48] t=201836.004 (28.703 ago) cs:eip=0020:0000176F byte=FC
rx[ 49] t=201838.004 (26.703 ago) cs:eip=00FF:0044244C byte=87
rx[ 50] t=201841.007 (23.700 ago) cs:eip=00FF:00441928 byte=00
rx[ 51] t=201843.011 (21.696 ago) cs:eip=00FF:00429109 byte=00
rx[ 52] t=201844.005 (20.702 ago) cs:eip=00FF:0042C958 byte=00
rx[ 53] t=201846.003 (18.703 ago) cs:eip=00FF:00442428 byte=00
rx[ 54] t=201848.005 (16.702 ago) cs:eip=00FF:00429109 byte=00
rx[ 55] t=201850.005 (14.702 ago) cs:eip=00FF:0042512B byte=00
rx[ 56] t=201851.004 (13.703 ago) cs:eip=0020:00001E01 byte=00
rx[ 57] t=201854.004 (10.703 ago) cs:eip=00FF:00422A28 byte=00
rx[ 58] t=201856.004 (8.703 ago) cs:eip=0020:000002E5 byte=00
rx[ 59] t=201858.904 (5.803 ago) cs:eip=00FF:00492A13 byte=00
rx[ 60] t=201859.009 (5.697 ago) cs:eip=0020:00001738 byte=07
rx[ 61] t=201861.005 (3.701 ago) cs:eip=0020:000040B8 byte=FC
rx[ 62] t=201863.006 (1.701 ago) cs:eip=00FF:00493CFB byte=87
rx[ 63] t=201863.904 (0.803 ago) cs:eip=0020:00001758 byte=00
LOG: 498970844 ERROR INT10:PutPixel unhandled mode type 7
LOG: SHELL:Redirect output to RC.TXT
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:120 (IF0:11), TX:0, Break 0
+456
View File
@@ -0,0 +1,456 @@
BattleTech v4.10
BTL4Application::BTL4Application
GaugeInterpreter: undefined label 'Initialization'
[exp] master player experience=2 simLive=1 heatModelOn=1 advDamage=1
[role] 'Role::Default' lives=1000 killBonus=500 dmgMod=1
[torso] horizJoint 'jointtorso' -> 0x009db5ec type=1 enabled=1
[weap] 'AFC100' seg=13 mount=sitelgunport rear=0
[proj] 'AFC100' ammoBinIndex=21 -> AmmoBinAFC100 (rounds=20)
[weap] 'ERLLaser' seg=7 mount=siterugunport rear=0
[weap] 'ERSLaser_1' seg=13 mount=sitelgunport rear=0
[weap] 'ERSLaser_2' seg=8 mount=siterdgunport rear=0
[weap] 'LRM15_1' seg=18 mount=sitelmissleport rear=0
[proj] 'LRM15_1' ammoBinIndex=26 -> AmmoBinLRM15_1 (rounds=16)
[weap] 'LRM15_2' seg=19 mount=sitermissleport rear=0
[proj] 'LRM15_2' ammoBinIndex=28 -> AmmoBinLRM15_2 (rounds=16)
[mech] segment walk done: subsystemCount=32 weaponCount=6
[skel] jointSubsystem=0x009fb3c4 jointCount=25
[mech] model params: walkTR=65 runTR=40 maxAcc=20 throttleAdj=0.8 (deg,deg,u/s^2,scale)
[mech] look angles: L=50 R=-50 F=-15 B=0 (deg)
[mech] damage zones streamed: 22 [dz_dtorso,dz_hip,dz_larm,dz_ldleg,dz_ldoor,dz_lfoot,dz_lgun,dz_ltorso,dz_luleg,dz_rarm,dz_rdleg,dz_rdoor,dz_reardtorso,dz_rearltorso,dz_rearrtorso,dz_rearutorso,dz_rfoot,dz_rgun,dz_rtorso,dz_ruleg,dz_searchlight,dz_utorso]
[cyl] table 'madcat' LOADED rows=7
[valve] 'Condenser1' valve=1 flow=0.166667
[valve] 'Condenser2' valve=1 flow=0.166667
[valve] 'Condenser3' valve=1 flow=0.166667
[valve] 'Condenser4' valve=1 flow=0.166667
[valve] 'Condenser5' valve=1 flow=0.166667
[valve] 'Condenser6' valve=1 flow=0.166667
[mapper] ctor id=0 throttleAttr=0x00981408 controlModeAttr=0x00981444
[map] 109 streamed mappings for 'L4'
[map] dir sub=0 cls=2012 id=3 grp=1 elem=0
[map] dir sub=0 cls=2012 id=4 grp=0 elem=0
[map] dir sub=0 cls=2012 id=6 grp=3 elem=63
[map] dir sub=17 cls=3013 id=14 grp=3 elem=66
[map] dir sub=0 cls=2012 id=10 grp=3 elem=68
[map] dir sub=0 cls=2012 id=11 grp=3 elem=67
[map] dir sub=0 cls=2012 id=12 grp=3 elem=65
[map] dir sub=22 cls=3021 id=19 grp=3 elem=64
[map] dir sub=23 cls=3016 id=19 grp=3 elem=64
[map] dir sub=24 cls=3016 id=19 grp=3 elem=64
[map] dir sub=25 cls=3016 id=19 grp=3 elem=64
[map] dir sub=27 cls=3024 id=19 grp=3 elem=71
[map] dir sub=29 cls=3024 id=19 grp=3 elem=71
[gau2] cluster slot=14 classID=3011 auxScreen=5 name=Avionics
[gau2] cluster slot=15 classID=3014 auxScreen=6 name=Myomers
[gau2] cluster slot=22 classID=3021 auxScreen=1 name=AFC100
[gau2] cluster slot=23 classID=3016 auxScreen=10 name=ERLLaser
[gau2] cluster slot=24 classID=3016 auxScreen=3 name=ERSLaser_1
[gau2] cluster slot=25 classID=3016 auxScreen=12 name=ERSLaser_2
[gau2] cluster slot=27 classID=3024 auxScreen=2 name=LRM15_1
[gau2] cluster slot=29 classID=3024 auxScreen=9 name=LRM15_2
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
[link] InitializePlayerLink -> vehicle playerLink=0x00aec2c0
[launch] state=11 minPriorityEmpty=0 ticks=10877
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
[posts] id3=416
[launch] state=11 minPriorityEmpty=0 ticks=11889
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
[posts] id3=502
[launch] state=11 minPriorityEmpty=0 ticks=12899
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=11 minPriorityEmpty=0 ticks=13908
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=11 minPriorityEmpty=0 ticks=14917
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 1 class=3035 view=0 res=0
[mer] 2 class=42 view=0 res=1
[mer] 3 class=42 view=0 res=1
[mer] 4 class=42 view=0 res=1
[mer] 5 class=42 view=0 res=1
[mer] 6 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=16019
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 7 class=42 view=0 res=1
[mer] 8 class=42 view=0 res=1
[mer] 9 class=42 view=0 res=1
[mer] 10 class=42 view=0 res=1
[mer] 11 class=42 view=0 res=1
[mer] 12 class=42 view=0 res=1
[mer] 13 class=42 view=0 res=1
[mer] 14 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=17063
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 15 class=42 view=0 res=1
[mer] 16 class=42 view=0 res=1
[mer] 17 class=42 view=0 res=1
[mer] 18 class=42 view=0 res=1
[mer] 19 class=42 view=0 res=1
[mer] 20 class=42 view=0 res=1
[mer] 21 class=42 view=0 res=1
[mer] 22 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=18122
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 23 class=42 view=0 res=1
[mer] 24 class=42 view=0 res=1
[mer] 25 class=42 view=0 res=1
[mer] 26 class=42 view=0 res=1
[mer] 27 class=42 view=0 res=1
[mer] 28 class=42 view=0 res=1
[mer] 29 class=42 view=0 res=1
[mer] 30 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=19180
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 31 class=42 view=0 res=1
[mer] 32 class=42 view=0 res=1
[mer] 33 class=42 view=0 res=1
[mer] 34 class=42 view=0 res=1
[mer] 35 class=42 view=0 res=1
[mer] 36 class=42 view=0 res=1
[mer] 37 class=42 view=0 res=1
[mer] 38 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=20226
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 39 class=94 view=0 res=1
[mer] 40 class=42 view=0 res=1
[mer] 41 class=94 view=0 res=1
[mer] 42 class=94 view=0 res=1
[mer] 43 class=94 view=0 res=1
[mer] 44 class=94 view=0 res=1
[mer] 45 class=94 view=0 res=1
[mer] 46 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=21267
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 47 class=94 view=0 res=1
[mer] 48 class=94 view=0 res=1
[mer] 49 class=42 view=0 res=1
[mer] 50 class=42 view=0 res=1
[mer] 51 class=42 view=0 res=1
[mer] 52 class=42 view=0 res=1
[mer] 53 class=42 view=0 res=1
[mer] 54 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=22299
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 55 class=94 view=0 res=1
[mer] 56 class=94 view=0 res=1
[mer] 57 class=94 view=0 res=1
[mer] 58 class=42 view=0 res=1
[mer] 59 class=42 view=0 res=1
[mer] 60 class=42 view=0 res=1
[mer] 61 class=42 view=0 res=1
[mer] 62 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=23329
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 63 class=94 view=0 res=1
[mer] 64 class=94 view=0 res=1
[mer] 65 class=94 view=0 res=1
[mer] 66 class=94 view=0 res=1
[mer] 67 class=94 view=0 res=1
[mer] 68 class=42 view=0 res=1
[mer] 69 class=94 view=0 res=1
[mer] 70 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=24359
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 71 class=94 view=0 res=1
[mer] 72 class=94 view=0 res=1
[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24624 pump=352/1499
[mer] 73 class=94 view=0 res=1
[mer] 74 class=94 view=0 res=1
[mer] 75 class=94 view=0 res=1
[mer] 76 class=42 view=0 res=1
[mer] 77 class=94 view=0 res=1
[mer] 78 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=25409
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 79 class=94 view=0 res=1
[mer] 80 class=94 view=0 res=1
[mer] 81 class=94 view=0 res=1
[mer] 82 class=94 view=0 res=1
[mer] 83 class=94 view=0 res=1
[mer] 84 class=94 view=0 res=1
[mer] 85 class=42 view=0 res=1
[mer] 86 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=26471
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 87 class=42 view=0 res=1
[mer] 88 class=42 view=0 res=1
[mer] 89 class=42 view=0 res=1
[mer] 90 class=42 view=0 res=1
[mer] 91 class=94 view=0 res=1
[mer] 92 class=94 view=0 res=1
[mer] 93 class=42 view=0 res=1
[mer] 94 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=27532
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 95 class=94 view=0 res=1
[mer] 96 class=94 view=0 res=1
[mer] 97 class=94 view=0 res=1
[mer] 98 class=94 view=0 res=1
[mer] 99 class=42 view=0 res=1
[mer] 100 class=42 view=0 res=1
[mer] 101 class=42 view=0 res=1
[mer] 102 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=28593
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 103 class=42 view=0 res=1
[mer] 104 class=42 view=0 res=1
[mer] 105 class=42 view=0 res=1
[mer] 106 class=42 view=0 res=1
[mer] 107 class=42 view=0 res=1
[mer] 108 class=42 view=0 res=1
[mer] 109 class=42 view=0 res=1
[mer] 110 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=29631
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 111 class=42 view=0 res=1
[mer] 112 class=42 view=0 res=1
[mer] 113 class=42 view=0 res=1
[mer] 114 class=42 view=0 res=1
[mer] 115 class=42 view=0 res=1
[mer] 116 class=42 view=0 res=1
[mer] 117 class=42 view=0 res=1
[mer] 118 class=42 view=0 res=1
[mer] 119 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=30740
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 120 class=94 view=0 res=1
[mer] 121 class=42 view=0 res=1
[mer] 122 class=42 view=0 res=1
[mer] 123 class=42 view=0 res=1
[mer] 124 class=42 view=0 res=1
[mer] 125 class=42 view=0 res=1
[mer] 126 class=42 view=0 res=1
[mer] 127 class=42 view=0 res=1
[mer] 128 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=31851
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 129 class=42 view=0 res=1
[mer] 130 class=42 view=0 res=1
[mer] 131 class=42 view=0 res=1
[mer] 132 class=42 view=0 res=1
[mer] 133 class=42 view=0 res=1
[mer] 134 class=42 view=0 res=1
[mer] 135 class=42 view=0 res=1
[mer] 136 class=42 view=0 res=1
[mer] 137 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=32960
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 138 class=42 view=0 res=1
[mer] 139 class=42 view=0 res=1
[mer] 140 class=42 view=0 res=1
[mer] 141 class=42 view=0 res=1
[mer] 142 class=42 view=0 res=1
[mer] 143 class=94 view=0 res=1
[mer] 144 class=94 view=0 res=1
[mer] 145 class=94 view=0 res=1
[mer] 146 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=34069
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 147 class=94 view=0 res=1
[mer] 148 class=42 view=0 res=1
[mer] 149 class=94 view=0 res=1
[mer] 150 class=94 view=0 res=1
[mer] 151 class=94 view=0 res=1
[mer] 152 class=42 view=0 res=1
[mer] 153 class=42 view=0 res=1
[mer] 154 class=42 view=0 res=1
[mer] 155 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=35182
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 156 class=42 view=0 res=1
[mer] 157 class=42 view=0 res=1
[mer] 158 class=94 view=0 res=1
[mer] 159 class=94 view=0 res=1
[mer] 160 class=42 view=0 res=1
[mer] 161 class=42 view=0 res=1
[mer] 162 class=42 view=0 res=1
[mer] 163 class=42 view=0 res=1
[mer] 164 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=36291
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 165 class=94 view=0 res=1
[mer] 166 class=42 view=0 res=1
[mer] 167 class=94 view=0 res=1
[mer] 168 class=42 view=0 res=1
[mer] 169 class=94 view=0 res=1
[mer] 170 class=94 view=0 res=1
[mer] 171 class=42 view=0 res=1
[mer] 172 class=42 view=0 res=1
[mer] 173 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=37400
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 174 class=94 view=0 res=1
[mer] 175 class=42 view=0 res=1
[mer] 176 class=42 view=0 res=1
[mer] 177 class=94 view=0 res=1
[mer] 178 class=94 view=0 res=1
[mer] 179 class=94 view=0 res=1
[mer] 180 class=42 view=0 res=1
[mer] 181 class=42 view=0 res=1
[mer] 182 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=38511
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 183 class=94 view=0 res=1
[mer] 184 class=94 view=0 res=1
[mer] 185 class=42 view=0 res=1
[mer] 186 class=94 view=0 res=1
[mer] 187 class=94 view=0 res=1
[mer] 188 class=94 view=0 res=1
[mer] 189 class=42 view=0 res=1
[mer] 190 class=42 view=0 res=1
[mer] 191 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=39620
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 192 class=94 view=0 res=1
[mer] 193 class=42 view=0 res=1
[mer] 194 class=42 view=0 res=1
[mer] 195 class=42 view=0 res=1
[mer] 196 class=42 view=0 res=1
[mer] 197 class=94 view=0 res=1
[mer] 198 class=94 view=0 res=1
[mer] 199 class=94 view=0 res=1
[mer] 200 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=40729
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=40766 pump=495/2643
[mer] 201 class=94 view=0 res=1
[mer] 202 class=94 view=0 res=1
[mer] 203 class=94 view=0 res=1
[mer] 204 class=42 view=0 res=1
[mer] 205 class=94 view=0 res=1
[mer] 206 class=94 view=0 res=1
[mer] 207 class=48 view=0 res=0
[mer] 208 class=3001 view=1 res=1
[vid] type=1 file='mad.skl'
[eye] cockpit eye on 'jointeye' offset=(0,0,0)
[skl] video\max.skl -> 26 nodes, 1 objects, 1 eye
[launch] state=2 minPriorityEmpty=0 ticks=41841
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=42950
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=44059
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =7468
[launch] state=2 minPriorityEmpty=0 ticks=45104
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=46166
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=47227
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=48289
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=49351
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=50413
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=51475
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=52539
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=53601
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=54663
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=55723
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=56785
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[stack] frame at 0x12dee7 drift=0 over 3003 frames ticks=57413 pump=638/3787
[launch] state=2 minPriorityEmpty=0 ticks=57847
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=58909
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=59971
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=61033
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=62093
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=63153
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=64214
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=65276
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=66338
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=67400
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=68461
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 209 class=48 view=0 res=0
[mer] 210 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=0 ticks=69523
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 211 class=48 view=0 res=0
[mer] 212 class=48 view=0 res=0
[mer] 213 class=48 view=0 res=0
[mer] 214 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=0 ticks=70585
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 215 class=48 view=0 res=0
[mer] 216 class=48 view=0 res=0
[mer] 217 class=94 view=0 res=1
Reference to a page you don't own
PF cr2= 7000 FA64 at 00FF 0000 66D9
Unhandled exception 000E at 00FF 66D9 ErrCode 0004
+226
View File
@@ -0,0 +1,226 @@
LOG: Early LOG Init complete
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_quiet.conf
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
LOG: Logging init: beginning logging proper. This is the end of the early init logging
LOG: Logging: No logfile was given. All further logging will be discarded.
LOG: DOSBox-X version 2026.06.02 Commit d75a57c (MinGW SDL2 64-bit)
LOG: Prevent capture: 0
LOG: SDL: version 2.32.10, Video windows, Audio directsound
LOG: EXPERIMENTAL: Debugger enabled for MinGW build, DOSBox-X crashes depending on the terminal software you use. Launching from command prompt (cmd.exe) is recommended.
LOG: Windows keyboard layout ID is 0x0409
LOG: Host keyboard layout is now us (US English)
LOG: Mapper keyboard layout is now us (US English)
LOG: SDL2 reports desktop display mode 3440 x 1440
LOG: OpenGL Version : 4.6.0 NVIDIA 610.47
LOG: Configured windowposition: -
LOG: SDL: Current window pixel format: SDL_PIXELFORMAT_RGB888
LOG: SDL: You are running in 24 bpp mode, this will slow down things!
LOG: Releasing keyboard
LOG: SDL: Windows 11 round corners will be disabled.
LOG: Screen report: Method 'Win98base' (3440.000 x 1440.000 pixels) at (0.000 x 0.000) (910.167 x 381.000 mm) (35.833 x 15.000 in) (96.000 x 96.000 DPI)
LOG: ISA BCLK: 8333333.333Hz (25000000/3)
LOG: monopal: green,
LOG: Active save slot: 1 [Empty]
LOG: USING AVI+ZMBV
LOG: Pentium CMPXCHG8B emulation is enabled
LOG: Max 1073741824 sz 32768
LOG: Final 32768
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
LOG: VPXLOG: fifosock listening on 127.0.0.1:8621
LOG: VPXLOG: live render backend started
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
LOG: MIDI:Opened device:win32
LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Microphone)
LOG: One joystick reported, initializing with 4axis
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
LOG: VOODOO LFB now at d0000000
LOG: Serial1: BASE 3f8h
LOG: Serial1: namedpipe client of \\.\pipe\vrio (poll 0.10ms burst x16)
LOG: Serial1: namedpipe connected to \\.\pipe\vrio
LOG: Serial2: BASE 2f8h
LOG: Serial2: namedpipe client of \\.\pipe\vplasma (poll 1.00ms burst x1)
LOG: Serial2: namedpipe connected to \\.\pipe\vplasma
LOG: Serial3: BASE 3e8h
LOG: Serial: port 3 will write to file C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
LOG: Parallel1: BASE 378h
LOG: MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
LOG: Memory I/O complexity optimization enabled aka option 'memory io optimization 1'. If the game or demo is unable to draw to the screen properly, set the option to false.
LOG: The 'scanline render on demand' option is available and may provide a modest boost in video render performance if set to true.
LOG: Allocated APM BIOS pm entry point at f000:ce40
LOG: Writing code to fce40
LOG: Writing code to fce60
LOG: Windows: IID_ITaskbarList3 is available
LOG: ISA Plug & Play BIOS enabled
LOG: VGA ROM BIOS init callback
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
LOG: WARNING: No translation support (to host) for code page 0
LOG: DOS keyboard layout loaded with main language code US for layout us
LOG: XMS: 50 handles allocated for use by the DOS environment
LOG: EMS page frame at 0xe000-0xefff
LOG: COMMAND.COM env size: 720 bytes
LOG: COMMAND.COM environment block: 0x0701 sz=0x002d
LOG: COMMAND.COM main body (PSP): 0x072f sz=0x009a
LOG: COMMAND.COM stack: 0x0749
LOG: pixratio 1.350, dw false, dh false
LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750
LOG: SHELL:Redirect output to COM3
LOG: VPXLOG: fifosock client connected
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
LOG: 185063235 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]00000000/0 [44]bf6ae9ee/-0.917632 [48]ffffffff/nan
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
VPX lights@f121: type6=2 typeE=6 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
VPX_PF_WATCH hit: lin=7000FA64 code=4 CS:EIP=00FF:000066D4 SS:ESP=0107:00017560
EAX=00000001 EBX=F000CA60 ECX=00000000 EDX=FFFFFFFF ESI=00017640 EDI=00017574 EBP=00017570
now=201863.877ms last serial RX 0.871ms ago deliveries=5569
code @EIP: 6A 00 57 53 56 FF 53 04 83 F8 00 0F 84 9C 07 00 00 8B 1B EB E6 6A 01 57
stack: 00017640 F000CA60 00017574 00000000 00120F92 0001000F 00000000 00000000 00000000 00000000
IVT match for EBX=F000CA60: INT00 INT06 INT07 INT2B INT2C INT2D INT32 INT34 INT35 INT36 INT37 INT38 INT39 INT3A INT3B INT3C INT3D INT3E INT3F INT40 INT42 INT44 INT45 INT47 INT48 INT49 INT4A INT4C INT4D INT4E INT4F INT50 INT51 INT52 INT53 INT54 INT55 INT56 INT57 INT58 INT59 INT5A INT5B INT5C INT5D INT5E INT5F INT66 INT68 INT69 INT6A INT6B INT6C INT6D INT6E INT6F
IVT[08-0F]: 0D1A0777 0D1A077B 0D1A077F 0D1A0783 0D1A0787 0D1A078B 0D1A078F 0D1A0793
ebp chain: [00017570]ret=0001000F
rx[ 0] t=201743.006 (120.871 ago) cs:eip=00FF:0044244C byte=00
rx[ 1] t=201745.004 (118.873 ago) cs:eip=00FF:00428B35 byte=00
rx[ 2] t=201746.005 (117.872 ago) cs:eip=00FF:004C427C byte=00
rx[ 3] t=201748.005 (115.872 ago) cs:eip=00FF:0000B83A byte=00
rx[ 4] t=201750.003 (113.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 5] t=201752.005 (111.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 6] t=201754.004 (109.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 7] t=201756.004 (107.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 8] t=201758.005 (105.872 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 9] t=201761.003 (102.873 ago) cs:eip=00FF:004CE03E byte=07
rx[ 10] t=201762.004 (101.873 ago) cs:eip=00FF:004CDFC8 byte=FC
rx[ 11] t=201764.003 (99.873 ago) cs:eip=0020:0000176F byte=87
rx[ 12] t=201766.009 (97.868 ago) cs:eip=00FF:0045F505 byte=00
rx[ 13] t=201768.006 (95.871 ago) cs:eip=0020:000040A6 byte=00
rx[ 14] t=201771.005 (92.872 ago) cs:eip=00FF:004290B0 byte=00
rx[ 15] t=201773.004 (90.873 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 16] t=201774.004 (89.873 ago) cs:eip=00FF:00441928 byte=00
rx[ 17] t=201776.008 (87.869 ago) cs:eip=00FF:00429109 byte=00
rx[ 18] t=201778.004 (85.873 ago) cs:eip=00FF:004424BC byte=00
rx[ 19] t=201780.004 (83.873 ago) cs:eip=00FF:004C4292 byte=00
rx[ 20] t=201781.009 (82.867 ago) cs:eip=00FF:0045EE5B byte=00
rx[ 21] t=201783.004 (80.873 ago) cs:eip=00FF:0042539C byte=00
rx[ 22] t=201785.003 (78.873 ago) cs:eip=00FF:004CDFC8 byte=07
rx[ 23] t=201787.005 (76.872 ago) cs:eip=00FF:004CE03E byte=FC
rx[ 24] t=201789.005 (74.872 ago) cs:eip=00FF:004CDFC8 byte=87
rx[ 25] t=201791.005 (72.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 26] t=201792.004 (71.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 27] t=201794.003 (69.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 28] t=201796.014 (67.863 ago) cs:eip=0020:000002B1 byte=00
rx[ 29] t=201798.005 (65.872 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 30] t=201801.004 (62.873 ago) cs:eip=00FF:0042C958 byte=00
rx[ 31] t=201803.005 (60.872 ago) cs:eip=00FF:00442442 byte=00
rx[ 32] t=201804.004 (59.873 ago) cs:eip=00FF:0042C9B4 byte=00
rx[ 33] t=201806.006 (57.871 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 34] t=201808.005 (55.871 ago) cs:eip=00FF:0042585D byte=00
rx[ 35] t=201810.003 (53.873 ago) cs:eip=00FF:004CE3B3 byte=07
rx[ 36] t=201812.003 (51.873 ago) cs:eip=00FF:004318F3 byte=FC
rx[ 37] t=201813.005 (50.871 ago) cs:eip=00FF:00410608 byte=87
rx[ 38] t=201815.006 (48.871 ago) cs:eip=00FF:004CC3F8 byte=00
rx[ 39] t=201817.007 (46.870 ago) cs:eip=00FF:004C4223 byte=00
rx[ 40] t=201819.010 (44.867 ago) cs:eip=00FF:0045ECFF byte=00
rx[ 41] t=201821.005 (42.871 ago) cs:eip=00FF:00424B40 byte=00
rx[ 42] t=201822.006 (41.871 ago) cs:eip=00FF:004109C8 byte=00
rx[ 43] t=201824.004 (39.873 ago) cs:eip=00FF:004CE03E byte=00
rx[ 44] t=201826.005 (37.872 ago) cs:eip=00FF:004CE03E byte=00
rx[ 45] t=201829.004 (34.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 46] t=201830.004 (33.873 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 47] t=201832.006 (31.871 ago) cs:eip=0020:00000FE8 byte=00
rx[ 48] t=201834.003 (29.873 ago) cs:eip=0020:00001755 byte=07
rx[ 49] t=201836.004 (27.873 ago) cs:eip=0020:0000176F byte=FC
rx[ 50] t=201838.004 (25.873 ago) cs:eip=00FF:0044244C byte=87
rx[ 51] t=201841.007 (22.870 ago) cs:eip=00FF:00441928 byte=00
rx[ 52] t=201843.011 (20.866 ago) cs:eip=00FF:00429109 byte=00
rx[ 53] t=201844.005 (19.872 ago) cs:eip=00FF:0042C958 byte=00
rx[ 54] t=201846.003 (17.873 ago) cs:eip=00FF:00442428 byte=00
rx[ 55] t=201848.005 (15.872 ago) cs:eip=00FF:00429109 byte=00
rx[ 56] t=201850.005 (13.872 ago) cs:eip=00FF:0042512B byte=00
rx[ 57] t=201851.004 (12.873 ago) cs:eip=0020:00001E01 byte=00
rx[ 58] t=201854.004 (9.873 ago) cs:eip=00FF:00422A28 byte=00
rx[ 59] t=201856.004 (7.873 ago) cs:eip=0020:000002E5 byte=00
rx[ 60] t=201858.904 (4.973 ago) cs:eip=00FF:00492A13 byte=00
rx[ 61] t=201859.009 (4.867 ago) cs:eip=0020:00001738 byte=07
rx[ 62] t=201861.005 (2.871 ago) cs:eip=0020:000040B8 byte=FC
rx[ 63] t=201863.006 (0.871 ago) cs:eip=00FF:00493CFB byte=87
VPX_PF_WATCH hit: lin=7000FA64 code=4 CS:EIP=00FF:000066D9 SS:ESP=0107:00017560
EAX=00000001 EBX=F000CA60 ECX=00000000 EDX=FFFFFFFF ESI=00017640 EDI=00017574 EBP=00017570
now=201864.707ms last serial RX 0.803ms ago deliveries=5570
code @EIP: FF 53 04 83 F8 00 0F 84 9C 07 00 00 8B 1B EB E6 6A 01 57 56 6A 02 6A 00
stack: 00017640 F000CA60 00017574 00000000 00120F92 0001000F 00000000 00000000 00000000 00000000
IVT match for EBX=F000CA60: INT00 INT06 INT07 INT2B INT2C INT2D INT32 INT34 INT35 INT36 INT37 INT38 INT39 INT3A INT3B INT3C INT3D INT3E INT3F INT40 INT42 INT44 INT45 INT47 INT48 INT49 INT4A INT4C INT4D INT4E INT4F INT50 INT51 INT52 INT53 INT54 INT55 INT56 INT57 INT58 INT59 INT5A INT5B INT5C INT5D INT5E INT5F INT66 INT68 INT69 INT6A INT6B INT6C INT6D INT6E INT6F
IVT[08-0F]: 0D1A0777 0D1A077B 0D1A077F 0D1A0783 0D1A0787 0D1A078B 0D1A078F 0D1A0793
ebp chain: [00017570]ret=0001000F
rx[ 0] t=201745.004 (119.703 ago) cs:eip=00FF:00428B35 byte=00
rx[ 1] t=201746.005 (118.702 ago) cs:eip=00FF:004C427C byte=00
rx[ 2] t=201748.005 (116.702 ago) cs:eip=00FF:0000B83A byte=00
rx[ 3] t=201750.003 (114.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 4] t=201752.005 (112.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 5] t=201754.004 (110.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 6] t=201756.004 (108.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 7] t=201758.005 (106.702 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 8] t=201761.003 (103.703 ago) cs:eip=00FF:004CE03E byte=07
rx[ 9] t=201762.004 (102.703 ago) cs:eip=00FF:004CDFC8 byte=FC
rx[ 10] t=201764.003 (100.703 ago) cs:eip=0020:0000176F byte=87
rx[ 11] t=201766.009 (98.698 ago) cs:eip=00FF:0045F505 byte=00
rx[ 12] t=201768.006 (96.701 ago) cs:eip=0020:000040A6 byte=00
rx[ 13] t=201771.005 (93.702 ago) cs:eip=00FF:004290B0 byte=00
rx[ 14] t=201773.004 (91.703 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 15] t=201774.004 (90.703 ago) cs:eip=00FF:00441928 byte=00
rx[ 16] t=201776.008 (88.699 ago) cs:eip=00FF:00429109 byte=00
rx[ 17] t=201778.004 (86.703 ago) cs:eip=00FF:004424BC byte=00
rx[ 18] t=201780.004 (84.703 ago) cs:eip=00FF:004C4292 byte=00
rx[ 19] t=201781.009 (83.697 ago) cs:eip=00FF:0045EE5B byte=00
rx[ 20] t=201783.004 (81.703 ago) cs:eip=00FF:0042539C byte=00
rx[ 21] t=201785.003 (79.703 ago) cs:eip=00FF:004CDFC8 byte=07
rx[ 22] t=201787.005 (77.702 ago) cs:eip=00FF:004CE03E byte=FC
rx[ 23] t=201789.005 (75.702 ago) cs:eip=00FF:004CDFC8 byte=87
rx[ 24] t=201791.005 (73.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 25] t=201792.004 (72.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 26] t=201794.003 (70.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 27] t=201796.014 (68.693 ago) cs:eip=0020:000002B1 byte=00
rx[ 28] t=201798.005 (66.702 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 29] t=201801.004 (63.703 ago) cs:eip=00FF:0042C958 byte=00
rx[ 30] t=201803.005 (61.702 ago) cs:eip=00FF:00442442 byte=00
rx[ 31] t=201804.004 (60.703 ago) cs:eip=00FF:0042C9B4 byte=00
rx[ 32] t=201806.006 (58.701 ago) cs:eip=00FF:00410EF8 byte=00
rx[ 33] t=201808.005 (56.701 ago) cs:eip=00FF:0042585D byte=00
rx[ 34] t=201810.003 (54.703 ago) cs:eip=00FF:004CE3B3 byte=07
rx[ 35] t=201812.003 (52.703 ago) cs:eip=00FF:004318F3 byte=FC
rx[ 36] t=201813.005 (51.701 ago) cs:eip=00FF:00410608 byte=87
rx[ 37] t=201815.006 (49.701 ago) cs:eip=00FF:004CC3F8 byte=00
rx[ 38] t=201817.007 (47.700 ago) cs:eip=00FF:004C4223 byte=00
rx[ 39] t=201819.010 (45.697 ago) cs:eip=00FF:0045ECFF byte=00
rx[ 40] t=201821.005 (43.701 ago) cs:eip=00FF:00424B40 byte=00
rx[ 41] t=201822.006 (42.701 ago) cs:eip=00FF:004109C8 byte=00
rx[ 42] t=201824.004 (40.703 ago) cs:eip=00FF:004CE03E byte=00
rx[ 43] t=201826.005 (38.702 ago) cs:eip=00FF:004CE03E byte=00
rx[ 44] t=201829.004 (35.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 45] t=201830.004 (34.703 ago) cs:eip=00FF:004CDFC8 byte=00
rx[ 46] t=201832.006 (32.701 ago) cs:eip=0020:00000FE8 byte=00
rx[ 47] t=201834.003 (30.703 ago) cs:eip=0020:00001755 byte=07
rx[ 48] t=201836.004 (28.703 ago) cs:eip=0020:0000176F byte=FC
rx[ 49] t=201838.004 (26.703 ago) cs:eip=00FF:0044244C byte=87
rx[ 50] t=201841.007 (23.700 ago) cs:eip=00FF:00441928 byte=00
rx[ 51] t=201843.011 (21.696 ago) cs:eip=00FF:00429109 byte=00
rx[ 52] t=201844.005 (20.702 ago) cs:eip=00FF:0042C958 byte=00
rx[ 53] t=201846.003 (18.703 ago) cs:eip=00FF:00442428 byte=00
rx[ 54] t=201848.005 (16.702 ago) cs:eip=00FF:00429109 byte=00
rx[ 55] t=201850.005 (14.702 ago) cs:eip=00FF:0042512B byte=00
rx[ 56] t=201851.004 (13.703 ago) cs:eip=0020:00001E01 byte=00
rx[ 57] t=201854.004 (10.703 ago) cs:eip=00FF:00422A28 byte=00
rx[ 58] t=201856.004 (8.703 ago) cs:eip=0020:000002E5 byte=00
rx[ 59] t=201858.904 (5.803 ago) cs:eip=00FF:00492A13 byte=00
rx[ 60] t=201859.009 (5.697 ago) cs:eip=0020:00001738 byte=07
rx[ 61] t=201861.005 (3.701 ago) cs:eip=0020:000040B8 byte=FC
rx[ 62] t=201863.006 (1.701 ago) cs:eip=00FF:00493CFB byte=87
rx[ 63] t=201863.904 (0.803 ago) cs:eip=0020:00001758 byte=00
LOG: 498970844 ERROR INT10:PutPixel unhandled mode type 7
LOG: SHELL:Redirect output to RC.TXT
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:120 (IF0:11), TX:0, Break 0
@@ -60,6 +60,8 @@ set BT_LAUNCH_LOG=1
set BT_STACK_LOG=1
set BT_MER_LOG=1
set BT_EULER_LOG=1
set BT_FORCE_TORSO=1
set BT_TORSO_LOG=1
set BT_FORCE_THROTTLE=0.6
set BT_FORCE_TURN=0.25
set HEAPSIZE=15000000
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -125,7 +125,14 @@ MechControlsMapper::MechControlsMapper(
lookState = LookNone;
previousLookState = LookNone;
{
for (int i = 0; i < 22; ++i)
//
// ELEMENTS(), never a literal -- this said 22 against reserved[21]
// and wrote 4 bytes off the end of every mapper. Found by a sweep
// after the same mistake surfaced in Torso (5.3.78).
//
int
i;
for (i = 0; i < (int)ELEMENTS(reserved); ++i)
{
reserved[i] = 0;
}
+51 -1
View File
@@ -144,7 +144,16 @@ Torso::Torso(
currentElevation = 0.0f;
analogElevationAxis = 0.0f;
analogTwistAxis = 0.0f;
for (int i = 0; i < 22; ++i)
//
// ELEMENTS(), never a literal. This loop said 22 while the array was
// shrunk to 16 by carving the command members out of its front (5.3.68 /
// 5.3.71) -- 24 bytes written past the end of every Torso, on the heap,
// every mission. It compiled and ran; C++ does not check. The macro
// makes the next carve harmless.
//
int
i;
for (i = 0; i < (int)ELEMENTS(dynamicsState); ++i)
{
dynamicsState[i] = 0.0f;
}
@@ -208,6 +217,27 @@ void
twist_step = baseTwistRate * time_slice,
elev_step = baseElevationRate * time_slice;
//
// DEV HOOK BT_FORCE_TORSO=1: sweep the twist BUTTONS left/right without a
// hand on the RIO. This drives the exact members the streamed direct
// mappings write (twistLeftCommand / twistRightCommand), so it exercises
// the real button path end to end -- table binding, this integrator, the
// skeleton joint, and the cockpit eye that rides the twist chain -- and
// makes the result visible on the render bridge. The donor carries the
// same hook for the same reason (torso.cpp:583).
//
// Held for ~90 frames each way, matching the donor's period.
//
if (getenv("BT_FORCE_TORSO") != NULL)
{
static int
sweep = 0;
sweep++;
twistLeftCommand = ((sweep / 90) & 1) ? 1 : 0;
twistRightCommand = ((sweep / 90) & 1) ? 0 : 1;
}
if (buttonRampActive == 0)
{
buttonRamp = buttonAccelerationStart;
@@ -309,6 +339,26 @@ void
}
}
if (getenv("BT_TORSO_LOG") != NULL)
{
static int
torso_tick = 0;
if ((torso_tick++ % 240) == 0)
{
DEBUG_STREAM << "[torso] twist=" << currentTwist
<< " elev=" << currentElevation
<< " cmdL=" << twistLeftCommand
<< " cmdR=" << twistRightCommand
<< " axis=" << analogTwistAxis
<< " rate=" << baseTwistRate
<< " limits=(" << horizontalLimitRight
<< ".." << horizontalLimitLeft << ")"
<< " joint=" << (horizontalJointNode != NULL ? 1 : 0)
<< endl << flush;
}
}
currentTwist += analogTwistAxis * baseTwistRate * time_slice;
Scalar lo = (horizontalLimitLeft < horizontalLimitRight)
? horizontalLimitLeft : horizontalLimitRight;
@@ -1788,3 +1788,41 @@ routine that owns that chain, which needs a trace of entries to host 0x66CF
with the head node -- clean run vs faulting run. That is a DPMI32VM reversing
sub-project, and it is now decoupled from the reconstruction: with vRIO down
the pod is 100%% reliable, and with the logged conf it is ~70%%.
--------------------------------------------------------------------------------
THE TORSO TWISTS FROM THE BUTTON PATH -- AND TWO BUFFER OVERRUNS FOUND
--------------------------------------------------------------------------------
BT_FORCE_TORSO sweeps the twist BUTTONS (the members the streamed direct
mappings write) so the whole chain can be exercised without a hand on the
RIO. Live on the pod:
[torso] twist=-0.0148 cmdL=0 cmdR=1 rate=0.8727 limits=(-2.4435..2.4435) joint=1
[torso] twist=-0.8910 cmdL=0 cmdR=1 ...
[torso] twist=-0.8308 cmdL=1 cmdR=0 ...
[torso] twist=-0.0157 cmdL=0 cmdR=1 ...
Sweeping and reversing at the resource rate (0.873 rad/s = 50 deg/s), inside
the authored limits, with jointtorso resolved (type=1, enabled). End to end:
attribute id -> direct-mapping write destination -> TorsoSimulation
integrator -> skeleton joint -> the canopy eye that hangs off that chain.
The 5.3.68 table fix and the 5.3.71 integrator are both confirmed working
against real button semantics.
TWO BUFFER OVERRUNS, one of them mine. Reading TORSO.CPP back after the edit
caught the ctor still zeroing dynamicsState[22] after I had shrunk the array
to [16] by carving the command members out of its front -- 24 bytes written
past the end of every Torso, on the heap, every mission, since 5.3.68. It
compiled and ran; C++ does not check. A sweep for the same shape
(literal-bound loop vs declared size, across BT/BT_L4/MUNGA) then found a
PRE-EXISTING one: MECHMPPR.CPP zeroing reserved[22] against reserved[21].
Both now use ELEMENTS(), never a literal, with the reason in the comment.
The rule for this tree: any array carved out of a reserve block must have its
initialiser bound by ELEMENTS -- the carve is exactly the edit that silently
invalidates a literal.
(Neither explains the residual DPMI-host fault: it predates 5.3.68 at 3/3,
and the mapper one is four bytes into adjacent heap. But both were real
corruption running in every mission, and the Torso one was introduced by the
very fix that cut the fault rate -- worth remembering when a rate MOVES
instead of going to zero.)