Deploy: --pipe trim -- named-pipe serials to vRIO/vPLASMA for every mode
Dev-rig policy (2026-07-17): everything on the dev machine runs named pipes to vRIO until Real-RIO testing -- no com0com. pod-launch --pipe selects the <mode>_pipe conf (serial1=namedpipe pipe:vrio, serial2=namedpipe pipe:vplasma); pipe variants of all three deploy templates (auto-staged/ rendered) + a dev-tree net_loop_pipe.conf beside the existing RP one. Requires the vRIO dist >= 20260716-68e3d1f (VRioPipeService/ VPlasmaPipeService landed there). Arcade cockpits with the physical RIO keep the plain COM-port confs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,62 @@
|
|||||||
|
# DEPLOY TEMPLATE -- rendered to net_loop_pipe.conf by deploy/configure.ps1 at install.
|
||||||
|
# PIPE TRIM: serial1/2 are NAMED PIPES to vRIO (pipe:vrio) + vPLASMA
|
||||||
|
# (pipe:vplasma) -- the dev-rig default (launch: pod-launch <mode> --pipe;
|
||||||
|
# vRIO dist >= 20260716-68e3d1f speaks the pipe). Arcade cockpits with the
|
||||||
|
# REAL RIO/plasma on COM ports use the non-_pipe confs.
|
||||||
|
# Tokens (filled by postinstall): @@ROOT@@ = package dir (C:\games\<folder>),
|
||||||
|
# @@REALNIC@@ = this pod's NIC GUID fragment, @@MACADDR@@ = stable derived MAC.
|
||||||
|
# BattleTech, GO.BAT-style netnub loop (pod stays connected + picks up missions).
|
||||||
|
[sdl]
|
||||||
|
output=opengl
|
||||||
|
priority=highest,highest
|
||||||
|
[dosbox]
|
||||||
|
memsize=32
|
||||||
|
machine=svga_s3
|
||||||
|
[cpu]
|
||||||
|
core=dynamic
|
||||||
|
cputype=pentium
|
||||||
|
cycles=max
|
||||||
|
[ne2000]
|
||||||
|
ne2000=true
|
||||||
|
nicbase=340
|
||||||
|
# IRQ 10, NOT 3: COM2 (plasma) owns IRQ 3 in-game.
|
||||||
|
nicirq=10
|
||||||
|
macaddr=@@MACADDR@@
|
||||||
|
backend=pcap
|
||||||
|
[ethernet, pcap]
|
||||||
|
realnic=@@REALNIC@@
|
||||||
|
[sblaster]
|
||||||
|
sbtype=sb16
|
||||||
|
sbbase=220
|
||||||
|
irq=5
|
||||||
|
dma=1
|
||||||
|
hdma=5
|
||||||
|
[mixer]
|
||||||
|
rate=44100
|
||||||
|
blocksize=1024
|
||||||
|
prebuffer=60
|
||||||
|
[serial]
|
||||||
|
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||||
|
serial2=namedpipe pipe:vplasma
|
||||||
|
[autoexec]
|
||||||
|
mount c "@@ROOT@@\ALPHA_1"
|
||||||
|
mount d "@@ROOT@@\net-boot"
|
||||||
|
d:
|
||||||
|
echo === loading NE2000 packet-driver stack (pcap/bridge, port 340) ===
|
||||||
|
d:\lsl
|
||||||
|
d:\ne2000
|
||||||
|
d:\odipkt
|
||||||
|
c:
|
||||||
|
cd \rel410\bt
|
||||||
|
set VIDEOFORMAT=svga
|
||||||
|
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:\
|
||||||
|
set HEAPSIZE=15000000
|
||||||
|
set L4GAUGE=640x480x16
|
||||||
|
call setenv.bat r f s p
|
||||||
|
echo === entering GO.BAT-style netnub loop (waits for console missions) ===
|
||||||
|
call d:\loop.bat
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
# DEPLOY TEMPLATE -- rendered to net_rp_pipe.conf by deploy/configure.ps1 at install.
|
||||||
|
# PIPE TRIM: serial1/2 are NAMED PIPES to vRIO (pipe:vrio) + vPLASMA
|
||||||
|
# (pipe:vplasma) -- the dev-rig default (launch: pod-launch <mode> --pipe;
|
||||||
|
# vRIO dist >= 20260716-68e3d1f speaks the pipe). Arcade cockpits with the
|
||||||
|
# REAL RIO/plasma on COM ports use the non-_pipe confs.
|
||||||
|
# Tokens (filled by postinstall): @@ROOT@@ = package dir (C:\games\<folder>),
|
||||||
|
# @@REALNIC@@ = this pod's NIC GUID fragment, @@MACADDR@@ = stable derived MAC.
|
||||||
|
# Red Planet 4.10, networked pod boot (console pushes the mission egg over TCP).
|
||||||
|
# Loops netnub (loop_rp.bat) so the pod stays connected + picks up missions;
|
||||||
|
# runs until the supervisor (pod-launch) kills DOSBox. No single-shot in deploy.
|
||||||
|
[sdl]
|
||||||
|
output=opengl
|
||||||
|
priority=highest,highest
|
||||||
|
[dosbox]
|
||||||
|
memsize=32
|
||||||
|
machine=svga_s3
|
||||||
|
[cpu]
|
||||||
|
core=dynamic
|
||||||
|
cputype=pentium
|
||||||
|
cycles=max
|
||||||
|
[ne2000]
|
||||||
|
ne2000=true
|
||||||
|
nicbase=340
|
||||||
|
nicirq=10
|
||||||
|
macaddr=@@MACADDR@@
|
||||||
|
backend=pcap
|
||||||
|
[ethernet, pcap]
|
||||||
|
realnic=@@REALNIC@@
|
||||||
|
[sblaster]
|
||||||
|
sbtype=sb16
|
||||||
|
sbbase=220
|
||||||
|
irq=5
|
||||||
|
dma=1
|
||||||
|
hdma=5
|
||||||
|
[mixer]
|
||||||
|
rate=44100
|
||||||
|
blocksize=1024
|
||||||
|
prebuffer=60
|
||||||
|
[serial]
|
||||||
|
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||||
|
serial2=namedpipe pipe:vplasma
|
||||||
|
[autoexec]
|
||||||
|
mount c "@@ROOT@@\ALPHA_1"
|
||||||
|
mount d "@@ROOT@@\net-boot"
|
||||||
|
d:
|
||||||
|
echo === loading NE2000 packet-driver stack (pcap/bridge, port 340) ===
|
||||||
|
d:\lsl
|
||||||
|
d:\ne2000
|
||||||
|
d:\odipkt
|
||||||
|
c:
|
||||||
|
cd \rel410\rp
|
||||||
|
set VIDEOFORMAT=svga
|
||||||
|
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:\
|
||||||
|
set HEAPSIZE=15000000
|
||||||
|
set L4GAUGE=640x480x16
|
||||||
|
call setenv.bat r f s p
|
||||||
|
echo === entering netnub loop (waits for console missions; supervisor kills to stop) ===
|
||||||
|
call d:\loop_rp.bat
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
# DEPLOY TEMPLATE -- rendered to vwetest_pipe.conf by deploy/configure.ps1 at install.
|
||||||
|
# PIPE TRIM: serial1/2 are NAMED PIPES to vRIO (pipe:vrio) + vPLASMA
|
||||||
|
# (pipe:vplasma) -- the dev-rig default (launch: pod-launch <mode> --pipe;
|
||||||
|
# vRIO dist >= 20260716-68e3d1f speaks the pipe). Arcade cockpits with the
|
||||||
|
# REAL RIO/plasma on COM ports use the non-_pipe confs.
|
||||||
|
# Tokens (filled by postinstall): @@ROOT@@ = package dir (C:\games\<folder>),
|
||||||
|
# @@REALNIC@@ = this pod's NIC GUID fragment, @@MACADDR@@ = stable derived MAC.
|
||||||
|
# VGL_LABS factory cockpit test suite: the stock C:\VWETEST\TEST.BAT chain
|
||||||
|
# (DIAGNOSE + AWEUTIL /S on both AWE cards, SETSVGA, VGLTEST\TSTALL.EXE --
|
||||||
|
# RIO, plasma, audio, video/Division calibration, Munga-net). Launch:
|
||||||
|
# pod-launch test. AWEUTIL's WC-timed init needs the parity-safe EMU8000
|
||||||
|
# sample-counter readback (vweawe.cpp, 2026-07-16) -- on older dosbox-x.exe
|
||||||
|
# builds it hangs at AWEUTIL. Drops to a DOS prompt when the suite exits.
|
||||||
|
[sdl]
|
||||||
|
output=opengl
|
||||||
|
priority=highest,highest
|
||||||
|
[dosbox]
|
||||||
|
memsize=32
|
||||||
|
machine=svga_s3
|
||||||
|
[cpu]
|
||||||
|
core=dynamic
|
||||||
|
cputype=pentium
|
||||||
|
cycles=max
|
||||||
|
[ne2000]
|
||||||
|
ne2000=true
|
||||||
|
nicbase=340
|
||||||
|
# IRQ 10, NOT 3: COM2 (plasma) owns IRQ 3 in the suite, same as in-game.
|
||||||
|
nicirq=10
|
||||||
|
macaddr=@@MACADDR@@
|
||||||
|
backend=pcap
|
||||||
|
[ethernet, pcap]
|
||||||
|
realnic=@@REALNIC@@
|
||||||
|
[sblaster]
|
||||||
|
sbtype=sb16
|
||||||
|
sbbase=220
|
||||||
|
irq=5
|
||||||
|
dma=1
|
||||||
|
hdma=5
|
||||||
|
[mixer]
|
||||||
|
rate=44100
|
||||||
|
blocksize=1024
|
||||||
|
prebuffer=60
|
||||||
|
[serial]
|
||||||
|
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||||
|
serial2=namedpipe pipe:vplasma
|
||||||
|
[autoexec]
|
||||||
|
mount c "@@ROOT@@\ALPHA_1"
|
||||||
|
mount d "@@ROOT@@\net-boot"
|
||||||
|
d:
|
||||||
|
echo === loading NE2000 packet-driver stack (for the Munga-net tests) ===
|
||||||
|
d:\lsl
|
||||||
|
d:\ne2000
|
||||||
|
d:\odipkt
|
||||||
|
c:
|
||||||
|
cd \vwetest
|
||||||
|
echo === VGL_LABS cockpit test suite (stock TEST.BAT) ===
|
||||||
|
call test.bat
|
||||||
|
echo === test suite exited -- DOS prompt ===
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
# Networked pod boot, GO.BAT-style loop (persistent: auto-relaunches netnub
|
||||||
|
# after each mission/idle disconnect so the pod stays connected to the console
|
||||||
|
# and picks up missions as the operator queues them -- mirrors the real pod's
|
||||||
|
# GO.BAT). Same 0x340 NIC fix as net_full.conf (see that file's header).
|
||||||
|
# FULL production parity (sound + plasma) as of 2026-07-08: the SBK re-upload
|
||||||
|
# per mission is only ~30s (measured), and the instant netnub relaunch is what
|
||||||
|
# lets the console recover its TCP session between missions WITHOUT an app
|
||||||
|
# restart (netnub exits without FIN; a fast relaunch answers the console's
|
||||||
|
# early retransmissions -- sitting at a DOS pause instead wedges the console
|
||||||
|
# into multi-minute Mac TCP backoff; that is why retail looped).
|
||||||
|
[sdl]
|
||||||
|
output=opengl
|
||||||
|
priority=highest,highest
|
||||||
|
[dosbox]
|
||||||
|
memsize=32
|
||||||
|
machine=svga_s3
|
||||||
|
[cpu]
|
||||||
|
core=dynamic
|
||||||
|
cputype=pentium
|
||||||
|
cycles=max
|
||||||
|
[ne2000]
|
||||||
|
ne2000=true
|
||||||
|
nicbase=340
|
||||||
|
# IRQ 10, NOT 3: COM2 (plasma) owns IRQ 3 in-game; see net_full.conf.
|
||||||
|
nicirq=10
|
||||||
|
backend=pcap
|
||||||
|
[ethernet, pcap]
|
||||||
|
realnic=DB5521D
|
||||||
|
[sblaster]
|
||||||
|
sbtype=sb16
|
||||||
|
sbbase=220
|
||||||
|
irq=5
|
||||||
|
dma=1
|
||||||
|
hdma=5
|
||||||
|
[mixer]
|
||||||
|
rate=44100
|
||||||
|
blocksize=1024
|
||||||
|
prebuffer=60
|
||||||
|
[serial]
|
||||||
|
serial1=namedpipe pipe:vrio rxpollus:100 rxburst:16
|
||||||
|
serial2=namedpipe pipe:vplasma
|
||||||
|
[autoexec]
|
||||||
|
mount c "C:\VWE\TeslaRel410\ALPHA_1"
|
||||||
|
mount d "C:\VWE\TeslaRel410\emulator\net-boot"
|
||||||
|
d:
|
||||||
|
echo === loading NE2000 packet-driver stack (pcap/bridge, port 340) ===
|
||||||
|
d:\lsl
|
||||||
|
d:\ne2000
|
||||||
|
d:\odipkt
|
||||||
|
c:
|
||||||
|
cd \rel410\bt
|
||||||
|
set VIDEOFORMAT=svga
|
||||||
|
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:\
|
||||||
|
set HEAPSIZE=15000000
|
||||||
|
set L4GAUGE=640x480x16
|
||||||
|
call setenv.bat r f s p
|
||||||
|
echo === entering GO.BAT-style netnub loop (waits for console missions) ===
|
||||||
|
call d:\loop.bat
|
||||||
@@ -26,6 +26,7 @@ namespace VwePod
|
|||||||
|
|
||||||
public bool NoBridge;
|
public bool NoBridge;
|
||||||
public bool NoSound;
|
public bool NoSound;
|
||||||
|
public bool Pipe;
|
||||||
public bool Mipmap;
|
public bool Mipmap;
|
||||||
public bool NoFocus;
|
public bool NoFocus;
|
||||||
public bool DryRun;
|
public bool DryRun;
|
||||||
@@ -76,6 +77,7 @@ namespace VwePod
|
|||||||
case "--dosbox-xy": ParseWH(Next(a), out o.DosBoxX, out o.DosBoxY); dosboxXySet = true; break;
|
case "--dosbox-xy": ParseWH(Next(a), out o.DosBoxX, out o.DosBoxY); dosboxXySet = true; break;
|
||||||
case "--no-bridge": o.NoBridge = true; break;
|
case "--no-bridge": o.NoBridge = true; break;
|
||||||
case "--no-sound": o.NoSound = true; break;
|
case "--no-sound": o.NoSound = true; break;
|
||||||
|
case "--pipe": o.Pipe = true; break;
|
||||||
case "--mipmap": o.Mipmap = true; break;
|
case "--mipmap": o.Mipmap = true; break;
|
||||||
case "--no-focus": o.NoFocus = true; break;
|
case "--no-focus": o.NoFocus = true; break;
|
||||||
case "--dry-run": o.DryRun = true; break;
|
case "--dry-run": o.DryRun = true; break;
|
||||||
@@ -103,17 +105,20 @@ namespace VwePod
|
|||||||
?? throw new ArgumentException("dosbox-x.exe not found under root; pass --dosbox");
|
?? throw new ArgumentException("dosbox-x.exe not found under root; pass --dosbox");
|
||||||
o.DosBoxDir = Path.GetDirectoryName(o.DosBox);
|
o.DosBoxDir = Path.GetDirectoryName(o.DosBox);
|
||||||
|
|
||||||
o.Conf = confArg ?? FirstExisting(Path.Combine(o.Root, o.Mode.ConfBase + ".conf"));
|
// --pipe: the <mode>_pipe conf variant (serials as named pipes to
|
||||||
|
// vRIO/vPLASMA -- the dev-rig trim; real cockpits keep COM ports).
|
||||||
|
string confBase = o.Mode.ConfBase + (o.Pipe ? "_pipe" : "");
|
||||||
|
o.Conf = confArg ?? FirstExisting(Path.Combine(o.Root, confBase + ".conf"));
|
||||||
if (o.Conf == null)
|
if (o.Conf == null)
|
||||||
{
|
{
|
||||||
// A .tmpl sitting there means the install was extracted but never
|
// A .tmpl sitting there means the install was extracted but never
|
||||||
// configured -- point at the real fix, not at --conf.
|
// configured -- point at the real fix, not at --conf.
|
||||||
bool unrendered = File.Exists(Path.Combine(o.Root, o.Mode.ConfBase + ".conf.tmpl"));
|
bool unrendered = File.Exists(Path.Combine(o.Root, confBase + ".conf.tmpl"));
|
||||||
throw new ArgumentException(unrendered
|
throw new ArgumentException(unrendered
|
||||||
? o.Mode.ConfBase + ".conf not rendered yet: this install hasn't been configured.\n" +
|
? confBase + ".conf not rendered yet: this install hasn't been configured.\n" +
|
||||||
"Run postinstall.bat (elevated) from the extracted zip root, or:\n" +
|
"Run postinstall.bat (elevated) from the extracted zip root, or:\n" +
|
||||||
" powershell -File <install>\\deploy\\configure.ps1 -Root <install>"
|
" powershell -File <install>\\deploy\\configure.ps1 -Root <install>"
|
||||||
: o.Mode.ConfBase + ".conf not found under root; pass --conf");
|
: confBase + ".conf not found under root; pass --conf");
|
||||||
}
|
}
|
||||||
|
|
||||||
o.RendererExe = rendererArg ?? FirstExisting(
|
o.RendererExe = rendererArg ?? FirstExisting(
|
||||||
@@ -182,6 +187,9 @@ namespace VwePod
|
|||||||
--no-sound skip the ~4-min SoundFont upload. WARNING: no AWE32 =
|
--no-sound skip the ~4-min SoundFont upload. WARNING: no AWE32 =
|
||||||
no SOS ticks; bt/rp FREEZE at RIO init on the default
|
no SOS ticks; bt/rp FREEZE at RIO init on the default
|
||||||
FAST-clock confs (only safe with a SLOW-clock conf)
|
FAST-clock confs (only safe with a SLOW-clock conf)
|
||||||
|
--pipe use the <mode>_pipe conf: serial1/2 as named pipes to
|
||||||
|
vRIO (pipe:vrio) + vPLASMA (pipe:vplasma). Dev-rig
|
||||||
|
default trim; arcade cockpits keep real COM ports
|
||||||
--mipmap VRVIEW_MIPMAP=1 (RP floor shimmer fix; non-authentic)
|
--mipmap VRVIEW_MIPMAP=1 (RP floor shimmer fix; non-authentic)
|
||||||
--no-focus skip the window layout/focus pass
|
--no-focus skip the window layout/focus pass
|
||||||
--dry-run resolve paths + print the launch plan, then exit");
|
--dry-run resolve paths + print the launch plan, then exit");
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ see `../CAMERA-REVIEW-NOTES.md`. Default mode: `bt`.
|
|||||||
| `--layout cockpit\|explode` | `cockpit` = borderless VDB head windows (default); `explode` = 7-window debug |
|
| `--layout cockpit\|explode` | `cockpit` = borderless VDB head windows (default); `explode` = 7-window debug |
|
||||||
| `--no-bridge` | pod only, no GL render window |
|
| `--no-bridge` | pod only, no GL render window |
|
||||||
| `--no-focus` | skip the renderer-topmost / DOSBox-focus pass |
|
| `--no-focus` | skip the renderer-topmost / DOSBox-focus pass |
|
||||||
|
| `--pipe` | use the `<mode>_pipe` conf: serials as named pipes to vRIO (`pipe:vrio`) + vPLASMA (`pipe:vplasma`), no com0com. **Dev-rig policy (2026-07-17): always `--pipe` on the dev machine** — vRIO dist ≥ `20260716-68e3d1f` speaks the pipe; the plain confs (real COM ports) are for cockpits with the physical RIO/plasma |
|
||||||
|
|
||||||
### Window placement (per-rig; normally fixed, overridable per-launch)
|
### Window placement (per-rig; normally fixed, overridable per-launch)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user