From cfd368381b7dc9af3da340ac9b07aaff6aa236e5 Mon Sep 17 00:00:00 2001 From: Cyd Date: Thu, 9 Jul 2026 11:02:18 -0500 Subject: [PATCH] NET-NOTES: post-mission egress hold decoded (RIO lamps + StopMission exit codes) Wire + source answer to "what happens after the mission ends": the game fades to the black hold, commands the RIO egress lamps (T 84 LampRequest caught on the serial tap), and holds while its StateResponse to the console's 1/s StateQuery flips to state 2. The hold ends only when the console sends Application__StopMissionMessage with an ExitCodeID -- a full remote-operations menu (run game/test patterns/ResetRIO/Norton/ SoftwareReset/camera/mission review) that the game hands to netnub as its exit code for the pod loop to dispatch. The egress-hold length is entirely the console's decision. Also documented the seat-trim-inside- hull z-fighting lookalike (not a render bug). Co-Authored-By: Claude Fable 5 --- emulator/NET-NOTES.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/emulator/NET-NOTES.md b/emulator/NET-NOTES.md index 48b662d..62865a4 100644 --- a/emulator/NET-NOTES.md +++ b/emulator/NET-NOTES.md @@ -551,6 +551,45 @@ Modern console + net_loop.conf pod = a fully autonomous mission loop; the only operator action is queueing the next mission. (Console 4.10 by contrast needs an app relaunch per mission.) +## Post-mission egress hold — decoded live + from source (2026-07-09 late) + +The period flow after a mission timer expires (user memory: "lights come +on so the customer can leave the cockpit, then the pod closes out"), +confirmed on the wire and in CODE/: + +1. Game fades the view to the black hold (fog sweep to 0.01/0.05 rgb 0) + and sends the wrap-up to the console (ConsolePlayerMechScoreUpdate / + team scores / RankAndScore -- BTCNSL.CPP message set). +2. **Game commands the RIO egress lamps**: `T 84` = LampRequest on the + serial tap right at mission end. RIO SetLamp(lamp, state), states = + solid/flashSlow/flashMed/flashFast + two brightness channels + (L4RIO.HPP RIOCommand/LampState enums). +3. Game HOLDS (RIO polling continues, view stays black). Its 1/s + StateQuery->StateResponse exchange with the console flips a state + field to 2 (= mission-over/hold; it reads 0 in the ready phase). + Console polls per Stationary.ini loadQueryInterval=1. +4. **The console ends the hold: Application__StopMissionMessage carrying + an ExitCodeID** (APPMSG.HPP: console msg set = StateQuery/CheckLoad/ + RunMission/StopMission/KeyCommand/Suspend/Resume/LoadMission/Abort). + ExitCodeID is a remote-ops menu: Abort, RunRedPlanet/BattleTech (+ + SinglePlayer variants), test patterns, TestPlasmaDisplay, ResetRIO, + RunAudioTest, RunNortonDiskDoctor, CheckDiskUsage, Refresh*, + ChangeScreenMode, SoftwareReset, ClearCrashlog, KillSpoolFile, + RunCamera/MissionReview -- the game exits through netnub with that + code and the pod's GO.BAT-era loop dispatches it. Handler impl is + compiled-only (StopMissionMessageHandler declared in BTL4APP.HPP; + body not in the archive). + Observed: Console 4.10 closed the hold within seconds; the .NET + console left the pod holding for minutes until it sent its close. + The hold length is entirely the console's call = the customer-egress + window. + +Also caught live: sliding the bridge seat trim far back (forward -10) +puts the eye inside the mech's hull meshes -- z-fighting reads as a +"smeared" render and the canopy cage disappears (you are behind it). +Not a render bug; trim back to the per-mech eye position (Mad Cat ~ +-1.8) restores the view. + ## Open questions / notes - Exact TCP listen port(s) — not in the source grep; get from NETNUB.EXE or a capture at milestone 3.