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>
57 lines
3.2 KiB
Plaintext
57 lines
3.2 KiB
Plaintext
LOG: Early LOG Init complete
|
|
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_shp.conf
|
|
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
|
|
LOG: Logging init: beginning logging proper. This is the end of the early init logging
|
|
LOG: Logging: No logfile was given. All further logging will be discarded.
|
|
LOG: DOSBox-X version 2026.06.02 Commit d75a57c (MinGW SDL2 64-bit)
|
|
LOG: Prevent capture: 0
|
|
LOG: SDL: version 2.32.10, Video windows, Audio directsound
|
|
LOG: EXPERIMENTAL: Debugger enabled for MinGW build, DOSBox-X crashes depending on the terminal software you use. Launching from command prompt (cmd.exe) is recommended.
|
|
LOG: Windows keyboard layout ID is 0x0409
|
|
LOG: Host keyboard layout is now us (US English)
|
|
LOG: Mapper keyboard layout is now us (US English)
|
|
LOG: SDL2 reports desktop display mode 3440 x 1440
|
|
LOG: OpenGL Version : 4.6.0 NVIDIA 610.47
|
|
LOG: Configured windowposition: -
|
|
LOG: SDL: Current window pixel format: SDL_PIXELFORMAT_RGB888
|
|
LOG: SDL: You are running in 24 bpp mode, this will slow down things!
|
|
LOG: Releasing keyboard
|
|
LOG: SDL: Windows 11 round corners will be disabled.
|
|
LOG: Screen report: Method 'Win98base' (3440.000 x 1440.000 pixels) at (0.000 x 0.000) (910.167 x 381.000 mm) (35.833 x 15.000 in) (96.000 x 96.000 DPI)
|
|
LOG: ISA BCLK: 8333333.333Hz (25000000/3)
|
|
LOG: monopal: green,
|
|
LOG: Active save slot: 1 [Empty]
|
|
LOG: USING AVI+ZMBV
|
|
LOG: Pentium CMPXCHG8B emulation is enabled
|
|
LOG: Max 1073741824 sz 32768
|
|
LOG: Final 32768
|
|
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
|
|
LOG: VPXLOG: fifosock listening on 127.0.0.1:8621
|
|
LOG: VPXLOG: live render backend started
|
|
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
|
|
LOG: MIDI:Opened device:win32
|
|
LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Microphone)
|
|
LOG: One joystick reported, initializing with 4axis
|
|
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
|
|
LOG: VOODOO LFB now at d0000000
|
|
LOG: Serial1: BASE 3f8h
|
|
LOG: Serial1: namedpipe client of \\.\pipe\vrio (poll 0.10ms burst x16)
|
|
LOG: Serial1: namedpipe connected to \\.\pipe\vrio
|
|
LOG: Serial2: BASE 2f8h
|
|
LOG: Serial2: namedpipe client of \\.\pipe\vplasma (poll 1.00ms burst x1)
|
|
LOG: Serial2: namedpipe connected to \\.\pipe\vplasma
|
|
LOG: Serial3: BASE 3e8h
|
|
LOG: Serial: port 3 will write to file C:\VWE\TeslaRel410\emulator\render-bridge\podlog_shipped.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
|