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
+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
@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
- Exact TCP listen port(s) — not in the source grep; get from NETNUB.EXE
or a capture at milestone 3.