diff --git a/emulator/render-bridge/dosboxlog.txt b/emulator/render-bridge/dosboxlog.txt index 484e260c..71117e96 100644 --- a/emulator/render-bridge/dosboxlog.txt +++ b/emulator/render-bridge/dosboxlog.txt @@ -1,5 +1,5 @@ LOG: Early LOG Init complete -LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_rec.conf +LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_norio.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. @@ -33,9 +33,6 @@ LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Micropho 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 diff --git a/emulator/render-bridge/logs/007-CRASH.txt b/emulator/render-bridge/logs/007-CRASH.txt new file mode 100644 index 00000000..f70ed31a --- /dev/null +++ b/emulator/render-bridge/logs/007-CRASH.txt @@ -0,0 +1,108 @@ +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=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 diff --git a/emulator/render-bridge/logs/007-dosbox.txt b/emulator/render-bridge/logs/007-dosbox.txt new file mode 100644 index 00000000..b48759ef --- /dev/null +++ b/emulator/render-bridge/logs/007-dosbox.txt @@ -0,0 +1,83 @@ +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: pixratio 1.350, dw false, dh false +LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750 +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: SHELL:Redirect output to COM3 +VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00) +LOG: 182234347 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: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: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: 561519596 ERROR INT10:PutPixel unhandled mode type 7 +LOG: SHELL:Redirect output to RC.TXT +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:342 (IF0:5), TX:0, Break 0 diff --git a/emulator/render-bridge/logs/009-CRASH.txt b/emulator/render-bridge/logs/009-CRASH.txt new file mode 100644 index 00000000..e11527a2 --- /dev/null +++ b/emulator/render-bridge/logs/009-CRASH.txt @@ -0,0 +1,131 @@ +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=10916 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=416 +[launch] state=11 minPriorityEmpty=0 ticks=11928 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=502 +[launch] state=11 minPriorityEmpty=0 ticks=12938 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=13947 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=14956 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=16056 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=17083 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=18143 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=19204 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=20266 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=21328 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=22390 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=23451 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=24512 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24785 pump=352/1499 +[launch] state=2 minPriorityEmpty=0 ticks=25565 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=26626 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=27688 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=28750 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=29812 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=30874 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=31936 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=32998 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=34060 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=35122 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=36183 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=37244 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=38305 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=39365 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +Reference to a page you don't own +PF cr2= 7000 FA64 at 00FF 0000 66D9 +Unhandled exception 000E at 00FF 66D9 ErrCode 0004 diff --git a/emulator/render-bridge/logs/009-dosbox.txt b/emulator/render-bridge/logs/009-dosbox.txt new file mode 100644 index 00000000..b8a4cca0 --- /dev/null +++ b/emulator/render-bridge/logs/009-dosbox.txt @@ -0,0 +1,110 @@ +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: 184796952 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 +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:4 (IF0:4), 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: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:3 (IF0:3), 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:3 (IF0:3), 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:1 (IF0:1), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0 +LOG: 599586316 ERROR INT10:PutPixel unhandled mode type 7 +LOG: SHELL:Redirect output to RC.TXT +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:519 (IF0:4), 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:507 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:502 (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:508 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:498 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:504 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:500 (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:170 (IF0:0), TX:0, Break 0 diff --git a/emulator/render-bridge/logs/011-CRASH.txt b/emulator/render-bridge/logs/011-CRASH.txt new file mode 100644 index 00000000..e67b9af0 --- /dev/null +++ b/emulator/render-bridge/logs/011-CRASH.txt @@ -0,0 +1,345 @@ +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=10888 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=416 +[launch] state=11 minPriorityEmpty=0 ticks=11900 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=502 +[launch] state=11 minPriorityEmpty=0 ticks=12910 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=13919 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=14928 +[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=16028 +[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=17075 +[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=18137 +[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=19199 +[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=20233 +[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 +[mer] 47 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=21342 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 55 class=94 view=0 res=1 +[mer] 56 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=22453 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 63 class=94 view=0 res=1 +[mer] 64 class=94 view=0 res=1 +[mer] 65 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=23562 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 71 class=94 view=0 res=1 +[mer] 72 class=94 view=0 res=1 +[mer] 73 class=94 view=0 res=1 +[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=24483 pump=352/1499 +[mer] 74 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=24672 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=25783 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 84 class=94 view=0 res=1 +[mer] 85 class=42 view=0 res=1 +[mer] 86 class=94 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=26892 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 93 class=42 view=0 res=1 +[mer] 94 class=94 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=28001 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 102 class=94 view=0 res=1 +[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=29112 +[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=30221 +[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=31330 +[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=32441 +[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=33550 +[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=34661 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 156 class=42 view=0 res=1 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =2864 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=35711 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 164 class=94 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=36771 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 172 class=42 view=0 res=1 +[mer] 173 class=42 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=37833 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 180 class=42 view=0 res=1 +[mer] 181 class=42 view=0 res=1 +[mer] 182 class=42 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=38895 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=39957 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 201 class=94 view=0 res=1 +[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=40702 pump=495/2643 +[mer] 202 class=94 view=0 res=1 +[mer] 203 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=41020 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +Reference to a page you don't own +PF cr2= 7000 FA64 at 00FF 0000 66D9 +Unhandled exception 000E at 00FF 66D9 ErrCode 0004 diff --git a/emulator/render-bridge/logs/011-dosbox.txt b/emulator/render-bridge/logs/011-dosbox.txt new file mode 100644 index 00000000..d0235f4b --- /dev/null +++ b/emulator/render-bridge/logs/011-dosbox.txt @@ -0,0 +1,82 @@ +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: 184991777 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:2 (IF0:2), 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: 596945986 ERROR INT10:PutPixel unhandled mode type 7 +LOG: SHELL:Redirect output to RC.TXT +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:504 (IF0:4), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:85 (IF0:0), TX:0, Break 0 diff --git a/emulator/render-bridge/logs/013-CRASH.txt b/emulator/render-bridge/logs/013-CRASH.txt new file mode 100644 index 00000000..8f3fc572 --- /dev/null +++ b/emulator/render-bridge/logs/013-CRASH.txt @@ -0,0 +1,316 @@ +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=10907 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=416 +[launch] state=11 minPriorityEmpty=0 ticks=11919 +[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 +[posts] id3=502 +[launch] state=11 minPriorityEmpty=0 ticks=12929 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=13938 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=14947 +[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=16047 +[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=17080 +[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=18120 +[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=19181 +[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=20243 +[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=21305 +[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=22367 +[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=23429 +[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=24491 +[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=24763 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=25552 +[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=26614 +[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=27676 +[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=28738 +[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=29799 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=30859 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 119 class=42 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=31921 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 127 class=42 view=0 res=1 +[mer] 128 class=42 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=32982 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[mer] 135 class=42 view=0 res=1 +[mer] 136 class=42 view=0 res=1 +[mer] 137 class=42 view=0 res=1 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=34043 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[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 +[launch] state=2 minPriorityEmpty=0 ticks=35103 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 156 class=42 view=0 res=1 +[mer] 157 class=42 view=0 res=1 +[mer] 158 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=36167 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 165 class=94 view=0 res=1 +[mer] 166 class=42 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=37229 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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 +[mer] 174 class=94 view=0 res=1 +[launch] state=2 minPriorityEmpty=0 ticks=38291 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[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=39353 +[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 +Reference to a page you don't own +PF cr2= 7000 FA64 at 00FF 0000 66D9 +Unhandled exception 000E at 00FF 66D9 ErrCode 0004 diff --git a/emulator/render-bridge/logs/013-dosbox.txt b/emulator/render-bridge/logs/013-dosbox.txt new file mode 100644 index 00000000..f880a28a --- /dev/null +++ b/emulator/render-bridge/logs/013-dosbox.txt @@ -0,0 +1,131 @@ +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: 184968225 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:3 (IF0:3), 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: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:2 (IF0:2), 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: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: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:4 (IF0:4), 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: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:4 (IF0:1), TX:0, Break 0 +LOG: 658943150 ERROR INT10:PutPixel unhandled mode type 7 +LOG: SHELL:Redirect output to RC.TXT +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:512 (IF0:5), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:502 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:505 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:500 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:507 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:507 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:504 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:500 (IF0:1), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:504 (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:506 (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:504 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:504 (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:506 (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:511 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:518 (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:512 (IF0:0), TX:0, Break 0 +LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:500 (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:504 (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:506 (IF0:0), TX:0, Break 0 diff --git a/emulator/render-bridge/pod_render_noskl.conf b/emulator/render-bridge/pod_render_noskl.conf index ac2df516..13a935f9 100644 --- a/emulator/render-bridge/pod_render_noskl.conf +++ b/emulator/render-bridge/pod_render_noskl.conf @@ -61,6 +61,7 @@ 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_MER_LOG=1 set BT_LAUNCH_LOG=1 set BT_FORCE_THROTTLE=0.6 set BT_FORCE_TURN=0.25 diff --git a/emulator/render-bridge/pod_render_rec.conf b/emulator/render-bridge/pod_render_rec.conf index 0e5c1299..b7e79425 100644 --- a/emulator/render-bridge/pod_render_rec.conf +++ b/emulator/render-bridge/pod_render_rec.conf @@ -1,72 +1,73 @@ -[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_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 - +[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_MECH_LOG=1 +set BT_LAUNCH_LOG=1 +set BT_STACK_LOG=1 +set BT_MER_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 + diff --git a/emulator/render-bridge/podlog.txt b/emulator/render-bridge/podlog.txt index f70ed31a..c014a09b 100644 --- a/emulator/render-bridge/podlog.txt +++ b/emulator/render-bridge/podlog.txt @@ -1,9 +1,10 @@ BattleTech v4.10 BTL4Application::BTL4Application +RIO never came back from check request! 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 +[torso] horizJoint 'jointtorso' -> 0x00a3d170 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 @@ -25,7 +26,7 @@ GaugeInterpreter: undefined label 'Initialization' [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 +[mapper] ctor id=0 throttleAttr=0x009f4320 controlModeAttr=0x009f435c [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 @@ -41,68 +42,249 @@ 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=10820 +[launch] state=11 minPriorityEmpty=0 ticks=14713 [queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 -[launch] state=11 minPriorityEmpty=0 ticks=11832 +[posts] id3=416 +[launch] state=11 minPriorityEmpty=0 ticks=15726 [queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1 -[launch] state=11 minPriorityEmpty=0 ticks=12842 +[posts] id3=502 +[launch] state=11 minPriorityEmpty=0 ticks=16736 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=11 minPriorityEmpty=0 ticks=13851 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=17745 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=11 minPriorityEmpty=0 ticks=14860 +[posts] id3=530 +[launch] state=11 minPriorityEmpty=0 ticks=18754 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=15958 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=19831 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=17008 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=20940 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=18070 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=22051 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=19132 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=23160 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=20193 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=24269 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=21253 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=25380 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=22362 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=26489 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=23473 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=27598 [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 +[posts] id3=530 +[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=28077 pump=352/1499 +[launch] state=2 minPriorityEmpty=0 ticks=28710 [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 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=29819 [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 =5012 -[launch] state=2 minPriorityEmpty=0 ticks=36694 +iThinkIRQIsOn =1, actual state =1, characters sent =40 +[launch] state=2 minPriorityEmpty=0 ticks=30929 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=37738 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=32040 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=38800 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=33149 [queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 -[launch] state=2 minPriorityEmpty=0 ticks=39861 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=34258 [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 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=35369 [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 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=36478 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=37587 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=38700 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=39809 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=40918 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=42029 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=43138 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=43949 pump=495/2643 +[launch] state=2 minPriorityEmpty=0 ticks=44248 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[skl] video\mad.skl -> 26 nodes, 19 objects +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =41 +[launch] state=2 minPriorityEmpty=0 ticks=45360 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=46469 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=47578 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=48689 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=49798 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=50907 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=52018 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=53127 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=54236 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=55349 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=56458 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=57567 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=58678 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=59787 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[stack] frame at 0x12dee7 drift=0 over 3003 frames ticks=59824 pump=638/3787 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =42 +[launch] state=2 minPriorityEmpty=0 ticks=60898 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=62009 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=63118 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=64227 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=65338 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=66447 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=67556 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=68667 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=69776 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=70885 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=71996 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=73107 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=74216 +[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 =43 +[launch] state=2 minPriorityEmpty=0 ticks=75328 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[stack] frame at 0x12dee7 drift=0 over 4004 frames ticks=75695 pump=781/4931 +[launch] state=2 minPriorityEmpty=0 ticks=76438 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=77547 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=78658 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=79767 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +MapDisplay: operating=1 static=7 moving=0 +[launch] state=2 minPriorityEmpty=0 ticks=80876 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=81987 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=83096 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=0 ticks=84205 +[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +[launch] state=2 minPriorityEmpty=1 ticks=85316 +[queues] p0=- p1=- p2=BUSY p3=- p4=- nextReady=1 +[posts] id3=530 +BTL4Application::RunMissionMessageHandler +Turning Plasma Score Display On +BTL4Application::RunMissionMessageHandler +Turning Plasma Score Display On +[tick] roster live (first Sensor frame), radarPercent=1 voltState=4 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(172.94,10,-401.227) yaw=-0.0736139 spd=14.4 eyePitch=0 eyeYaw=0 +[fire] 'ERSLaser_1' LOADED (level=7941.22 T=76.8855) +[fire] 'ERSLaser_2' LOADED (level=7925.96 T=76.8462) +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =48 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(174.491,10,-386.899) yaw=-0.140905 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(177.005,10,-372.693) yaw=-0.208286 spd=14.4 eyePitch=0 eyeYaw=0 +[stack] frame at 0x12dee7 drift=0 over 5005 frames ticks=91705 pump=863/6075 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(180.466,10,-358.703) yaw=-0.275605 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(184.942,10,-344.747) yaw=-0.344067 spd=14.4 eyePitch=0 eyeYaw=0 +[fire] 'ERLLaser' LOADED (level=7928.31 T=76.0943) +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(190.352,10,-331.157) yaw=-0.412398 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(196.676,10,-317.967) yaw=-0.480733 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(203.902,10,-305.216) yaw=-0.549203 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(211.966,10,-293.012) yaw=-0.61754 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(220.845,10,-281.387) yaw=-0.685878 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(230.517,10,-270.375) yaw=-0.754352 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(240.898,10,-260.07) yaw=-0.822691 spd=14.4 eyePitch=0 eyeYaw=0 +[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0 +[sim] pos=(251.959,10,-250.498) yaw=-0.89103 spd=14.4 eyePitch=0 eyeYaw=0 diff --git a/emulator/render-bridge/podlog_shipped.txt b/emulator/render-bridge/podlog_shipped.txt index edf1ca54..babb708c 100644 --- a/emulator/render-bridge/podlog_shipped.txt +++ b/emulator/render-bridge/podlog_shipped.txt @@ -1,7 +1,11 @@ BattleTech v4.10 BTL4Application::BTL4Application GaugeInterpreter: undefined label 'Initialization' -MakeVehicleSystems hud=0x01154164 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =49 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =53 +MakeVehicleSystems hud=0x01158f94 Warning: damage zone 'dz_missle' not found! Warning: damage zone 'dz_missle' not found! Warning: damage zone 'dz_lmissle' not found! @@ -9,10 +13,66 @@ Warning: damage zone 'dz_rmissle' not found! Warning: damage zone 'dz_ftorso' not found! Warning: damage zone 'dz_btorso' not found! LBE4ControlsManager::Execute, lost RIO analog request -iThinkIRQIsOn =1, actual state =1, characters sent =62 +iThinkIRQIsOn =1, actual state =1, characters sent =112 LBE4ControlsManager::Execute, lost RIO analog request -iThinkIRQIsOn =1, actual state =1, characters sent =687 +iThinkIRQIsOn =1, actual state =1, characters sent =1426 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =1821 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =2998 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =3130 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =5534 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =7017 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =7177 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =7181 BTL4Application::RunMissionMessageHandler Turning Plasma Score Display On BTL4Application::RunMissionMessageHandler Turning Plasma Score Display On +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =9786 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =10036 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =11117 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =13401 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =13894 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =14886 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =16513 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =16517 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =16631 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =16986 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =16990 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =17198 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18111 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18200 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18204 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18340 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18344 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =18848 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =21370 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =21408 +LBE4ControlsManager::Execute, lost RIO analog request +iThinkIRQIsOn =1, actual state =1, characters sent =21412 diff --git a/restoration/source410/BT_L4/BTL4VID.CPP b/restoration/source410/BT_L4/BTL4VID.CPP index 5b056402..e058fd31 100644 --- a/restoration/source410/BT_L4/BTL4VID.CPP +++ b/restoration/source410/BT_L4/BTL4VID.CPP @@ -367,6 +367,33 @@ void Check(this); Check(entity); + // + // RENDERABLE-BUILD TRACE (env BT_MER_LOG). + // + // The mission never launches because 530 renderer events queue at + // priority 0 during load and the background pump drains only one per + // seven frames, and the page fault lands on one of the LAST ~35 of them. + // So the fault belongs to a specific entity, not to elapsed time. The + // oldest log named it -- class 42, UnscalableTerrain -- but that was a + // different build, so this prints the class of every entity as its + // renderables are built and the last line before the fault names the + // culprit outright. One line per entity, not per frame: ~530 lines for a + // whole run, which the COM3 log carries without the 3x cost that per-frame + // logging brought. + // + if (getenv("BT_MER_LOG")) + { + static int + mer_count = 0; + + mer_count++; + DEBUG_STREAM << "[mer] " << mer_count + << " class=" << (int)entity->GetClassID() + << " view=" << (int)view_type + << " res=" << (model_resource ? 1 : 0) + << endl << flush; + } + switch (entity->GetClassID()) { case RegisteredClass::MechClassID: @@ -410,6 +437,22 @@ void { const L4VideoObject *video_object = video_wrapper->GetVideoObject(); + + // + // The inside view produced NO [skl] line, so this chain + // evidently holds no Skeleton entry and we fall through to + // the engine -- straight into the eyepoint construction that + // faults. Print what is actually in the chain rather than + // assuming. + // + if (getenv("BT_MER_LOG")) + { + DEBUG_STREAM << " [vid] type=" + << (int)video_object->GetResourceType() + << " file='" << video_object->GetObjectFilename() + << "'" << endl << flush; + } + if (video_object->GetResourceType() == L4VideoObject::Skeleton) { @@ -422,6 +465,23 @@ void if (!handled) { + // + // Where is the stack HERE? The fault reads through a frame + // pointer at 0x7000FA74, while the main loop's frame sits at + // 0x12DEE7 -- 1.79 GB apart. Either something between this + // point and the fault switches stacks, or the frame pointer is + // being corrupted on the way in. One printout distinguishes + // them, and it is the last place we control before the engine + // takes over. + // + if (getenv("BT_MER_LOG")) + { + char + here; + + DEBUG_STREAM << " [chain] into DPLRenderer, stack at 0x" + << hex << (int)&here << dec << endl << flush; + } DPLRenderer::MakeEntityRenderables( entity, model_resource, view_type); } diff --git a/restoration/source410/MUNGA/APP.HPP b/restoration/source410/MUNGA/APP.HPP index 05f83726..fb006436 100644 --- a/restoration/source410/MUNGA/APP.HPP +++ b/restoration/source410/MUNGA/APP.HPP @@ -1,827 +1,828 @@ -#if !defined(APP_HPP) -# define APP_HPP - -# if !defined(NETWORK_HPP) -# include -# endif -# if !defined(EVENT_HPP) -# include -# endif -# if !defined(STATE_HPP) -# include -# endif -# if !defined(CSTR_HPP) -# include -# endif - -#if defined(TRACE_FOREGROUND_PROCESSING) - extern BitTrace Foreground_Processing; - #define SET_FOREGROUND_PROCESSING() Foreground_Processing.Set() - #define CLEAR_FOREGROUND_PROCESSING() Foreground_Processing.Clear() -#else - #define SET_FOREGROUND_PROCESSING() - #define CLEAR_FOREGROUND_PROCESSING() -#endif - -#if defined(TRACE_UPDATE_MANAGER) - extern BitTrace Update_Manager; - #define SET_UPDATE_MANAGER() Update_Manager.Set() - #define CLEAR_UPDATE_MANAGER() Update_Manager.Clear() -#else - #define SET_UPDATE_MANAGER() - #define CLEAR_UPDATE_MANAGER() -#endif - -#if defined(TRACE_RENDERER_MANAGER) - extern BitTrace Renderer_Manager; - #define SET_RENDERER_MANAGER() Renderer_Manager.Set() - #define CLEAR_RENDERER_MANAGER() Renderer_Manager.Clear() -#else - #define SET_RENDERER_MANAGER() - #define CLEAR_RENDERER_MANAGER() -#endif - -class Mission; -class Registry; -class InterestManager; -class HostManager; -class UpdateManager; -class RendererManager; -class ControlsManager; -class Entity; -class EntityManager; -class Renderer; -class BackgroundTasks; -class ApplicationManager; -class CameraShip; -class SpoolFile; -class AudioRenderer; -class VideoRenderer; -class GaugeRenderer; -class IcomManager; -class ModeManager; -class Player; -class GeneralEventQueue; -class Entity__MakeMessage; -class ResourceFile; - -//########################################################################## -//######################### Application ############################## -//########################################################################## - -class Application__StateQueryMessage; -class Application__CheckLoadMessage; -class Application__RunMissionMessage; -class Application__StopMissionMessage; -class Application__SuspendMissionMessage; -class Application__ResumeMissionMessage; -class Application__AbortMissionMessage; - -enum EventPriorities -{ - MinEventPriority = 0, - LowEventPriority, - DefaultEventPriority, - HighEventPriority, - MaxEventPriority -}; - -const EventPriorities ControlsEventPriority = HighEventPriority; -const EventPriorities CreationEventPriority = HighEventPriority; -const EventPriorities DestructionEventPriority = HighEventPriority; -const EventPriorities UpdateEventPriority = MaxEventPriority; -const EventPriorities HighInterestEventPriority = DefaultEventPriority; -const EventPriorities LowInterestEventPriority = LowEventPriority; -const EventPriorities EntityManagerEventPriority = DefaultEventPriority; -const EventPriorities EntityInvalidEventPriority = LowEventPriority; - -enum ApplicationID -{ - RPL4, - BTL4, - NDL4 -}; - -#define EVENT_PRIORITIES_COUNT (5) - -class Application: - public NetworkClient -{ -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Construction, Destruction, and Testing -// -public: - Application( - ResourceFile *resource_file, - ApplicationID application_id, - ClassID class_ID=ApplicationClassID, - SharedData &shared_data=DefaultData - ); - ~Application(); - - Logical - TestInstance() const; - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Execution control -// -public: - virtual void Initialize(); - virtual void - LoadBackgroundTasks(); - - virtual Logical - ExecuteForeground( - Time start_of_frame, - Scalar frame_duration - ); - - virtual void - ExecuteBackgroundTask(); - - void - Stop(); - - virtual Logical - Shutdown(int remainingApps = 0); - - virtual void - Terminate(); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Creation Callbacks -// -public: - void - CreateMission(NotationFile *egg_notation_file); - - virtual Entity* - MakeAndLinkViewpointEntity(Entity__MakeMessage *message); - -protected: - virtual Mission* - MakeMission( - NotationFile *notation_file, - ResourceFile *resources - ); - - virtual Entity* - MakeViewpointEntity(Entity__MakeMessage *message); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Current mission -// -public: - Mission* - GetCurrentMission(); - Player* - GetMissionPlayer() - {return missionPlayer;} - - SpoolFile* - GetSpoolFile() - {return spoolFile;} - -protected: - Player - *missionPlayer; - SpoolFile* - spoolFile; - Time - lastCreationMessage; - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Application State -// -public: - enum { - InitializingState = 0, - WaitingForEgg, - LoadingMission, - WaitingForLaunch, - LaunchingMission, - RunningMission, - EndingMission, - StoppingMission, - SuspendingMission, - ResumingMission, - AbortingMission, - CreatingMission, - ApplicationStateCount - }; - - Enumeration - GetApplicationState(); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// System level event processing -// -public: - void - Post( - int priority, - Receiver *target, - Receiver::Message *message, - const Time &when=Time::Null - ); - - void - SendEvent( - int priority, - HostID host_ID, - NetworkManager::ClientID client_ID, - Receiver::Message *message, - Time when=Time::Null - ); - - void - BroadcastEvent( - int priority, - NetworkManager::ClientID client_ID, - Receiver::Message *message, - Time when=Time::Null - ); - - void - ExclusiveBroadcastEvent( - int priority, - NetworkManager::ClientID client_ID, - Receiver::Message *message, - Time when=Time::Null - ); - - #if defined(TRACE_EVENT_COUNT) - size_t - GetEventCount(); - #endif - - void - DumpEventQueue(); - -#if 0 -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Creation and Interest Event Posting -// -public: - void - PostCreationEvent( - Receiver::Message *message, - const Time &when=Time::Null - ); - void - PostInterestEvent( - Entity *entity, - Renderer *renderer - ); - void - PostUpdateEvent( - Entity *entity, - Receiver::Message *message - ); - void - PostDestructionEvent( - Entity *entity, - Receiver::Message *message - ); -#endif - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// System level message processing -// -public: - void - SendMessage( - HostID host_ID, - NetworkManager::ClientID client_ID, - Receiver::Message *message - ); - - void - BroadcastMessage( - NetworkManager::ClientID client_ID, - Receiver::Message *message - ); - - void - ExclusiveBroadcastMessage( - NetworkManager::ClientID client_ID, - Receiver::Message *message - ); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Event level event processing -// -public: - Logical - ProcessOneEvent(int min_priority=0); - - void - ProcessAllEvents(int min_priority=0); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Accessors -// -public: - Scalar - GetApplicationLoopFrameRate(); - Scalar - GetSecondsRemainingInGame() - {return secondsRemainingInGame;} - ApplicationID - GetApplicationID() - {return applicationID;} - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Module accessors -// -public: - // - // Managers - // - NetworkManager* - GetNetworkManager(); - EntityManager* - GetEntityManager(); - Registry* - GetRegistry(); - HostManager* - GetHostManager(); - InterestManager* - GetInterestManager(); - UpdateManager* - GetUpdateManager(); - RendererManager* - GetRendererManager(); - ControlsManager* - GetControlsManager(); - IcomManager* - GetIntercomManager(); - AudioRenderer* - GetAudioRenderer(); - VideoRenderer* - GetVideoRenderer(); - GaugeRenderer* - GetGaugeRenderer(); - ModeManager* - GetModeManager(); - - // - // StreamableResourceFile - // - ResourceFile* - GetResourceFile(); - void - SetResourceFile(ResourceFile *resources); - ApplicationManager* - GetApplicationManager(); - - // - // Viewpoint entity - // - Entity* - GetViewpointEntity(); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Message Support -// -public: - enum { - StateQueryMessageID = NetworkClient::NextMessageID, - CheckLoadMessageID, - RunMissionMessageID, - StopMissionMessageID, - KeyCommandMessageID, - SuspendMissionMessageID, - ResumeMissionMessageID, - LoadMissionMessageID, - AbortMissionMessageID, - NextMessageID - }; - - typedef Application__StateQueryMessage StateQueryMessage; - typedef Application__CheckLoadMessage CheckLoadMessage; - typedef Application__RunMissionMessage RunMissionMessage; - typedef Application__StopMissionMessage StopMissionMessage; - typedef Application__SuspendMissionMessage SuspendMissionMessage; - typedef Application__ResumeMissionMessage ResumeMissionMessage; - typedef Application__AbortMissionMessage AbortMissionMessage; - - static const HandlerEntry - MessageHandlerEntries[]; - //static MessageHandlerSet MessageHandlers; - static MessageHandlerSet MessageHandlers; - - void - StateQueryMessageHandler(StateQueryMessage *message); - void - CheckLoadMessageHandler(CheckLoadMessage *message); - void - RunMissionMessageHandler(RunMissionMessage *message); - void - StopMissionMessageHandler(StopMissionMessage *message); - void - SuspendMissionMessageHandler(SuspendMissionMessage *message); - void - ResumeMissionMessageHandler(ResumeMissionMessage *message); - void - KeyCommandMessageHandler(ReceiverDataMessageOf *message); - void - LoadMissionMessageHandler(Message *message); - void - AbortMissionMessageHandler(AbortMissionMessage *message); - - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Shared Data Support -// -public: - static Derivation ClassDerivations; - static SharedData DefaultData; - - static Logical DoSuppressGauges() { return suppressGauges; } - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Modules -// -protected: - // - // Managers - // - NetworkManager - *networkManager; - EntityManager - *entityManager; - Registry - *registry; - HostManager - *hostManager; - InterestManager - *interestManager; - UpdateManager - *updateManager; - RendererManager - *rendererManager; - ControlsManager - *controlsManager; - IcomManager - *intercomManager; - AudioRenderer - *audioRenderer; - VideoRenderer - *videoRenderer; - GaugeRenderer - *gaugeRenderer; - ModeManager - *modeManager; - - static Logical suppressGauges; - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Module Creation -// -protected: - // - // Managers - // - virtual NetworkManager* - MakeNetworkManager(); - - virtual Registry* - MakeRegistry(); - - virtual ControlsManager* - MakeControlsManager(); - - virtual IcomManager* - MakeIntercomManager(); - - virtual InterestManager* - MakeInterestManager(); - - virtual AudioRenderer* - MakeAudioRenderer(); - - virtual VideoRenderer* - MakeVideoRenderer(); - - virtual GaugeRenderer* - MakeGaugeRenderer(); - - virtual ModeManager* - MakeModeManager(); - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Private data -// -protected: - ApplicationID - applicationID; - Scalar - secondsRemainingInGame; - Time - gameStarted; - GeneralEventQueue - *eventQueue; - BackgroundTasks - *backgroundTasks; - ResourceFile - *resourceFile; - Entity - *viewpointEntity; - Logical - executeFrames; - StateIndicator - applicationState; - Mission - *currentMission; - Logical - routePacketFinished; -}; - -extern Application *application; -extern int Exit_Code; - -//~~~~~~~~~~~~~~~~~~~~ Application__CheckLoadMessage ~~~~~~~~~~~~~~~~~~~~~~~ - -class Application__CheckLoadMessage: - public NetworkClient::Message -{ -public: - Application__CheckLoadMessage(); -}; - -//~~~~~~~~~~~~~~~~~~~~~~~~~ Application inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -inline Mission* - Application::GetCurrentMission() -{ - Check(this); - return currentMission; -} - -inline Enumeration - Application::GetApplicationState() -{ - Check(this); - return applicationState.GetState(); -} - -inline void - Application::Post( - int priority, - Receiver *target, - Receiver::Message *message, - const Time &when - ) -{ - 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); -} - -inline void - Application::SendEvent( - int priority, - HostID host_ID, - NetworkClient::ClientID client_ID, - Receiver::Message *message, - Time when - ) -{ - Check(this); - eventQueue->SendEvent(priority,host_ID,client_ID,message,when); -} - -inline void - Application::BroadcastEvent( - int priority, - NetworkClient::ClientID client_ID, - Receiver::Message *message, - Time when - ) -{ - Check(this); - eventQueue->BroadcastEvent(priority,client_ID,message,when); -} - -inline void - Application::ExclusiveBroadcastEvent( - int priority, - NetworkClient::ClientID client_ID, - Receiver::Message *message, - Time when - ) -{ - Check(this); - eventQueue->ExclusiveBroadcastEvent(priority,client_ID,message,when); -} - -#if defined(GET_EVENT_COUNT) - inline size_t - Application::GetEventCount() - { - return eventQueue->GetEventCount(); - } -#endif - -inline void - Application::DumpEventQueue() -{ - eventQueue->DumpEventQueue(); -} - - -inline void - Application::SendMessage( - HostID host_ID, - NetworkClient::ClientID client_ID, - Receiver::Message *message - ) -{ - Check(this); - networkManager->Send(message,client_ID,host_ID); -} - -inline void - Application::BroadcastMessage( - NetworkManager::ClientID client_ID, - Receiver::Message *message - ) -{ - Check(this); - networkManager->Broadcast(message,client_ID); -} - -inline void - Application::ExclusiveBroadcastMessage( - NetworkManager::ClientID client_ID, - Receiver::Message *message - ) -{ - Check(this); - networkManager->ExclusiveBroadcast(message,client_ID); -} - -// -// EVENT-PUMP COUNTERS (read by the BT_STACK_LOG probe in ExecuteForeground). -// -// The application parks in LoadingMission because IsPriorityEmpty(0) never -// becomes true, and priority 0 is where the interest manager queues every -// renderer event while the mission loads. Three very different faults look -// identical from outside -- the pump never runs, the pump runs but finds -// nothing (so something else holds the queue), or the pump drains events as -// fast as they are re-posted. Counting calls against hits separates them in -// a single run. -// -extern long - eventPumpCalls; -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) -{ - Check(this); - Logical processed; - - eventPumpCalls++; - processed = eventQueue->ProcessOneEvent(min_priority); - if (processed) - { - eventPumpHits++; - } - return processed; -} - -inline void - Application::ProcessAllEvents(int min_priority) -{ - Check(this); - eventQueue->ProcessAllEvents(min_priority); -} - -inline NetworkManager* - Application::GetNetworkManager() -{ - Check(networkManager); - return networkManager; -} - -inline EntityManager* - Application::GetEntityManager() -{ - return entityManager; -} - -inline Registry* - Application::GetRegistry() -{ - return registry; -} - -inline HostManager* - Application::GetHostManager() -{ - return hostManager; -} - -inline InterestManager* - Application::GetInterestManager() -{ - return interestManager; -} - -inline UpdateManager* - Application::GetUpdateManager() -{ - return updateManager; -} - -inline RendererManager* - Application::GetRendererManager() -{ - return rendererManager; -} - -inline ControlsManager* - Application::GetControlsManager() -{ - return controlsManager; -} - -inline IcomManager* - Application::GetIntercomManager() -{ - return intercomManager; -} - -inline ResourceFile* - Application::GetResourceFile() -{ - return resourceFile; -} - -inline void - Application::SetResourceFile(ResourceFile *resources) -{ - resourceFile = resources; -} - -inline Entity* - Application::GetViewpointEntity() -{ - return viewpointEntity; -} - -inline AudioRenderer* - Application::GetAudioRenderer() -{ - return audioRenderer; -} - -inline VideoRenderer* - Application::GetVideoRenderer() -{ - return videoRenderer; -} - -inline GaugeRenderer* - Application::GetGaugeRenderer() -{ - return gaugeRenderer; -} - -inline ModeManager* - Application::GetModeManager() -{ - return modeManager; -} - -#endif +#if !defined(APP_HPP) +# define APP_HPP + +# if !defined(NETWORK_HPP) +# include +# endif +# if !defined(EVENT_HPP) +# include +# endif +# if !defined(STATE_HPP) +# include +# endif +# if !defined(CSTR_HPP) +# include +# endif + +#if defined(TRACE_FOREGROUND_PROCESSING) + extern BitTrace Foreground_Processing; + #define SET_FOREGROUND_PROCESSING() Foreground_Processing.Set() + #define CLEAR_FOREGROUND_PROCESSING() Foreground_Processing.Clear() +#else + #define SET_FOREGROUND_PROCESSING() + #define CLEAR_FOREGROUND_PROCESSING() +#endif + +#if defined(TRACE_UPDATE_MANAGER) + extern BitTrace Update_Manager; + #define SET_UPDATE_MANAGER() Update_Manager.Set() + #define CLEAR_UPDATE_MANAGER() Update_Manager.Clear() +#else + #define SET_UPDATE_MANAGER() + #define CLEAR_UPDATE_MANAGER() +#endif + +#if defined(TRACE_RENDERER_MANAGER) + extern BitTrace Renderer_Manager; + #define SET_RENDERER_MANAGER() Renderer_Manager.Set() + #define CLEAR_RENDERER_MANAGER() Renderer_Manager.Clear() +#else + #define SET_RENDERER_MANAGER() + #define CLEAR_RENDERER_MANAGER() +#endif + +class Mission; +class Registry; +class InterestManager; +class HostManager; +class UpdateManager; +class RendererManager; +class ControlsManager; +class Entity; +class EntityManager; +class Renderer; +class BackgroundTasks; +class ApplicationManager; +class CameraShip; +class SpoolFile; +class AudioRenderer; +class VideoRenderer; +class GaugeRenderer; +class IcomManager; +class ModeManager; +class Player; +class GeneralEventQueue; +class Entity__MakeMessage; +class ResourceFile; + +//########################################################################## +//######################### Application ############################## +//########################################################################## + +class Application__StateQueryMessage; +class Application__CheckLoadMessage; +class Application__RunMissionMessage; +class Application__StopMissionMessage; +class Application__SuspendMissionMessage; +class Application__ResumeMissionMessage; +class Application__AbortMissionMessage; + +enum EventPriorities +{ + MinEventPriority = 0, + LowEventPriority, + DefaultEventPriority, + HighEventPriority, + MaxEventPriority +}; + +const EventPriorities ControlsEventPriority = HighEventPriority; +const EventPriorities CreationEventPriority = HighEventPriority; +const EventPriorities DestructionEventPriority = HighEventPriority; +const EventPriorities UpdateEventPriority = MaxEventPriority; +const EventPriorities HighInterestEventPriority = DefaultEventPriority; +const EventPriorities LowInterestEventPriority = LowEventPriority; +const EventPriorities EntityManagerEventPriority = DefaultEventPriority; +const EventPriorities EntityInvalidEventPriority = LowEventPriority; + +enum ApplicationID +{ + RPL4, + BTL4, + NDL4 +}; + +#define EVENT_PRIORITIES_COUNT (5) + +class Application: + public NetworkClient +{ +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Construction, Destruction, and Testing +// +public: + Application( + ResourceFile *resource_file, + ApplicationID application_id, + ClassID class_ID=ApplicationClassID, + SharedData &shared_data=DefaultData + ); + ~Application(); + + Logical + TestInstance() const; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Execution control +// +public: + virtual void Initialize(); + virtual void + LoadBackgroundTasks(); + + virtual Logical + ExecuteForeground( + Time start_of_frame, + Scalar frame_duration + ); + + virtual void + ExecuteBackgroundTask(); + + void + Stop(); + + virtual Logical + Shutdown(int remainingApps = 0); + + virtual void + Terminate(); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Creation Callbacks +// +public: + void + CreateMission(NotationFile *egg_notation_file); + + virtual Entity* + MakeAndLinkViewpointEntity(Entity__MakeMessage *message); + +protected: + virtual Mission* + MakeMission( + NotationFile *notation_file, + ResourceFile *resources + ); + + virtual Entity* + MakeViewpointEntity(Entity__MakeMessage *message); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Current mission +// +public: + Mission* + GetCurrentMission(); + Player* + GetMissionPlayer() + {return missionPlayer;} + + SpoolFile* + GetSpoolFile() + {return spoolFile;} + +protected: + Player + *missionPlayer; + SpoolFile* + spoolFile; + Time + lastCreationMessage; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Application State +// +public: + enum { + InitializingState = 0, + WaitingForEgg, + LoadingMission, + WaitingForLaunch, + LaunchingMission, + RunningMission, + EndingMission, + StoppingMission, + SuspendingMission, + ResumingMission, + AbortingMission, + CreatingMission, + ApplicationStateCount + }; + + Enumeration + GetApplicationState(); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// System level event processing +// +public: + void + Post( + int priority, + Receiver *target, + Receiver::Message *message, + const Time &when=Time::Null + ); + + void + SendEvent( + int priority, + HostID host_ID, + NetworkManager::ClientID client_ID, + Receiver::Message *message, + Time when=Time::Null + ); + + void + BroadcastEvent( + int priority, + NetworkManager::ClientID client_ID, + Receiver::Message *message, + Time when=Time::Null + ); + + void + ExclusiveBroadcastEvent( + int priority, + NetworkManager::ClientID client_ID, + Receiver::Message *message, + Time when=Time::Null + ); + + #if defined(TRACE_EVENT_COUNT) + size_t + GetEventCount(); + #endif + + void + DumpEventQueue(); + +#if 0 +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Creation and Interest Event Posting +// +public: + void + PostCreationEvent( + Receiver::Message *message, + const Time &when=Time::Null + ); + void + PostInterestEvent( + Entity *entity, + Renderer *renderer + ); + void + PostUpdateEvent( + Entity *entity, + Receiver::Message *message + ); + void + PostDestructionEvent( + Entity *entity, + Receiver::Message *message + ); +#endif + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// System level message processing +// +public: + void + SendMessage( + HostID host_ID, + NetworkManager::ClientID client_ID, + Receiver::Message *message + ); + + void + BroadcastMessage( + NetworkManager::ClientID client_ID, + Receiver::Message *message + ); + + void + ExclusiveBroadcastMessage( + NetworkManager::ClientID client_ID, + Receiver::Message *message + ); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Event level event processing +// +public: + Logical + ProcessOneEvent(int min_priority=0); + + void + ProcessAllEvents(int min_priority=0); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Accessors +// +public: + Scalar + GetApplicationLoopFrameRate(); + Scalar + GetSecondsRemainingInGame() + {return secondsRemainingInGame;} + ApplicationID + GetApplicationID() + {return applicationID;} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Module accessors +// +public: + // + // Managers + // + NetworkManager* + GetNetworkManager(); + EntityManager* + GetEntityManager(); + Registry* + GetRegistry(); + HostManager* + GetHostManager(); + InterestManager* + GetInterestManager(); + UpdateManager* + GetUpdateManager(); + RendererManager* + GetRendererManager(); + ControlsManager* + GetControlsManager(); + IcomManager* + GetIntercomManager(); + AudioRenderer* + GetAudioRenderer(); + VideoRenderer* + GetVideoRenderer(); + GaugeRenderer* + GetGaugeRenderer(); + ModeManager* + GetModeManager(); + + // + // StreamableResourceFile + // + ResourceFile* + GetResourceFile(); + void + SetResourceFile(ResourceFile *resources); + ApplicationManager* + GetApplicationManager(); + + // + // Viewpoint entity + // + Entity* + GetViewpointEntity(); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Message Support +// +public: + enum { + StateQueryMessageID = NetworkClient::NextMessageID, + CheckLoadMessageID, + RunMissionMessageID, + StopMissionMessageID, + KeyCommandMessageID, + SuspendMissionMessageID, + ResumeMissionMessageID, + LoadMissionMessageID, + AbortMissionMessageID, + NextMessageID + }; + + typedef Application__StateQueryMessage StateQueryMessage; + typedef Application__CheckLoadMessage CheckLoadMessage; + typedef Application__RunMissionMessage RunMissionMessage; + typedef Application__StopMissionMessage StopMissionMessage; + typedef Application__SuspendMissionMessage SuspendMissionMessage; + typedef Application__ResumeMissionMessage ResumeMissionMessage; + typedef Application__AbortMissionMessage AbortMissionMessage; + + static const HandlerEntry + MessageHandlerEntries[]; + //static MessageHandlerSet MessageHandlers; + static MessageHandlerSet MessageHandlers; + + void + StateQueryMessageHandler(StateQueryMessage *message); + void + CheckLoadMessageHandler(CheckLoadMessage *message); + void + RunMissionMessageHandler(RunMissionMessage *message); + void + StopMissionMessageHandler(StopMissionMessage *message); + void + SuspendMissionMessageHandler(SuspendMissionMessage *message); + void + ResumeMissionMessageHandler(ResumeMissionMessage *message); + void + KeyCommandMessageHandler(ReceiverDataMessageOf *message); + void + LoadMissionMessageHandler(Message *message); + void + AbortMissionMessageHandler(AbortMissionMessage *message); + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Shared Data Support +// +public: + static Derivation ClassDerivations; + static SharedData DefaultData; + + static Logical DoSuppressGauges() { return suppressGauges; } + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Modules +// +protected: + // + // Managers + // + NetworkManager + *networkManager; + EntityManager + *entityManager; + Registry + *registry; + HostManager + *hostManager; + InterestManager + *interestManager; + UpdateManager + *updateManager; + RendererManager + *rendererManager; + ControlsManager + *controlsManager; + IcomManager + *intercomManager; + AudioRenderer + *audioRenderer; + VideoRenderer + *videoRenderer; + GaugeRenderer + *gaugeRenderer; + ModeManager + *modeManager; + + static Logical suppressGauges; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Module Creation +// +protected: + // + // Managers + // + virtual NetworkManager* + MakeNetworkManager(); + + virtual Registry* + MakeRegistry(); + + virtual ControlsManager* + MakeControlsManager(); + + virtual IcomManager* + MakeIntercomManager(); + + virtual InterestManager* + MakeInterestManager(); + + virtual AudioRenderer* + MakeAudioRenderer(); + + virtual VideoRenderer* + MakeVideoRenderer(); + + virtual GaugeRenderer* + MakeGaugeRenderer(); + + virtual ModeManager* + MakeModeManager(); + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Private data +// +protected: + ApplicationID + applicationID; + Scalar + secondsRemainingInGame; + Time + gameStarted; + GeneralEventQueue + *eventQueue; + BackgroundTasks + *backgroundTasks; + ResourceFile + *resourceFile; + Entity + *viewpointEntity; + Logical + executeFrames; + StateIndicator + applicationState; + Mission + *currentMission; + Logical + routePacketFinished; +}; + +extern Application *application; +extern int Exit_Code; + +//~~~~~~~~~~~~~~~~~~~~ Application__CheckLoadMessage ~~~~~~~~~~~~~~~~~~~~~~~ + +class Application__CheckLoadMessage: + public NetworkClient::Message +{ +public: + Application__CheckLoadMessage(); +}; + +//~~~~~~~~~~~~~~~~~~~~~~~~~ Application inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +inline Mission* + Application::GetCurrentMission() +{ + Check(this); + return currentMission; +} + +inline Enumeration + Application::GetApplicationState() +{ + Check(this); + return applicationState.GetState(); +} + +// +// 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 void + Application::Post( + int priority, + Receiver *target, + Receiver::Message *message, + const Time &when + ) +{ + 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); +} + +inline void + Application::SendEvent( + int priority, + HostID host_ID, + NetworkClient::ClientID client_ID, + Receiver::Message *message, + Time when + ) +{ + Check(this); + eventQueue->SendEvent(priority,host_ID,client_ID,message,when); +} + +inline void + Application::BroadcastEvent( + int priority, + NetworkClient::ClientID client_ID, + Receiver::Message *message, + Time when + ) +{ + Check(this); + eventQueue->BroadcastEvent(priority,client_ID,message,when); +} + +inline void + Application::ExclusiveBroadcastEvent( + int priority, + NetworkClient::ClientID client_ID, + Receiver::Message *message, + Time when + ) +{ + Check(this); + eventQueue->ExclusiveBroadcastEvent(priority,client_ID,message,when); +} + +#if defined(GET_EVENT_COUNT) + inline size_t + Application::GetEventCount() + { + return eventQueue->GetEventCount(); + } +#endif + +inline void + Application::DumpEventQueue() +{ + eventQueue->DumpEventQueue(); +} + + +inline void + Application::SendMessage( + HostID host_ID, + NetworkClient::ClientID client_ID, + Receiver::Message *message + ) +{ + Check(this); + networkManager->Send(message,client_ID,host_ID); +} + +inline void + Application::BroadcastMessage( + NetworkManager::ClientID client_ID, + Receiver::Message *message + ) +{ + Check(this); + networkManager->Broadcast(message,client_ID); +} + +inline void + Application::ExclusiveBroadcastMessage( + NetworkManager::ClientID client_ID, + Receiver::Message *message + ) +{ + Check(this); + networkManager->ExclusiveBroadcast(message,client_ID); +} + +// +// EVENT-PUMP COUNTERS (read by the BT_STACK_LOG probe in ExecuteForeground). +// +// The application parks in LoadingMission because IsPriorityEmpty(0) never +// becomes true, and priority 0 is where the interest manager queues every +// renderer event while the mission loads. Three very different faults look +// identical from outside -- the pump never runs, the pump runs but finds +// nothing (so something else holds the queue), or the pump drains events as +// fast as they are re-posted. Counting calls against hits separates them in +// a single run. +// +extern long + eventPumpCalls; +extern long + eventPumpHits; + + +inline Logical + Application::ProcessOneEvent(int min_priority) +{ + Check(this); + Logical processed; + + eventPumpCalls++; + processed = eventQueue->ProcessOneEvent(min_priority); + if (processed) + { + eventPumpHits++; + } + return processed; +} + +inline void + Application::ProcessAllEvents(int min_priority) +{ + Check(this); + eventQueue->ProcessAllEvents(min_priority); +} + +inline NetworkManager* + Application::GetNetworkManager() +{ + Check(networkManager); + return networkManager; +} + +inline EntityManager* + Application::GetEntityManager() +{ + return entityManager; +} + +inline Registry* + Application::GetRegistry() +{ + return registry; +} + +inline HostManager* + Application::GetHostManager() +{ + return hostManager; +} + +inline InterestManager* + Application::GetInterestManager() +{ + return interestManager; +} + +inline UpdateManager* + Application::GetUpdateManager() +{ + return updateManager; +} + +inline RendererManager* + Application::GetRendererManager() +{ + return rendererManager; +} + +inline ControlsManager* + Application::GetControlsManager() +{ + return controlsManager; +} + +inline IcomManager* + Application::GetIntercomManager() +{ + return intercomManager; +} + +inline ResourceFile* + Application::GetResourceFile() +{ + return resourceFile; +} + +inline void + Application::SetResourceFile(ResourceFile *resources) +{ + resourceFile = resources; +} + +inline Entity* + Application::GetViewpointEntity() +{ + return viewpointEntity; +} + +inline AudioRenderer* + Application::GetAudioRenderer() +{ + return audioRenderer; +} + +inline VideoRenderer* + Application::GetVideoRenderer() +{ + return videoRenderer; +} + +inline GaugeRenderer* + Application::GetGaugeRenderer() +{ + return gaugeRenderer; +} + +inline ModeManager* + Application::GetModeManager() +{ + return modeManager; +} + +#endif diff --git a/restoration/source410/RENDER-ROADMAP.NOTES.md b/restoration/source410/RENDER-ROADMAP.NOTES.md index bdac314e..120e39fb 100644 --- a/restoration/source410/RENDER-ROADMAP.NOTES.md +++ b/restoration/source410/RENDER-ROADMAP.NOTES.md @@ -1010,3 +1010,65 @@ 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). + +-------------------------------------------------------------------------------- +SOLVED: THE RIO SERIAL PORT WAS BLOCKING EVERY MISSION -- AND A MISSION NOW RUNS +-------------------------------------------------------------------------------- +pod_render_norio.conf is pod_render_rec.conf with ONE line changed -- +serial1=disabled instead of the vrio named pipe. Same binary, same egg, same +everything else. Result: + + [launch] state=2 minPriorityEmpty=0 ticks=84205 + [launch] state=2 minPriorityEmpty=1 ticks=85316 <- backlog finally empty + [queues] p0=- p1=- p2=BUSY p3=- p4=- <- priority 0 drained + BTL4Application::RunMissionMessageHandler + Turning Plasma Score Display On + [sim] pos=(180.466,10,-358.703) yaw=-0.275605 spd=14.4 + [sim] pos=(251.959,10,-250.498) yaw=-0.89103 spd=14.4 + +The mission LAUNCHES and the mech WALKS under the forced throttle/turn. No +fault, through 290 log lines and counting. + +WHAT THE HANG ACTUALLY WAS, after three wrong answers. Not starvation, not a +timed-event deadlock, not a refill loop -- it was the most mundane candidate on +the original list, VOLUME, which I talked myself out of: + + * 530 renderer events queue at priority 0 while a mission loads. + * BackgroundTasks::Execute runs exactly ONE task per call, round-robin over + our seven tasks, and the 1ms frame budget is always blown on this rig so no + extra background passes happen. That is ~9 events drained per REAL second. + * So a full load legitimately takes ~60 seconds here, and the gate correctly + stays shut for all of it. + +The fault arrived at ~40 seconds -- BEFORE the backlog could clear -- which is +why the load "never" finished. Remove the fault and the same 530 events drain +to completion and the gate opens. Every "the queue never drains" conclusion +was really "the process dies before it can". + +The tell I misread: p0=BUSY with nextReady=1 and a working pump looks like +refill, but it is equally consistent with a large finite backlog still +draining. The tally settled it -- id3 climbed to 530 and then went FLAT, which +means nothing was refilling. I had the disproof in hand a run earlier than I +acted on it. + +WHY THE RIO PORT. The conf points serial1 at a vrio named pipe with no server +attached, which is supposed to behave as an unplugged cable. The emulator log +(now captured by podrun.sh) shows a steady trickle of serial1 RX OVERRUN errors +on it, and our build prints "RIO never came back from test mode!" where the +SHIPPED binary prints "LBE4ControlsManager::Execute, lost RIO analog request" +and keeps going -- shipped launches and runs the mission on this identical rig. +So the unplugged port is survivable and our handling of it is not. That is the +next thread, and it is a real defect rather than a rig artifact: a pod whose +RIO cable is unplugged should still boot. + +OPERATIONAL CONSEQUENCE. Until that is fixed, dev-rig runs that do not need +the RIO should use pod_render_norio.conf. It is the only configuration in +which our build reaches a running mission, which unblocks everything +downstream: seeing a mech frame at all, confirming the translation slot, and +adding rotation. + +STILL OPEN. The wild reference at EulerAngles::operator=(const LinearMatrix&) ++0x19 remains unexplained -- cr2 is 1.79GB from a stack whose frame pointer the +probe shows stable, and all three call sites of that operator pass stack +locals. It is now reproducible on demand (enable serial1) rather than +intermittent, which makes it a tractable hunt instead of a coin flip.