8.3 KiB
Night 6 triage — 2026-07-28/29 session
Source: Discord chat + scratchpad/night6/ logs (Michael/XIAOLONG, rajel/GAMERSLAB,
eleng/ALIA, santo/MS-FIREFLY=Conn Man). Tracker state from scratchpad/tracker_snapshot.py
(52 open: 26 real, 26 awaiting-verification).
Everyone was on 4.11.621 except Michael's first 28 sessions (4.11.615 — he upgraded at 01:00).
A. REOPEN — the headline
#35 — Owens laser crash — REOPEN, root-caused, no longer blocked
Was closed by accident and was blocked on "waiting for Conn Man's log, his last one was
overwritten". We have the log. 8 crashes, all in message (2).txt (santo/MS-FIREFLY);
nobody else crashed once.
All 8 stacks are byte-identical — deterministic, not corruption:
addr=0x1c3101 (btl4+0xd3101) code=0xc0000005 access=0 target=0x0 ← READ from NULL
btl4+0xd3101 ParticleEngine::Destroy() +0x11
btl4+0x9c263 RendererManager::Execute(Time,Time,Time) +0xd3
btl4+0x94f30 Application::ExecuteForeground(Time,float) +0xe0
btl4+0x68710 ApplicationManager::RunMissions() +0xf0
btl4+0xa579 _WinMain@16 +0x2af9
L4PARTICLES.cpp:252 has no guards and never nulls after release:
void ParticleEngine::Destroy() {
mVertBuffer->Release(); // +0x11 = the fault
mParticleTexture->Release();
}
Both statics init to NULL (:6,:9). Called ONLY from the D3D9 lost-device path
(L4VIDEO.cpp:8927): Destroy() → mDevice->Reset() → Initialize(). Initialize ignores
every return code, so a failed CreateVertexBuffer / D3DXCreateTextureFromFile leaves a
NULL that the next reset dereferences.
Not a weapons bug. Nothing in the stack touches weapons, missiles or the Owens — it is the plain per-frame render path. Conn Man's hardware is the differentiator: Surface Pro 9, Intel Iris Xe, 128 MB shared. Everyone else who flew an Owens (Elengil, Sauron, Rajel) could not reproduce it. The Owens + multi-trigger + missiles combination is how he provokes a GPU timeout / resource exhaustion → device lost → reset path → null deref.
⚠ Open contradiction, do not skip: Conn Man reports an alpha strike on ONE trigger (every weapon) did NOT crash, while two triggers with fewer weapons did. Pure particle volume does not explain that. Either the trigger is timing (two fire events in one frame) rather than count, or the two-trigger path re-enters the reset. Resolve before believing the volume story.
Conn Man's negative results are valuable — put them in the issue:
- CRASHED: lasers T1 + missiles T4 · lasers T1 + missiles T3 · 1×ER-Med T2 + 1×SRM6 T3 · stock triggers · custom triggers
- NO crash: lasers only · missiles only · all lasers one trigger · all missiles one trigger · full alpha on trigger 1
- No generator/seek/coolant changes involved
- Still untested: two lasers on two triggers · two missiles on two triggers · keyboard vs joystick
B. CONFIRMED FIXED LIVE — close or move off awaiting-verification
| What | Evidence | Action |
|---|---|---|
| Heat panel lit at spawn | Elengil 21:52 "heat panel: working." | Close (may have no issue # — filed from Discord night 5) |
| Generator AUTO mode (3rd state) | Sauron 21:45 "now have third display rotating AUTO" — was only Gen# and Off | Close the gen-mode report; check whether this also verifies #62 (AutoConnect re-attach) or only the mode cycle — they are different claims |
| MFD phosphor green | Sauron 21:35 + 21:52 "colors green now great" | cyd's 8284b8d verified live |
| MFD sticky positions | Sauron 00:43 "MFD positions are saved now (awesome sauce)" | cyd's 29c502d verified. Initial "not saving" was env not uncommented |
⚠ #70 (torso twist after respawn) got NO live confirmation. Nobody exercised it. It is fixed
and bench-verified (96/96 across two death/respawn cycles) but by house rule it stays
awaiting-verification. Ask for it explicitly next session.
⚠ #32 (audio cutting in and out) — no complaints tonight across ~78 sessions. Weak positive. Worth a note, not a close.
C. NEW — file these
N1. Damage credited to the WRONG ZONE (high value, multiple witnesses)
Sauron 22:00 + Conn Man 22:05 + Elengil 22:04, with screenshots. All mechs stationary, short range, Elengil firing only at Conn Man's left arm; damage reported elsewhere on Conn Man's paper doll. Conn Man: "Critical damage display did not show any crits."
- Cyd confirmed the doll is mirrored (screen-left = mech's left), so orientation confusion is ruled out — they accounted for it.
- VGL Lynx's theory: LOD. Mech models swap at range and the hit test may run against a different LOD than the one drawn. Suggested retest with small lasers at point-blank.
- ⚠ Check against #16 (shots land LOW, boresight parallax — awaiting-verification) before filing: #16 is about where the shot lands, this is about which zone gets credited. Likely distinct, possibly the same root.
- Touches the cylinder hit-location table (STEP 6,
context/combat-damage.md).
N2. 8BitDo gamepad works in solo, dead in Steam MP
VexUbiquity 22:54: "my 8bitdo gamepad works (somewhat) in solo, but steamplay is a no go." Distinct from #25 (stick-X turn-mode profile) — that is a tuning request, this is non-function. Needs his controller model + whether Steam Input is remapping it.
N3. Myomer damage does not affect mech speed (half-wired)
Testers spent a large part of the night on this because the release note said it worked. My error — the note claimed movement, the fix only reaches display. File it so it is tracked:
- Damage now flows to
AvailableOutput→ the ENG-page power curve replots (live, verified). speedEffect@0x31Ccomputes correctly (dmg=0.6 → 0.4) butMoverAttachis a no-op stub, so nothing consumes it for velocity.- Blocked on the WAVE 6 mover cutover, which must be reconciled with the gait work first (both
would feed the same mover input). See
context/subsystems.mdWAVE 6.
N4. Glass panels: main cockpit + Plasma window positions not restored
Sauron 00:43, both minor and self-described as "not a problem":
- Cockpit main screen reverts to upper-left instead of full-screen windowed
- Plasma window reverts to the main screen
BT_GLASS_LAYOUTrestores the 7 MFD windows but not these two. One for cyd.
N5. Secondary/Radar window is fixed-size — make it resizable
Sauron 06:00, from a genuinely useful experiment: iPad mini as a 4th monitor over USB (Splashtop Wired XDisplay), 1600x1200, touch works, fits 4 MFDs. "If it could be made to be a full screen window instead of locked size, it would work better." Enhancement, not a bug — and it makes cheap touch-panel cockpits viable, so worth taking seriously.
N6. RESEARCH: does 4.10 have a legged/limping mech mode?
VGL Lynx asserts a legged mech should limp (~50% speed), disable reverse, and play an audio
cue, citing video: limping Owens at 3:41 (youtu.be/7W57JAzPM-M) and a legged Loki at 4:30
with a different cockpit-bounce rhythm (youtu.be/eWb4bZSRkWY). Sauron disputes it, saying in
4.x destroying either leg kills the mech outright and there is no limp mode — that is Firestorm.
Both may be right (leg destroyed = death; leg damaged = limp). Genuine open question —
file as investigate, resolve from the binary, not from argument. Ties into N3: if limp exists
it is another consumer of the same mover feed.
N7. NOTE (no issue): missile launch artifact reference
VGL Lynx: the second video shows "what the missile artifact should look like… you can clearly see it in the launch cycle." Attach as reference to the existing missile visual work (#12, awaiting-verification) rather than filing new.
D. Housekeeping notes, no action
- Michael spans two builds (615 → 621 at 01:00). His
.1.logis the 8 MB roll-over part — the feature working. Any analysis of his evening must treat both files as one session. ⚠ Crash offsets from his 615 sessions are not resolvable — 615 predates the symbol work and no.pdb/.mapwas archived for it. Only 621 onward is symbolizable. - Time zones: Elengil Central, Rajel Pacific, Sauron Eastern. Chat timestamps in the log
excerpts are mixed — match on the session header
local=field, not the Discord stamp. - Logs arrived as one file per player per day, self-identifying despite Discord's
(1)/(2)renaming. The consolidation and header work did its job.