Net: NIC off IRQ 3 (plasma COM2 owns it) -- pod no longer goes deaf in-game

The plasma serial2 addition put COM2 (IRQ 3) in conflict with nicirq=3:
netnub phase worked, then BTL4OPT opened the plasma port and NIC RX died,
so the pod never checked in to the console. NIC now on IRQ 10 in all net
confs + NET.CFG INT 10 (both sides must agree). Verified live: two full
console missions with plasma running.

Also: launch_pod.ps1 prepends the Npcap dir to PATH itself (a bare shell
gave "NO PACKET DRIVER FOUND"); net_diag.conf = packet-stack-only boot
with the NCSA Telnet suite on E: for DOS-side TCP tests; net_loop.conf
promoted to full production parity (sound + plasma + IRQ 10) -- the
GO.BAT-style instant netnub relaunch is also what lets the console
recover its zombie TCP session between missions (see NET-NOTES).
NET-NOTES: full 7/08-09 forensics writeup (TAP RX counter lie, console
IP .10, SBK re-upload measured, zombie-session mechanics).
LAST.EGG = the operator's missions from tonight's runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-09 00:13:11 -05:00
co-authored by Claude Fable 5
parent 419c7d5d63
commit 2233441812
7 changed files with 273 additions and 131 deletions
+122 -124
View File
@@ -1,9 +1,9 @@
[mission] [mission]
adventure=BattleTech adventure=BattleTech
map=arena2 map=rav
scenario=freeforall scenario=freeforall
time=day time=day
weather=clear weather=fog
temperature=27 temperature=27
length=600 length=600
[ordinals] [ordinals]
@@ -18,26 +18,26 @@ bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=000038000003C000001FF00000000F00 bitmap=00000000000000000000000000000000
bitmap=0000F8000003C000003FF80000000F00 bitmap=00000700000E00000003F00000001E00
bitmap=0001F8000003C00000707C0000000F00 bitmap=00001F00000E0000000FF80000001E00
bitmap=0001F8000003C00000603C0000000F00 bitmap=00007F00001E0000001FFC0000001E00
bitmap=00007801FC0FF00000003C3DF807FF00 bitmap=00007F00001E0000001E3E0000001E00
bitmap=00007803FE0FF00000003C3FFC0FFF00 bitmap=00000F00FC7FE000003C1E3CF807DE00
bitmap=00007803C703C00000003C3E3C1F0F00 bitmap=00000F03FE7FE00000001E3DFC0FFE00
bitmap=000078078303C0000000783C1E1E0F00 bitmap=00000F07821E000000001E3FFE1E3E00
bitmap=000078078003C0000000783C1E1E0F00 bitmap=00000F07001E000000001E3E3E1E1E00
bitmap=00007807C003C0000000F03C1E1E0F00 bitmap=00000F07001E000000003C3C1E3C1E00
bitmap=00007807F003C0000001E03C1E1E0F00 bitmap=00000F07E01E00000000783C1E3C1E00
bitmap=00007803FC03C0000003C03C1E1E0F00 bitmap=00000F03FC1E00000000F03C1E3C1E00
bitmap=00007801FE03C0000007803C1E1E0F00 bitmap=00000F03FE1E00000001E03C1E3C1E00
bitmap=000078007F03C000000F003C1E1E0F00 bitmap=00000F00FF1E00000003C03C1E3C1E00
bitmap=000078001F03C000001E003C1E1E0F00 bitmap=00000F001F1E00000007803C1E3C1E00
bitmap=000078000F03C000003C003C1E1E0F00 bitmap=00000F000F1E0000000F003C1E3C1E00
bitmap=000078060F03C0000078003C1E1E0F00 bitmap=00000F000F1E0000001C003C1E3E3E00
bitmap=000078071E03E0000078003C1E1F1F00 bitmap=00000F041E0FE000003FFE3C1E1FFE00
bitmap=00007803FE01F000007FFC3C1E0FFF00 bitmap=00000F07FE0FE000003FFE3C1E1FFE00
bitmap=00007801FC00F000007FFC3C1E07EF00 bitmap=00000F03F807C000003FFE3C1E079E00
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
@@ -54,26 +54,26 @@ bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=001FFF0000003C0000003C03C0780000 bitmap=00000000000000000000000000000000
bitmap=001FFF0000003C0000007C03C0780000 bitmap=0001F800000078000000070381E00000
bitmap=00000E0000003C000000FC03C0780000 bitmap=0007FE000000780000000F0381E00000
bitmap=00003C0000003C000001BC03C0780000 bitmap=0007FE000000780000001F0781E00000
bitmap=0000700F3E1FFC000003BC0FF07BF000 bitmap=000F1F000000780000003F0781E00000
bitmap=0001E00F7E3FFC0000073C0FF07FF800 bitmap=00000F1E781F780000007F1FF9E3C000
bitmap=0003800FFE7C3C0000063C03C07C7800 bitmap=00000F1EFC3FF8000000FF1FF9EFE000
bitmap=0007F80FFE783C00000C3C03C0783C00 bitmap=00000F1FFC78F8000001EF0781FFF000
bitmap=0007FE0F80783C0000183C03C0783C00 bitmap=00001E1F3C7878000003CF0781F0F000
bitmap=00001E0F00783C0000383C03C0783C00 bitmap=0001FC1E3CF0780000078F0781E0F000
bitmap=00000F0F00783C0000703C03C0783C00 bitmap=0001F81E00F07800000F0F0781E0F000
bitmap=00000F0F00783C00007FFF03C0783C00 bitmap=0001FE1E00F07800000FFF8781E0F000
bitmap=00000F0F00783C00007FFF03C0783C00 bitmap=00001F1E00F07800000FFF8781E0F000
bitmap=00000F0F00783C0000003C03C0783C00 bitmap=00000F1E00F07800000FFF8781E0F000
bitmap=00000F0F00783C0000003C03C0783C00 bitmap=00000F1E00F0780000000F0781E0F000
bitmap=00000F0F00783C0000003C03C0783C00 bitmap=00040F1E00F0780000000F0781E0F000
bitmap=00180F0F00783C0000003C03C0783C00 bitmap=001E1F1E00F8F80000000F0781E0F000
bitmap=001C1F0F007C7C0000003C03E0783C00 bitmap=000FFE1E007FF80000000F03F9E0F000
bitmap=000FFE0F003FFC0000003C01F0783C00 bitmap=0007FC1E007FF80000000F03F9E0F000
bitmap=0007FC0F001FBC0000003C00F0783C00 bitmap=0003F01E001E780000000F01F1E0F000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
@@ -90,26 +90,26 @@ bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000000FC03C0780000 bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000003FC03C0780000 bitmap=000FFF0381E0000000007E0381E00000
bitmap=001E0003C07800000007C003C0780000 bitmap=000FFF0381E000000001FE0381E00000
bitmap=001E0003C0780000000F0003C0780000 bitmap=000FFF0781E000000001FE0781E00000
bitmap=001E000FF07BF000000F000FF07BF000 bitmap=000E000781E000000003C00781E00000
bitmap=001E000FF07FF800001E000FF07FF800 bitmap=000E001FF9E3C0000007801FF9E3C000
bitmap=001E0003C07C7800001E0003C07C7800 bitmap=000EF81FF9EFE0000007801FF9EFE000
bitmap=001FFC03C0783C00001EFC03C0783C00 bitmap=000FFE0781FFF00000073E0781FFF000
bitmap=001FFE03C0783C00001FFE03C0783C00 bitmap=000FFF0781F0F000000F7F0781F0F000
bitmap=00001F03C0783C00001F1F03C0783C00 bitmap=00060F0781E0F000000FFF8781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=0000078781E0F000000F87C781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=0000078781E0F000000F03C781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=0000078781E0F000000F03C781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=0000078781E0F000000F03C781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=0004078781E0F000000F03C781E0F000
bitmap=00000F03C0783C00001E0F03C0783C00 bitmap=000E0F8781E0F000000F03C781E0F000
bitmap=00180F03C0783C00001E0F03C0783C00 bitmap=001F0F0781E0F0000007878781E0F000
bitmap=001C1F03E0783C00001F1F03E0783C00 bitmap=000FFF03F9E0F0000007FF83F9E0F000
bitmap=000FFE01F0783C00000FFE01F0783C00 bitmap=0007FE03F9E0F0000003FF03F9E0F000
bitmap=0007FC00F0783C000007FC00F0783C00 bitmap=0001F801F1E0F0000000FC01F1E0F000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
@@ -126,26 +126,26 @@ bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=001FFF03C07800000007FC03C0780000 bitmap=00000000000000000000000000000000
bitmap=001FFF03C0780000000FFE03C0780000 bitmap=001FFF8381E000000000F80381E00000
bitmap=00000F03C0780000001F1F03C0780000 bitmap=001FFF8381E000000003FE0381E00000
bitmap=00000F03C0780000001E0F03C0780000 bitmap=001FFF8781E000000003FE0781E00000
bitmap=00000F0FF07BF000001E0F0FF07BF000 bitmap=0000070781E000000007CF0781E00000
bitmap=00001F0FF07FF800001E0F0FF07FF800 bitmap=00000E1FF9E3C00000078F1FF9E3C000
bitmap=00001E03C07C7800001E0F03C07C7800 bitmap=00001C1FF9EFE00000078F1FF9EFE000
bitmap=00003E03C0783C00001E0F03C0783C00 bitmap=0000380781FFF00000078F0781FFF000
bitmap=00003C03C0783C00000F1E03C0783C00 bitmap=0000780781F0F00000039F0781F0F000
bitmap=00003C03C0783C000007FC03C0783C00 bitmap=0000700781E0F0000003FE0781E0F000
bitmap=00007803C0783C000007FC03C0783C00 bitmap=0000E00781E0F0000001FC0781E0F000
bitmap=00007803C0783C00000F1E03C0783C00 bitmap=0000E00781E0F0000007FF0781E0F000
bitmap=00007803C0783C00001E0F03C0783C00 bitmap=0001E00781E0F00000078F8781E0F000
bitmap=0000F003C0783C00001E0F03C0783C00 bitmap=0001C00781E0F000000F078781E0F000
bitmap=0000F003C0783C00001E0F03C0783C00 bitmap=0001C00781E0F000000F078781E0F000
bitmap=0000F003C0783C00001E0F03C0783C00 bitmap=0001C00781E0F000000F078781E0F000
bitmap=0000F003C0783C00001E0F03C0783C00 bitmap=0003C00781E0F000000F8F8781E0F000
bitmap=0000F003E0783C00000F1E03E0783C00 bitmap=0003C003F9E0F0000007FF03F9E0F000
bitmap=0000F001F0783C00000FFE01F0783C00 bitmap=0003C003F9E0F0000003FE03F9E0F000
bitmap=0000F000F0783C000007FC00F0783C00 bitmap=0003C001F1E0F0000001F801F1E0F000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
@@ -161,19 +161,19 @@ pilot=200.0.0.113
hostType=0 hostType=0
advancedDamage=1 advancedDamage=1
loadzones=1 loadzones=1
name=cyd name=MTP
bitmapindex=1 bitmapindex=1
experience=veteran experience=veteran
badge=VGL
patch=Yellow
role=Role::Default
dropzone=one
vehicle=madcat vehicle=madcat
vehicleValue=0 vehicleValue=0
color=White badge=VGL
dropzone=one
color=Grey
patch=Red
role=Role::Default
[largebitmap] [largebitmap]
bitmap=BitMap::Large::cyd bitmap=BitMap::Large::MTP
[BitMap::Large::cyd] [BitMap::Large::MTP]
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
@@ -181,49 +181,47 @@ bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=000000000000000000003C0000000000 bitmap=0000000000F0003BFFC7FE0000000000
bitmap=000000000000000000003C0000000000 bitmap=0000000000F0007BFFC7FF0000000000
bitmap=000000000000000000003C0000000000 bitmap=0000000000F8007BFFC7FF0000000000
bitmap=000000000000000000003C0000000000 bitmap=0000000000F800F83C078F8000000000
bitmap=000000000000FCF00E0FBC0000000000 bitmap=0000000000FC00F83C07878000000000
bitmap=000000000003FE781C1FFC0000000000 bitmap=0000000000FC01F83C07878000000000
bitmap=000000000007FE781C3C7C0000000000 bitmap=0000000000FE03F83C07878000000000
bitmap=00000000000F82783C3C3C0000000000 bitmap=0000000000FE03F83C078F8000000000
bitmap=00000000001F003C38783C0000000000 bitmap=0000000000FF07F83C07FF8000000000
bitmap=00000000001E003C78783C0000000000 bitmap=0000000000EF07783C07FF0000000000
bitmap=00000000001E003C70783C0000000000 bitmap=0000000000EF8F783C07FC0000000000
bitmap=00000000001E003E70783C0000000000 bitmap=0000000000E78E783C07800000000000
bitmap=00000000001E001EE0783C0000000000 bitmap=0000000000E7DE783C07800000000000
bitmap=00000000001E001EE0783C0000000000 bitmap=0000000000E3DC783C07800000000000
bitmap=00000000001F001FE0783C0000000000 bitmap=0000000000E3F8783C07800000000000
bitmap=00000000000F020FC07C7C0000000000 bitmap=0000000000E1F8783C07800000000000
bitmap=000000000007FE0FC03FFC0000000000 bitmap=0000000000E1F0783C07800000000000
bitmap=000000000003FE0F803FFC0000000000 bitmap=0000000000E0F0783C07800000000000
bitmap=000000000000FC07800F3C0000000000 bitmap=0000000000E0E0783C07800000000000
bitmap=00000000000000070000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000070000000000000000 bitmap=00000000000000000000000000000000
bitmap=000000000000000F0000000000000000 bitmap=00000000000000000000000000000000
bitmap=000000000000000E0000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
x=128 x=128
y=32 y=32
width=8 width=8
[smallbitmap] [smallbitmap]
bitmap=BitMap::Small::cyd bitmap=BitMap::Small::MTP
[BitMap::Small::cyd] [BitMap::Small::MTP]
bitmap=00000000000000000000000000000000
bitmap=000000000000000000000805F9F00000
bitmap=00000C0C6198000000000C0C61980000
bitmap=00000E1C6198000000000E1C61980000
bitmap=00000B2C61F0000000000B2C61800000
bitmap=000009CC61800000000009CC61800000
bitmap=0000088C618000000000000000000000
bitmap=00000000000000000000000000000000 bitmap=00000000000000000000000000000000
bitmap=00000000000000000000000000600000
bitmap=00000000006000000000000000600000
bitmap=000001EC33E000000000030666600000
bitmap=000003066660000000000303C6600000
bitmap=00000303C66000000000030186600000
bitmap=000001E183E000000000000300000000
bitmap=00000003000000000000000000000000
x=64 x=64
y=16 y=16
width=4 width=4
[Role::Default] [Role::Default]
model=dfltrole model=dfltrole
[Role::NoReturn]
model=noretun
+46
View File
@@ -419,6 +419,52 @@ heads render** -> mission ends on the console timer. Four fixes got here:
Committed: `net_full.conf`, `net_loop.conf`, `net-boot/` (drivers, NET.CFG Committed: `net_full.conf`, `net_loop.conf`, `net-boot/` (drivers, NET.CFG
@340, loop.bat, README), `vpx-device/ne2000.cpp`, `vpx-device/ethernet_pcap.cpp`. @340, loop.bat, README), `vpx-device/ne2000.cpp`, `vpx-device/ethernet_pcap.cpp`.
## Post-reboot outage forensics + IRQ 3 conflict (2026-07-08/09)
A host reboot took the console<->pod link down for hours; every layer got
blamed before the real bug fell out. Findings, in the order they mattered:
- **TAP-Windows V9 "Bytes received" is ALWAYS 0** -- the driver never counts
frames its user-mode app (SheepShaver) injects. Do not diagnose from the
adapter-status dialogs: read the bridge-miniport counters (they do count)
or sniff the wire (Npcap + ctypes; see render-bridge/probes/ for the
pattern). Bridge/TAPs/SheepShaver prefs were all healthy the whole time.
- **`NO PACKET DRIVER FOUND` at netnub = wpcap.dll not on PATH** of the shell
that launched DOSBox. launch_pod.ps1 now prepends
`C:\Windows\System32\Npcap` itself so no shell can reproduce this.
- **THE REAL BUG -- IRQ 3 double-booking:** the plasma readout (serial2 =
host COM2, added 2026-07-07) sits on IRQ 3, and the NE2000 was also on
`nicirq=3`. The netnub phase works (COM2 not yet open: ARP answered, egg
flows) -- then BTL4OPT opens the plasma port (`arg4=p`) and NIC RX dies
for good. Looks exactly like a mid-boot wedge. Fix: **NIC on IRQ 10** in
net_full.conf / net_diag.conf / net_loop.conf AND net-boot/NET.CFG
(`INT 10`) -- DOSBox device and ODI driver must agree. Verified: pod
stayed ARP-responsive through two full missions with plasma live.
- **Console's live IP is 200.0.0.10** (not .1 as assumed from the gateway
entry); it ARP-scans the cockpit roster slots (.11, .112-.120)
continuously while looking for pods.
- **Zombie console session between missions:** netnub exits after each
mission without closing TCP (no FIN -- the DOS stack just vanishes).
Console 4.10 keeps waiting on the dead socket; with the pod sitting at a
DOS pause for minutes, classic Mac TCP retransmit backoff grows to
multi-minute intervals and the console looks permanently wedged (silent
on the wire). Operator fix: relaunch the Console app (app only). Real
fix: behave like retail -- GO.BAT relaunched netnub within seconds, so
the console's early retransmissions hit the fresh stack and recover.
net_loop.conf (now FULL production parity: sound + plasma + IRQ 10) is
the conf to use for multi-mission sessions; verify console self-recovery
with it next time.
- **SoundFont upload measured (smldW device counters):** the game blindly
re-uploads the full SBK on EVERY netnub->game launch -- counter goes
3,513,581 -> exactly 7,027,162 per card, no validation read-back, so
pre-loading the cards cannot short-circuit it. BUT the re-upload itself
is only ~20-30s; the slow first boot is dominated by something else
(pacer question still open). Loading a new egg into the already-running
game does NOT re-upload.
- Manual mission-N start in the same DOSBox: `32rtm.exe -x` (saying
"resident" is fine) then `netnub -p -f btl4opt > nn.log`; TSRs and SET
env persist from the autoexec.
## Open questions / notes ## Open questions / notes
- Exact TCP listen port(s) — not in the source grep; get from NETNUB.EXE - Exact TCP listen port(s) — not in the source grep; get from NETNUB.EXE
or a capture at milestone 3. or a capture at milestone 3.
+1 -1
View File
@@ -4,6 +4,6 @@ Link Support
Link Driver NE2000 Link Driver NE2000
PORT 340 PORT 340
INT 3 INT 10
FRAME Ethernet_II FRAME Ethernet_II
FRAME Ethernet_802.2 FRAME Ethernet_802.2
+71
View File
@@ -0,0 +1,71 @@
# Networked pod boot (single mission, then DOS pause).
# Console (SheepShaver) pushes the mission egg over TCP 1501; pod runs it.
# RIO on COM1 + dual AWE32 sound (host env VWE_AWE32=1 + VWE_AWE_ROM=<rom>).
#
# CRITICAL: NE2000 is at nicbase=340, NOT 300 -- the VDB video splitter board
# is hardwired at 0x300-0x31A (palettes 0x300/0x308/0x310). nicbase=300 makes
# the NIC swallow the game's VDB palette writes -> all MFD/radar heads decode
# to black AND corrupts NIC RX (console EndMission lost, mission overruns its
# timer). net-boot/NET.CFG must match (PORT 340). VDB stays at 0x300.
#
# Launch (host env): VPXLOG, VPX_RESPOND=1, VPX_RENDER=1, VPX_DUMPDIR,
# RIO_TAP, VWE_AWE32=1, VWE_AWE_ROM, and C:\Windows\System32\Npcap on PATH.
# pcap realnic must be the bridge miniport (see NET-NOTES.md).
[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=directserial realport:COM1 rxpollus:100 rxburst:16
serial2=directserial realport:COM2
[autoexec]
mount c "C:\VWE\TeslaRel410\ALPHA_1"
mount d "C:\VWE\TeslaRel410\emulator\net-boot"
mount e "C:\VWE\TeslaRel410\sda4\TEL"
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 === NETWORK DIAGNOSTIC MODE: stack loaded, NO game/netnub ===
echo NCSA Telnet suite mounted on E: (myip=200.0.0.74 per CONFIG.TEL)
echo e: then TELBIN 200.0.0.1 (TCP connect test to the Mac console)
echo or FINGER @200.0.0.1 / FTPBIN 200.0.0.1
echo When done, start the game manually:
echo C: then CD REL410\BT then 32RTM -X then NETNUB -P -F BTL4OPT
+4 -1
View File
@@ -24,7 +24,10 @@ cycles=max
[ne2000] [ne2000]
ne2000=true ne2000=true
nicbase=340 nicbase=340
nicirq=3 # IRQ 10, NOT 3: the plasma readout opens COM2 (IRQ 3) in-game -- with the
# NIC also on 3 the pod goes deaf the moment BTL4OPT starts (netnub phase
# still works, so it looks like a mid-boot failure). NET.CFG INT must match.
nicirq=10
backend=pcap backend=pcap
[ethernet, pcap] [ethernet, pcap]
realnic=DB5521D realnic=DB5521D
+25 -5
View File
@@ -2,8 +2,12 @@
# after each mission/idle disconnect so the pod stays connected to the console # 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 # 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). # GO.BAT). Same 0x340 NIC fix as net_full.conf (see that file's header).
# Sound is OFF here (setenv arg3=n) for fast reconnect cycles; flip to net_full # FULL production parity (sound + plasma) as of 2026-07-08: the SBK re-upload
# for the full sound experience. # 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] [sdl]
output=opengl output=opengl
priority=highest,highest priority=highest,highest
@@ -17,13 +21,24 @@ cycles=max
[ne2000] [ne2000]
ne2000=true ne2000=true
nicbase=340 nicbase=340
nicirq=3 # IRQ 10, NOT 3: COM2 (plasma) owns IRQ 3 in-game; see net_full.conf.
nicirq=10
backend=pcap backend=pcap
[ethernet, pcap] [ethernet, pcap]
realnic=DB5521D realnic=DB5521D
[sblaster]
sbtype=sb16
sbbase=220
irq=5
dma=1
hdma=5
[mixer]
rate=44100
blocksize=1024
prebuffer=60
[serial] [serial]
serial1=directserial realport:COM1 rxpollus:100 rxburst:16 serial1=directserial realport:COM1 rxpollus:100 rxburst:16
serial2=disabled serial2=directserial realport:COM2
[autoexec] [autoexec]
mount c "C:\VWE\TeslaRel410\ALPHA_1" mount c "C:\VWE\TeslaRel410\ALPHA_1"
mount d "C:\VWE\TeslaRel410\emulator\net-boot" mount d "C:\VWE\TeslaRel410\emulator\net-boot"
@@ -35,9 +50,14 @@ d:\odipkt
c: c:
cd \rel410\bt cd \rel410\bt
set VIDEOFORMAT=svga 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 TEMP=c:\
set HEAPSIZE=15000000 set HEAPSIZE=15000000
set L4GAUGE=640x480x16 set L4GAUGE=640x480x16
call setenv.bat r f n g call setenv.bat r f s p
echo === entering GO.BAT-style netnub loop (waits for console missions) === echo === entering GO.BAT-style netnub loop (waits for console missions) ===
call d:\loop.bat call d:\loop.bat
+4
View File
@@ -22,6 +22,10 @@ param(
$ErrorActionPreference = 'Stop' $ErrorActionPreference = 'Stop'
New-Item -ItemType Directory -Force $Work | Out-Null New-Item -ItemType Directory -Force $Work | Out-Null
# pcap backend needs wpcap.dll; without it the NE2000 silently comes up dead
# ("NO PACKET DRIVER FOUND" at netnub). Don't trust the invoking shell's PATH.
if ($env:Path -notlike '*\Npcap*') { $env:Path = "C:\Windows\System32\Npcap;$env:Path" }
# a restart means the previous run dies first (COM1 + the fifodump are exclusive) # a restart means the previous run dies first (COM1 + the fifodump are exclusive)
foreach ($pidfile in "$Work\pod_pid.txt", "$Work\bridge_pid.txt") { foreach ($pidfile in "$Work\pod_pid.txt", "$Work\bridge_pid.txt") {
if (Test-Path $pidfile) { if (Test-Path $pidfile) {