Files
TeslaRel410/emulator/LAUNCH.md
T
CydandClaude Fable 5 125d835a05 Deploy: pod_deploy.ps1 cockpit window layout + focus_dosbox.ps1 (renderer topmost, DOSBox focused)
Real-pod deployment launcher for the original VDB + octopus 4-head wiring:
VPX_COCKPIT borderless head windows (radar/win0 800,0; 3-color MFD/win4 1440,0;
2-color MFD/win3 2080,0; all 640x480) + the GL bridge as the main out-the-window
view (0,0, 800x600 via new BRIDGE_W/BRIDGE_H in live_bridge.py). Editable RECTS
at the top of the script for other rigs.

focus_dosbox.ps1 restores the deployment window state: renderer -> always-on-top
(WS_EX_TOPMOST, game view never covered) + DOSBox-X -> 10,10 with foreground
focus (keeps the emu thread at foreground priority so the RIO doesn't starve).
Coexist cleanly: topmost renderer stays above the focused-but-non-topmost DOSBox.
pod_deploy calls it last; re-run anytime the stack is disturbed. LAUNCH.md
documents both.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 19:44:45 -05:00

4.9 KiB

Pod launch cheat-sheet

All commands run from a normal (non-elevated) PowerShell at the repo root (C:\VWE\TeslaRel410). render-bridge\launch_pod.ps1 prepends Npcap to PATH, stops any previous run (pod + bridge), and starts DOSBox-X + the GL render bridge. Do NOT launch from an elevated shell (the launcher can't stop an elevated previous instance).

Boot to netnub-ready is ~4 min with sound (the SoundFont upload); add -NoSound to skip it.

Real-pod DEPLOYMENT (cockpit window layout)

Formats the windows for the original VDB + octopus 4-head wiring: borderless VDB head windows on their VGA outputs + the GL bridge as the main out-the-window view, then parks DOSBox at 10,10 with focus (keeps the RIO fed).

# BT looped drops, cockpit layout
& .\emulator\render-bridge\pod_deploy.ps1

# Red Planet, cockpit layout
& .\emulator\render-bridge\pod_deploy.ps1 -Conf .\emulator\net_rp.conf

Layout (edit the RECTS at the top of pod_deploy.ps1 for this rig's outputs): main/bridge 0,0 800x600 · radar/win0 800,0 · 3-color MFD/win4 1440,0 · 2-color MFD/win3 2080,0 (heads 640x480). Re-assert DOSBox focus anytime: & .\emulator\render-bridge\focus_dosbox.ps1. TODO: borderless-fullscreen main (BRIDGE_BORDERLESS), portrait-radar rotation in cockpit mode if this pod's radar CRT is sideways.

Networked (console-driven) — the main ones

# BT, LOOPED drops (auto-relaunches netnub per mission -- production parity)
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\net_loop.conf

# BT, single mission then DOS pause (no loop)
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\net_full.conf

# Red Planet, networked (single-shot; RP-native -- use the .NET console)
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\net_rp.conf -Mipmap

# Network diagnostic boot (packet stack only, no game; NCSA Telnet suite on E:)
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\net_diag.conf

Console side:

  • Host .NET TeslaConsole talks to the pod directly (bridge IP 200.0.0.1 + Npcap SendToRxAdapters; both survive reboot). RP-native.
  • Mac SheepShaver Console 4.10 needs the mirror daemon (below), started AFTER the pod is up. Drove both BT and RP historically.

Mac-console mirror (run AFTER the pod is up)

# Lets SheepShaver Console 4.10 reach the pod (pod->Mac mirror + Mac->pod reinject)
Start-Process pythonw 'C:\VWE\TeslaRel410\emulator\net-tools\tap2_mirror.py'

Solo -egg (no console/network -- dev bypass, fast)

# BT arena city mission (the launcher default if -Conf is omitted)
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\render-bridge\gauge_arena_sound.conf

# BT arena2 / ravine variants
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\render-bridge\gauge_arena2_sound.conf
& .\emulator\render-bridge\launch_pod.ps1 -Conf .\emulator\render-bridge\gauge_rav_sound.conf

Flags (append to any launch)

Flag Effect
-Mipmap mip-filter minified textures (fixes RP checkerboard-floor shimmer; harmless for BT; NON-authentic, default off)
-NoSound skip the ~4-min SoundFont upload (fast boot, no audio)
-NoBridge pod only, no GL render window
-ShowNative also show the native Division window (black-cleared wire-decode diagnostic)
-BridgePos '2020,20' move the GL render window (SDL honors it at creation)

Shutdown

# stop pod + bridge + mirror from their pid files
foreach ($pf in 'pod_pid.txt','bridge_pid.txt','tap2_mirror_pid.txt') {
  $p = Get-Content "$env:LOCALAPPDATA\Temp\vwe-pod\$pf" -ErrorAction SilentlyContinue
  if ($p) { Stop-Process -Id $p -Force -ErrorAction SilentlyContinue }
}
Get-CimInstance Win32_Process -Filter "Name like 'py%'" |
  ? { $_.CommandLine -match 'live_bridge|tap2_mirror' } |
  % { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }

Reminders / gotchas

  • ONE CONSOLE AT A TIME. netnub -p accepts a single console connection; whoever connects first owns the pod. To switch Mac <-> .NET: quit the unused one, wait the pod's ~60s loop for a fresh netnub, then bring up the other. Diagnose with Get-NetTCPConnection -RemoteAddress 200.0.0.113 (owning process). See NET-NOTES.md.
  • VDB display diagnostics (per-game head work, e.g. RP) are opt-in env vars set BEFORE launching, all default-off: $env:VDB_SCAN='1' (VRAM content locator), $env:VDB_PALDUMP='C:\...\rppal' (dump the 3 CLUTs), $env:VDB_BASE='0x100000' (read-base override), $env:VDB_REALSTRIDE='1', $env:VDB_APPLYMASK='1'. See VDB-NOTES.md.
  • RP gauges need the granularity fix already committed (REL410/RP/GAUGE/L4GAUGE.INI granularityInKB=64). See VDB-NOTES.md.
  • Confs carry the NIC on IRQ 10 (COM2/plasma owns IRQ 3). net_loop / net_full / net_rp / net_diag all have sound + plasma + the 0x340 NIC.

Net map: pod 200.0.0.113, .NET console/host 200.0.0.1, Mac console 200.0.0.10, netnub TCP 1501.