deadlock it exposed The camera gap root-caused and fixed through three layers: LAYER 1 (ours): "chain the engine after the skeleton" was a non-fix. The engine's MakeEntityRenderables only accepts Object/Rubble resources, so chaining it with a Skeleton printed "wrong video resource type" and built NOTHING -- the fifodump proved it: zero vr_flush_dcs_artic records. The real fix mirrors the engine's Mover composition (L4VIDEO.CPP:4795-4860) inside our mech case: a Dynamic RootRenderable (whose ctor seeds its DCS from localToWorld and whose Execute re-flushes on change -- the ONLY source of per-frame wire articulation), the skeleton hung UNDER its DCS via ReadSKLFile's new parent_dcs parameter, and for the inside view a DPLEyeRenderable on that root with the published EyepointRotation. Also explains the mystery monolith in the first frame: the skeleton was parked at the world origin with the camera inside its shins. LAYER 2 (1995 library, read from our own linked symbols): dpl_DrawSceneComplete = velocirender_frameack(0), and frameack's unsolicited-reply path prints "dpl error - unsolicited input during frame ack", adds the 1995 authors' own puzzled "flush artic??" when the stray action is 0x1f, and calls exit(9). Documented before it ever fires. LAYER 3 (emulator, the actual deadlock): with per-frame articulation flowing for the first time, the game stopped drawing at frame 232 -- one 0x1f burst per frame forever, no receives, no error. The VPX device feeds the frame ack only after 6 CONSECUTIVE empty polls and reset that counter on EVERY outputData write; per-frame articulation writes made the count unreachable, so dpl_DrawSceneComplete never went true. Fix: the reset is gated on !frame_outstanding -- once a draw is outstanding the only receive the game will do next is the frame ack. The iserver-drain concern the reset guarded is boot-time only, when no frame is outstanding. Verified: two agreeing runs of ours on the fixed emulator (611 draws / 222 artic batches in run 2 -- the 232 wall is gone), camera travelling with the mech (cam -329.7,0,60.5 -> -362.3,0,54.5 across 8s), anim_abs 0 -> 1 on the bridge, view now INSIDE the cockpit cage. Shipped binary re-run on the fixed emulator: launches and runs, no regression. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
81 lines
4.6 KiB
Plaintext
81 lines
4.6 KiB
Plaintext
LOG: Early LOG Init complete
|
|
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.
|
|
LOG: DOSBox-X version 2026.06.02 Commit d75a57c (MinGW SDL2 64-bit)
|
|
LOG: Prevent capture: 0
|
|
LOG: SDL: version 2.32.10, Video windows, Audio directsound
|
|
LOG: EXPERIMENTAL: Debugger enabled for MinGW build, DOSBox-X crashes depending on the terminal software you use. Launching from command prompt (cmd.exe) is recommended.
|
|
LOG: Windows keyboard layout ID is 0x0409
|
|
LOG: Host keyboard layout is now us (US English)
|
|
LOG: Mapper keyboard layout is now us (US English)
|
|
LOG: SDL2 reports desktop display mode 3440 x 1440
|
|
LOG: OpenGL Version : 4.6.0 NVIDIA 610.47
|
|
LOG: Configured windowposition: -
|
|
LOG: SDL: Current window pixel format: SDL_PIXELFORMAT_RGB888
|
|
LOG: SDL: You are running in 24 bpp mode, this will slow down things!
|
|
LOG: Releasing keyboard
|
|
LOG: SDL: Windows 11 round corners will be disabled.
|
|
LOG: Screen report: Method 'Win98base' (3440.000 x 1440.000 pixels) at (0.000 x 0.000) (910.167 x 381.000 mm) (35.833 x 15.000 in) (96.000 x 96.000 DPI)
|
|
LOG: ISA BCLK: 8333333.333Hz (25000000/3)
|
|
LOG: monopal: green,
|
|
LOG: Active save slot: 1 [Empty]
|
|
LOG: USING AVI+ZMBV
|
|
LOG: Pentium CMPXCHG8B emulation is enabled
|
|
LOG: Max 1073741824 sz 32768
|
|
LOG: Final 32768
|
|
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
|
|
LOG: VPXLOG: fifosock listening on 127.0.0.1:8621
|
|
LOG: VPXLOG: live render backend started
|
|
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
|
|
LOG: MIDI:Opened device:win32
|
|
LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Microphone)
|
|
LOG: One joystick reported, initializing with 4axis
|
|
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
|
|
LOG: VOODOO LFB now at d0000000
|
|
LOG: 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
|
|
LOG: VPXLOG: fifosock client connected
|
|
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
|
|
LOG: 173614606 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]3e888894/0.266667 [44]3eeeeefa/0.466667 [48]ffffffff/nan
|
|
VPX lights@f121: type6=2 typeE=6 decoded=2 dir=1 amb(0.55,0.50,0.65)
|
|
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
|
|
VPX lights@f241: type6=2 typeE=6 decoded=2 dir=1 amb(0.55,0.50,0.65)
|
|
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
|
|
VPX lights@f361: type6=2 typeE=9 decoded=2 dir=1 amb(0.55,0.50,0.65)
|
|
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
|
|
VPX lights@f481: type6=2 typeE=10 decoded=2 dir=1 amb(0.55,0.50,0.65)
|
|
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
|
|
VPX lights@f601: type6=2 typeE=10 decoded=2 dir=1 amb(0.55,0.50,0.65)
|
|
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
|