BT410 5.3.58: the load gate is blocked by a REFILL loop on priority 0, not starvation
Per-priority occupancy, measured every second until the fault: [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 That single line kills the two leading theories. p3/p4 empty means nothing above priority 0 is competing, so the pump is free to serve it -- no starvation. nextReady=1 means PeekAtNextEvent always has a READY event, so priority 0 is not holding a timed event whose alarm never comes due -- no deadlock. What remains is refill: priority 0 is replenished as fast as the pump drains it, ~143 events per simulated second. It is also fully deterministic. Two runs of the same binary reported pump=352/1499 at frame 1001 and 495/2643 at frame 2002, identical to the byte. So 'crashes about half the time' was never a race -- it was comparing runs that differed in binary or conf. Only InterestManager::PostRendererEvent posts at priority 0 (it maps every renderer event there while the app is not RunningMission), so naming the message names the flooder. Application::Post now tallies priority-0 posts by message ID and reports the busiest three. Notably, all three producers of NotifyOfNewInterestingEntity are entity-CREATION paths, so if that ID dominates then something is creating entities in a loop -- which would explain the unbounded growth behind the fault as well as the hang. pod_render_noskl.conf now carries the same probes, so one instrumented binary can be run with the skeleton walk on and off. Walk-off runs are the only configuration of ours known to reach 'Turning Plasma Score Display On'. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
LOG: Early LOG Init complete
|
||||
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.
|
||||
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: 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
|
||||
@@ -0,0 +1,79 @@
|
||||
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' -> 0x00a3fe78 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=0x009e6d84 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=0x002c30f8 controlModeAttr=0x002c3134
|
||||
[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=0x00ac513c
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[stack] frame at 0x12dee7 drift=0 over 1001 frames
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[stack] frame at 0x12dee7 drift=0 over 2002 frames
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
Reference to a page you don't own
|
||||
PF cr2= 7000 FA64 at 00FF 0000 66D9
|
||||
Unhandled exception 000E at 00FF 66D9 ErrCode 0004
|
||||
@@ -0,0 +1,79 @@
|
||||
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' -> 0x00a3fe78 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=0x009e6d84 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=0x002c30f8 controlModeAttr=0x002c3134
|
||||
[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=0x00ac513c
|
||||
[launch] state=11 minPriorityEmpty=0 events=0 ticks=10873
|
||||
[launch] state=11 minPriorityEmpty=0 events=0 ticks=11884
|
||||
[launch] state=11 minPriorityEmpty=0 events=0 ticks=12892
|
||||
[launch] state=11 minPriorityEmpty=0 events=0 ticks=13900
|
||||
[launch] state=11 minPriorityEmpty=0 events=0 ticks=14908
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=16006
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=17032
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=18092
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=19153
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=20214
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=21275
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=22336
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=23396
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=24457
|
||||
[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24729 pump=352/1499
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=25518
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=26579
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=27640
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=28701
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=29762
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=30821
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=31881
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=32942
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=34003
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=35063
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=36126
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=37187
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=38248
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=39309
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=40370
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=41431
|
||||
[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=41586 pump=495/2643
|
||||
[launch] state=2 minPriorityEmpty=0 events=0 ticks=42493
|
||||
Reference to a page you don't own
|
||||
PF cr2= 7000 FA64 at 00FF 0000 66D9
|
||||
Unhandled exception 000E at 00FF 66D9 ErrCode 0004
|
||||
@@ -0,0 +1,99 @@
|
||||
LOG: Early LOG Init complete
|
||||
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.
|
||||
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: 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
|
||||
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
|
||||
LOG: 184935189 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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
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
|
||||
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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
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:3 (IF0:3), TX:0, Break 0
|
||||
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
|
||||
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
|
||||
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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
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:2 (IF0:2), TX:0, Break 0
|
||||
LOG: 619106628 ERROR INT10:PutPixel unhandled mode type 7
|
||||
LOG: SHELL:Redirect output to RC.TXT
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:471 (IF0:5), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:503 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:503 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:528 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:210 (IF0:0), TX:0, Break 0
|
||||
@@ -0,0 +1,103 @@
|
||||
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' -> 0x00a3fe78 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=0x009e6d84 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=0x002c30f8 controlModeAttr=0x002c3134
|
||||
[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=0x00ac513c
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=10859
|
||||
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=-
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=11870
|
||||
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=-
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=12878
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=13886
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=14894
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=15992
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=17021
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=18082
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=19142
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=20203
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=21264
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=22324
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=23385
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=24446
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24718 pump=352/1499
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=25508
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=26569
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=27630
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=28691
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=29752
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=30812
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=31873
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=32933
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=33994
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=35055
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=36118
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=37178
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=38239
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=39300
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=-
|
||||
Reference to a page you don't own
|
||||
PF cr2= 7000 FA64 at 00FF 0000 66D9
|
||||
Unhandled exception 000E at 00FF 66D9 ErrCode 0004
|
||||
@@ -0,0 +1,123 @@
|
||||
LOG: Early LOG Init complete
|
||||
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.
|
||||
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: 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
|
||||
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
|
||||
LOG: 184697104 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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:3 (IF0:3), TX:0, Break 0
|
||||
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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
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:2 (IF0:2), TX:0, Break 0
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
|
||||
LOG: 601774926 ERROR INT10:PutPixel unhandled mode type 7
|
||||
LOG: SHELL:Redirect output to RC.TXT
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:516 (IF0:6), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:522 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:506 (IF0:1), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:513 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:511 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:510 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:508 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:510 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:508 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:514 (IF0:1), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:510 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:516 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:512 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:512 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:515 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:521 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:508 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:509 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:522 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:506 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:514 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:514 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:508 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:511 (IF0:0), TX:0, Break 0
|
||||
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:331 (IF0:0), TX:0, Break 0
|
||||
@@ -0,0 +1,82 @@
|
||||
# pod_render_norio.conf -- pod_render_rec with the RIO serial port OFF.
|
||||
#
|
||||
# The emulator log shows a steady stream of serial1 RX OVERRUN errors on
|
||||
# the RIO pipe, and controls post their events at HighEventPriority
|
||||
# UNCONDITIONALLY (CONTROLS.HPP:250) -- so a chattering RIO port would
|
||||
# flood a priority the background pump always serves first, starving the
|
||||
# priority-0 renderer events the load gate waits on. This conf tests that
|
||||
# by removing the port entirely. Everything else is identical to the rec
|
||||
# conf, so a launch here and a hang there isolates the RIO.
|
||||
#
|
||||
[sdl]
|
||||
output=opengl
|
||||
# higher,higher not highest: HIGH_PRIORITY_CLASS starved the host desktop;
|
||||
# with the retry patches a rare dropout self-recovers (see gauge_rio.conf).
|
||||
priority=higher,higher
|
||||
[dosbox]
|
||||
memsize=32
|
||||
machine=svga_s3
|
||||
[cpu]
|
||||
core=dynamic
|
||||
cputype=pentium
|
||||
cycles=max
|
||||
[sblaster]
|
||||
sbtype=sb16
|
||||
sbbase=220
|
||||
irq=5
|
||||
dma=1
|
||||
hdma=5
|
||||
[mixer]
|
||||
# match the EMU8000s' native rate (no resample) and buffer ~60ms so brief
|
||||
# emulation-thread stalls (RIO retry recovery) don't audibly chop
|
||||
rate=44100
|
||||
blocksize=1024
|
||||
prebuffer=60
|
||||
[serial]
|
||||
# RIO on COM1 with the low-latency options (rxpollus/rxburst) so the board's
|
||||
# few-ms ACK deadline is met; plasma display on COM2 (real pod has both).
|
||||
# VWE fork namedpipe backend (com0com/realport retired -- COM1/COM2 gone):
|
||||
# DOSBox = pipe client (retry), vRIO/vPLASMA apps = servers; an unconnected
|
||||
# pipe behaves as an unplugged cable so the mission still runs. serialnamedpipe.h
|
||||
serial1=disabled
|
||||
serial2=namedpipe pipe:vplasma
|
||||
# live UNBUFFERED game output: DOS char devices are not buffered, so
|
||||
# redirecting stdout to COM3 lands every line immediately. A normal
|
||||
# '> file' redirect stays 0 bytes until the process exits, which hides
|
||||
# all progress on a run that does NOT crash.
|
||||
serial3=file file:C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
|
||||
[autoexec]
|
||||
mount c "C:\VWE\TeslaRel410\ALPHA_1"
|
||||
c:
|
||||
cd \REL410\BT
|
||||
set VIDEOFORMAT=svga
|
||||
rem production pod card init (PARAMETR.BAT:181-186): DIAGNOSE + AWEUTIL per
|
||||
rem card -- AWEUTIL /S does the EMU8000 bring-up and DRAM detect the HMI SOS
|
||||
rem driver relies on; skipping it left the cards uninitialized (silent).
|
||||
rem aweutil /s SKIPPED for now: it verifies the AWE32 GM ROM, which the
|
||||
rem emulated cards lack (hangs in a retry loop) -- restore once the ROM is
|
||||
rem dumped from a real card. diagnose /s kept (passes, sets mixer config).
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A240 I7 D3 H6 P300 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
set TEMP=c:\
|
||||
rem arena1 city mission (TESTARN.EGG: map=arena1, time=day) with the RIO
|
||||
rem attached; stdout redirected so mission-load progress survives kills.
|
||||
set BT_MECH_LOG=1
|
||||
set BT_LAUNCH_LOG=1
|
||||
set BT_STACK_LOG=1
|
||||
set BT_FORCE_THROTTLE=0.6
|
||||
set BT_FORCE_TURN=0.25
|
||||
set HEAPSIZE=15000000
|
||||
set L4GAUGE=640x480x16
|
||||
call setenv.bat r s n p
|
||||
32rtm.exe -x
|
||||
BTL4REC.EXE -egg testarn.egg > COM3
|
||||
|
||||
echo GAME-RC=%errorlevel% >> RC.TXT
|
||||
32rtm.exe -u
|
||||
echo ALPHA1-RUN-DONE
|
||||
pause
|
||||
|
||||
@@ -1,70 +1,77 @@
|
||||
[sdl]
|
||||
output=opengl
|
||||
# higher,higher not highest: HIGH_PRIORITY_CLASS starved the host desktop;
|
||||
# with the retry patches a rare dropout self-recovers (see gauge_rio.conf).
|
||||
priority=higher,higher
|
||||
[dosbox]
|
||||
memsize=32
|
||||
machine=svga_s3
|
||||
[cpu]
|
||||
core=dynamic
|
||||
cputype=pentium
|
||||
cycles=max
|
||||
[sblaster]
|
||||
sbtype=sb16
|
||||
sbbase=220
|
||||
irq=5
|
||||
dma=1
|
||||
hdma=5
|
||||
[mixer]
|
||||
# match the EMU8000s' native rate (no resample) and buffer ~60ms so brief
|
||||
# emulation-thread stalls (RIO retry recovery) don't audibly chop
|
||||
rate=44100
|
||||
blocksize=1024
|
||||
prebuffer=60
|
||||
[serial]
|
||||
# RIO on COM1 with the low-latency options (rxpollus/rxburst) so the board's
|
||||
# few-ms ACK deadline is met; plasma display on COM2 (real pod has both).
|
||||
# VWE fork namedpipe backend (com0com/realport retired -- COM1/COM2 gone):
|
||||
# DOSBox = pipe client (retry), vRIO/vPLASMA apps = servers; an unconnected
|
||||
# pipe behaves as an unplugged cable so the mission still runs. serialnamedpipe.h
|
||||
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||
serial2=namedpipe pipe:vplasma
|
||||
|
||||
# live UNBUFFERED game output: DOS char devices are not buffered, so
|
||||
|
||||
# redirecting stdout to COM3 lands every line immediately. A normal
|
||||
|
||||
# '> file' redirect stays 0 bytes until the process exits, which hides
|
||||
|
||||
# all progress on a run that does NOT crash.
|
||||
|
||||
serial3=file file:C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
|
||||
[autoexec]
|
||||
mount c "C:\VWE\TeslaRel410\ALPHA_1"
|
||||
c:
|
||||
cd \REL410\BT
|
||||
set VIDEOFORMAT=svga
|
||||
rem production pod card init (PARAMETR.BAT:181-186): DIAGNOSE + AWEUTIL per
|
||||
rem card -- AWEUTIL /S does the EMU8000 bring-up and DRAM detect the HMI SOS
|
||||
rem driver relies on; skipping it left the cards uninitialized (silent).
|
||||
rem aweutil /s SKIPPED for now: it verifies the AWE32 GM ROM, which the
|
||||
rem emulated cards lack (hangs in a retry loop) -- restore once the ROM is
|
||||
rem dumped from a real card. diagnose /s kept (passes, sets mixer config).
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A240 I7 D3 H6 P300 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
set TEMP=c:\
|
||||
rem arena1 city mission (TESTARN.EGG: map=arena1, time=day) with the RIO
|
||||
rem attached; stdout redirected so mission-load progress survives kills.
|
||||
set BT_NO_SKL=1
|
||||
set BT_FORCE_THROTTLE=0.6
|
||||
set BT_FORCE_TURN=0.25
|
||||
set HEAPSIZE=15000000
|
||||
set L4GAUGE=640x480x16
|
||||
call setenv.bat r s n p
|
||||
32rtm.exe -x
|
||||
BTL4REC.EXE -egg testarn.egg > COM3
|
||||
|
||||
[sdl]
|
||||
output=opengl
|
||||
# higher,higher not highest: HIGH_PRIORITY_CLASS starved the host desktop;
|
||||
# with the retry patches a rare dropout self-recovers (see gauge_rio.conf).
|
||||
priority=higher,higher
|
||||
[dosbox]
|
||||
memsize=32
|
||||
machine=svga_s3
|
||||
[cpu]
|
||||
core=dynamic
|
||||
cputype=pentium
|
||||
cycles=max
|
||||
[sblaster]
|
||||
sbtype=sb16
|
||||
sbbase=220
|
||||
irq=5
|
||||
dma=1
|
||||
hdma=5
|
||||
[mixer]
|
||||
# match the EMU8000s' native rate (no resample) and buffer ~60ms so brief
|
||||
# emulation-thread stalls (RIO retry recovery) don't audibly chop
|
||||
rate=44100
|
||||
blocksize=1024
|
||||
prebuffer=60
|
||||
[serial]
|
||||
# RIO on COM1 with the low-latency options (rxpollus/rxburst) so the board's
|
||||
# few-ms ACK deadline is met; plasma display on COM2 (real pod has both).
|
||||
# VWE fork namedpipe backend (com0com/realport retired -- COM1/COM2 gone):
|
||||
# DOSBox = pipe client (retry), vRIO/vPLASMA apps = servers; an unconnected
|
||||
# pipe behaves as an unplugged cable so the mission still runs. serialnamedpipe.h
|
||||
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||
serial2=namedpipe pipe:vplasma
|
||||
|
||||
# live UNBUFFERED game output: DOS char devices are not buffered, so
|
||||
|
||||
# redirecting stdout to COM3 lands every line immediately. A normal
|
||||
|
||||
# '> file' redirect stays 0 bytes until the process exits, which hides
|
||||
|
||||
# all progress on a run that does NOT crash.
|
||||
|
||||
serial3=file file:C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
|
||||
[autoexec]
|
||||
mount c "C:\VWE\TeslaRel410\ALPHA_1"
|
||||
c:
|
||||
cd \REL410\BT
|
||||
set VIDEOFORMAT=svga
|
||||
rem production pod card init (PARAMETR.BAT:181-186): DIAGNOSE + AWEUTIL per
|
||||
rem card -- AWEUTIL /S does the EMU8000 bring-up and DRAM detect the HMI SOS
|
||||
rem driver relies on; skipping it left the cards uninitialized (silent).
|
||||
rem aweutil /s SKIPPED for now: it verifies the AWE32 GM ROM, which the
|
||||
rem emulated cards lack (hangs in a retry loop) -- restore once the ROM is
|
||||
rem dumped from a real card. diagnose /s kept (passes, sets mixer config).
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A240 I7 D3 H6 P300 T6
|
||||
c:\sb16\diagnose /s
|
||||
set BLASTER=A220 I5 D1 H5 P330 T6
|
||||
set TEMP=c:\
|
||||
rem arena1 city mission (TESTARN.EGG: map=arena1, time=day) with the RIO
|
||||
rem attached; stdout redirected so mission-load progress survives kills.
|
||||
set BT_NO_SKL=1
|
||||
set BT_STACK_LOG=1
|
||||
set BT_LAUNCH_LOG=1
|
||||
set BT_FORCE_THROTTLE=0.6
|
||||
set BT_FORCE_TURN=0.25
|
||||
set HEAPSIZE=15000000
|
||||
set L4GAUGE=640x480x16
|
||||
call setenv.bat r s n p
|
||||
32rtm.exe -x
|
||||
BTL4REC.EXE -egg testarn.egg > COM3
|
||||
|
||||
echo GAME-RC=%errorlevel% >> RC.TXT
|
||||
32rtm.exe -u
|
||||
echo ALPHA1-RUN-DONE
|
||||
pause
|
||||
|
||||
|
||||
@@ -41,39 +41,68 @@ 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=0x00ac513c
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[stack] frame at 0x12dee7 drift=0 over 1001 frames
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[stack] frame at 0x12dee7 drift=0 over 2002 frames
|
||||
[launch] state=2 minPriorityEmpty=0
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=10820
|
||||
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=11832
|
||||
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=12842
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=13851
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=11 minPriorityEmpty=0 ticks=14860
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=15958
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=17008
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=18070
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=19132
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=20193
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=21253
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=22362
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=23473
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24504 pump=352/1499
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=24583
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=25692
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=26803
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=27912
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=29021
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=30132
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=31241
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=32350
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=33461
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=34572
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=35681
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
LBE4ControlsManager::Execute, lost RIO analog request
|
||||
iThinkIRQIsOn =1, actual state =1, characters sent =5012
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=36694
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=37738
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=38800
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=39861
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=40606 pump=495/2643
|
||||
[launch] state=2 minPriorityEmpty=0 ticks=40922
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=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
|
||||
|
||||
@@ -46,6 +46,7 @@ if [ -s "$BR/podlog.txt" ]; then
|
||||
else
|
||||
echo "archived previous run -> $(basename "$PREV")"
|
||||
fi
|
||||
[ -s "$BR/dosboxlog.txt" ] && cp "$BR/dosboxlog.txt" "$BR/logs/$(printf '%03d' "$N")-dosbox.txt"
|
||||
fi
|
||||
|
||||
if tasklist //FI "IMAGENAME eq dosbox-x.exe" 2>/dev/null | grep -qi dosbox-x; then
|
||||
@@ -84,6 +85,11 @@ export RIO_TAP="$WORK/riotap.txt"
|
||||
|
||||
rm -f "$BR/podlog.txt"
|
||||
cd /c/VWE/TeslaRel410/emulator/src/src
|
||||
./dosbox-x.exe -conf "$BR/$CONF.conf" > /dev/null 2>&1 &
|
||||
#
|
||||
# Keep the emulator's own stdout/stderr. The game's stdout comes back over
|
||||
# COM3, but the DPMI host's exception report and any device-side complaint go
|
||||
# to the emulator, and those were being thrown away.
|
||||
#
|
||||
./dosbox-x.exe -conf "$BR/$CONF.conf" > "$BR/dosboxlog.txt" 2>&1 &
|
||||
echo "launched $CONF (tag=$TAG) -- pid $!"
|
||||
echo "watch: tail -f $BR/podlog.txt"
|
||||
|
||||
+1952
-1861
File diff suppressed because it is too large
Load Diff
@@ -575,6 +575,17 @@ inline void
|
||||
)
|
||||
{
|
||||
Check(this);
|
||||
if (priority == MinEventPriority && message != NULL)
|
||||
{
|
||||
Check(message);
|
||||
if (
|
||||
(int)message->messageID >= 0 &&
|
||||
(int)message->messageID < POST_TALLY_IDS
|
||||
)
|
||||
{
|
||||
postTally[(int)message->messageID]++;
|
||||
}
|
||||
}
|
||||
eventQueue->Post(priority,target,message,when);
|
||||
}
|
||||
|
||||
@@ -677,6 +688,23 @@ extern long
|
||||
extern long
|
||||
eventPumpHits;
|
||||
|
||||
//
|
||||
// POST TALLY, by message ID, for priority 0 only.
|
||||
//
|
||||
// Measured: priority 0 is never empty, nothing above it is busy, and
|
||||
// PeekAtNextEvent always reports a ready event while the pump drains ~143 per
|
||||
// simulated second. That is a REFILL loop -- something re-posts priority-0
|
||||
// work as fast as it is consumed -- and the counters are identical to the byte
|
||||
// across runs, so it is deterministic rather than a race.
|
||||
//
|
||||
// Only the interest manager posts at priority 0 (it maps every renderer event
|
||||
// there while the application is not RunningMission), so naming the message
|
||||
// names the flooder.
|
||||
//
|
||||
#define POST_TALLY_IDS 64
|
||||
extern long
|
||||
postTally[POST_TALLY_IDS];
|
||||
|
||||
inline Logical
|
||||
Application::ProcessOneEvent(int min_priority)
|
||||
{
|
||||
|
||||
@@ -908,3 +908,105 @@ BTL4REC.EXE, exports the host-side VPX board env (without which the run dies at
|
||||
the iserver handshake, not merely unrendered), and archives each run's log --
|
||||
marking the file -CRASH when it faulted. The only preserved dump before this
|
||||
was an accident, on a rig where every run costs four minutes.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
THE LOAD GATE: WHAT THE EVENT-PUMP COUNTERS SHOWED
|
||||
--------------------------------------------------------------------------------
|
||||
Two runs of the instrumented build, both ending in the same fault:
|
||||
|
||||
[stack] ... over 1001 frames ticks=24729 pump=352/1499
|
||||
[stack] ... over 2002 frames ticks=41586 pump=495/2643
|
||||
[launch] state=2 minPriorityEmpty=0 ... (31 reposts, then the fault)
|
||||
|
||||
Reading those numbers rules out most of what "the queue never drains" could
|
||||
mean:
|
||||
|
||||
* The pump RUNS. 1144 ProcessOneEvent calls over 1001 frames is 1.14 per
|
||||
frame -- one from the HighEventPriority check at the top of
|
||||
ExecuteBackgroundTask, plus one every seventh frame from
|
||||
BackgroundTasks::Execute, which round-robins ONE task per call across our
|
||||
seven tasks. That 1-in-7 is exactly the rotation, so the early-return path
|
||||
is NOT starving the background list.
|
||||
|
||||
* The pump FINDS WORK. 143 hits per 1001 frames is ~1 per 7 -- essentially
|
||||
every ProcessEventTask call succeeds, while the HighEventPriority calls
|
||||
find nothing. So events are being processed continuously, at about 8 per
|
||||
real second, and priority 0 still never empties after 30+ seconds.
|
||||
|
||||
* events=0 in the trace is a red herring: ++eventCount lives inside
|
||||
#if defined(TRACE_EVENT_COUNT), which this build does not define, so
|
||||
GetEventCount() reads 0 no matter what is queued. The probe now prints
|
||||
per-priority occupancy instead, which needs no counter.
|
||||
|
||||
That leaves two candidates, and they want opposite fixes:
|
||||
|
||||
1. VOLUME. There really are hundreds of priority-0 renderer events and we
|
||||
drain them at 8/sec, so the load simply has not finished when the fault
|
||||
arrives. Our MakeEntityRenderables loads 19 .bgf objects per mech through
|
||||
the EMULATED board, which is not a cheap operation.
|
||||
2. DEADLOCK. Priority 0's head is a TIMED event whose alarm never comes due.
|
||||
PeekAtNextEvent only returns a timed event when alarmTime <= Now(), but
|
||||
IsPriorityEmpty counts it regardless -- so such an event is invisible to
|
||||
the pump and permanently visible to the gate.
|
||||
|
||||
The [queues] probe prints every priority's occupancy each second, which
|
||||
separates them: only p0 busy means the deadlock, higher priorities busy means
|
||||
we are just watching a long load.
|
||||
|
||||
RULED OUT ALONG THE WAY. The queue is allocated correctly
|
||||
(GeneralEventQueue::Make does new GeneralEventQueue[5], EVENT_PRIORITIES_COUNT
|
||||
is 5, MaxEventPriority is 4, so this[priority] indexing is in range).
|
||||
Application::Post passes its priority through untouched. The renderer's
|
||||
NotifyOfNewInterestingEntity handler consumes its message without re-posting,
|
||||
so there is no refill loop from that path.
|
||||
|
||||
A SEPARATE THREAD WORTH PULLING. The emulator log -- newly captured by
|
||||
podrun.sh -- shows a steady trickle of serial1 RX OVERRUN errors on the RIO
|
||||
named pipe, and ControlsInstanceEventOf<T> posts at HighEventPriority
|
||||
UNCONDITIONALLY (CONTROLS.HPP:250), with no application-state guard. Our log
|
||||
also carries "RIO never came back from test mode!" where the shipped binary
|
||||
does not. pod_render_norio.conf disables serial1 and changes nothing else, so
|
||||
a launch there against a hang here isolates the RIO in one run.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
IT IS A REFILL LOOP, AND IT IS DETERMINISTIC
|
||||
--------------------------------------------------------------------------------
|
||||
Per-priority occupancy, steady state, every second until the fault:
|
||||
|
||||
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
|
||||
|
||||
* p3 and p4 EMPTY kills the starvation theory outright. Nothing above
|
||||
priority 0 is competing, so the pump is free to serve it.
|
||||
* p2 busy is this handler's own once-a-second repost. Expected.
|
||||
* nextReady=1 means PeekAtNextEvent always has a READY event to hand out --
|
||||
so priority 0 is not holding a timed event that never comes due either.
|
||||
That kills the deadlock theory.
|
||||
|
||||
What is left is the only remaining shape: priority 0 is being REFILLED as fast
|
||||
as the pump drains it, at ~143 events per simulated second.
|
||||
|
||||
And it is deterministic. Two runs of the same binary reported pump=352/1499 at
|
||||
frame 1001 and 495/2643 at frame 2002 -- identical to the byte. So this was
|
||||
never a race, and "crashes about half the time" was always an artifact of
|
||||
comparing runs that differed in binary or conf, not in luck.
|
||||
|
||||
Only InterestManager::PostRendererEvent posts at priority 0 -- it maps every
|
||||
renderer event there while the application is not RunningMission -- so naming
|
||||
the message names the flooder. Application::Post now tallies priority-0 posts
|
||||
by message ID and the [posts] line reports the busiest three. The IDs to
|
||||
expect, from RENDERER.HPP against Receiver::NextMessageID = 3:
|
||||
|
||||
3 NotifyOfNewInterestingEntity 6 StopAllEntityEffects
|
||||
4 NotifyOfBecomingUninteresting 7 StartEntityAlarm
|
||||
5 StartEntityEffect 8 StopEntityAlarm
|
||||
|
||||
3 and 4 climbing together would mean entities are oscillating in and out of the
|
||||
interest set; 3 alone means something re-adds them; 5 or 7 would point at
|
||||
effects or alarms instead.
|
||||
|
||||
The controlled A/B to run alongside it: pod_render_noskl.conf now carries the
|
||||
same probes, so the SAME instrumented binary can be run with the skeleton walk
|
||||
on and off. Earlier walk-off runs reached "Turning Plasma Score Display On",
|
||||
which is the only configuration of ours known to launch -- if walk-off also
|
||||
stops the refill, the walk is implicated in the hang even though it is NOT the
|
||||
cause of the fault signature (which predates it).
|
||||
|
||||
Reference in New Issue
Block a user