diff --git a/context/multiplayer.md b/context/multiplayer.md index f160f66..70fa49b 100644 --- a/context/multiplayer.md +++ b/context/multiplayer.md @@ -262,8 +262,18 @@ Base fns in every subsystem vtable: slot 6 = 41bd34 (Read/apply), slot 7 = 41c50 invisible). First real twist record overwrites it. ## Remaining (P6 phase 4 / Phase 7) -The pod-LAN config (real IPs, bare-IP pilot entries); update-record velocity sourced from the body-channel -projection (above). See [[open-questions]]. [T3] +Pod-LAN config: **real-IP path VALIDATED (2026-07-15)** — an egg with the machine's real LAN IP in +`[pilots]` (not `127.0.0.1`) connected + replicated + moved end-to-end (`Connected to +GameMachineHost at 10.0.0.46:1602`, `All connections completed!`, peer telemetry flowing). So +`gethostbyname` local-address matching (L4NET.CPP:2612, which also appends 127.0.0.1) + the +`WSAStringToAddressA` `IP:PORT` parse (ResolveAddress) both work with real addresses — NOT +localhost-locked. Recipe: egg `[pilots]` = each machine's LAN IP + its GAME port (`= -net port + 1`, +e.g. `10.0.0.46:1502`); each machine runs `btl4 -egg lan.egg -net `; console relay +(`btconsole.py lan.egg A_IP:1501 B_IP:1601`) from any machine; open the TCP console+game ports in +the Windows firewall. STILL UNTESTED: an ACTUAL two-physical-machine run (validated single-box via +the real LAN IP), so firewall is the main first-attempt unknown. Affinity pinning is NOT needed +across separate machines (the packet-jitter artifact is single-box only). Also: update-record +velocity sourced from the body-channel projection (above). See [[open-questions]]. [T2 path / T3 two-box] ## MP-front scout (task #45, 2026-07-09) — the P6 chain SURVIVES the combat/HUD rework [T2] Re-ran the one-box smoke test on the current build (world-pick targeting, weapon groups, death