Cyd and Claude Opus 4.8
77f019ed4f
Net: host->member mission marshal -- a Steam/LAN mission plays end to end
...
The lobby could stage a room but the launched mission never fed the members.
BTLocalConsole_InstallNetworkMission (btl4console.cpp) makes the host play the
arcade console in-process over the NetTransport seam (Winsock TCP or Steam SDR):
- connect to each member's console channel (ip[:port] from BT412HOSTPODS);
- feed each the chunked egg (NetworkManager::ReceiveEggFileMessage, \n->NUL
wire image like tools/btconsole.py), resending until it ACKs;
- poll member state (StateQueryMessage); when the whole mesh is staged at
WaitingForLaunch, dispatch RunMission to every member + locally at once;
- StopMission at expiry (members first, then self after a short grace);
- scores are BT's kills/deaths snapshotted from the *meshed* roster at the
stop -- no EndMission wire intake (that flow is a BT stub; the mesh already
put every pilot in the host's roster). The owner's own pod is fed locally
via L4NetworkManager::FeedLocalEgg.
Engine change (ported 1:1 from RP412): gConsoleMarshalsLaunch (APPMGR.h/.cpp) +
the `!gConsoleMarshalsLaunch &&` guard in APP.cpp's WaitingForLaunch self-launch.
The owner has no console connection to itself, so without this it would
self-launch before the mesh staged and never send the coordinated RunMission.
Default False = stock behavior; solo boot un-regressed.
WinMain host path (btl4main.cpp) now honors BT412HOSTPODS (+BT412HOSTPORT) for
the lobby host AND a classic-LAN host: SetNetworkCommonFlatAddress +
InstallNetworkMission, falling back to a solo marshal if no member is reachable.
Verified (loopback): two `btl4.exe -net` pods fed by tools/btconsole.py reach
"All connections completed!" and run after the engine change -- the exact
protocol + launch handshake the marshal uses. Both gates build+link; the
Release dist boots and the Steam transport comes up. The live multi-machine
Steam mission (FakeIP mesh + pilot-slot matching) is untestable here -- see the
new docs/STEAM-3-MACHINE-TEST.md. Dist README updated: multiplayer is now
"newly implemented, please test" rather than deferred.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-17 07:30:17 -05:00
..
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-17 07:30:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-17 07:30:17 -05:00
2026-07-17 07:30:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 15:11:17 -05:00
2026-07-16 08:36:28 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 15:11:17 -05:00
2026-07-16 15:11:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 08:36:28 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 15:11:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 08:47:52 -05:00
2026-07-05 21:03:40 -05:00
2026-07-15 23:52:06 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 14:11:36 -05:00
2026-07-16 15:11:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 15:11:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-11 15:32:24 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-09 12:09:50 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-09 12:09:50 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-08 15:43:08 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 20:39:41 -05:00
2026-07-16 23:18:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 20:39:41 -05:00
2026-07-06 22:07:19 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-15 10:08:45 -05:00
2026-07-15 10:08:45 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-09 12:09:50 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-09 12:09:50 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-15 23:16:27 -05:00
2026-07-15 23:16:27 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00
2026-07-16 08:55:17 -05:00
2026-07-16 15:11:17 -05:00
2026-07-05 21:03:40 -05:00
2026-07-05 21:03:40 -05:00