Adapt the spark-lesson / expert-seed.md progressive-context pattern to the bt411 port:
a thin router + context/*.md knowledge graph so the 2236-line CLAUDE.md's deep knowledge
loads on-demand instead of every session.
NON-DESTRUCTIVE foundation pass (live CLAUDE.md unchanged; proposed router is a draft):
- reference/glossary.yaml -- ~45 terms (engine/formats/scene/reconstruction)
- context/decomp-reference.md -- the quantitative hub: resource types, ClassID map,
mech offsets, damage delivery, weapon constants, env gates, tools
- context/reconstruction-gotchas.md -- the 12 systemic bug classes (conventions/DO-NOT hub)
- context/bgf-format.md -- geometry format + CONN/PCONN + LOD-sqrt3 + ramp shading
- context/gauges-hud.md -- the gauge/MFD system (the just-completed wave)
- context/open-questions.md -- deferred systems + get-from-Nick
- context/_ROUTER-DRAFT.md -- the proposed slim CLAUDE.md (identity, protocols,
quick-lookup, evidence tiers T0-T4, conventions, structure)
- phases/phase-01-context-restructure.md -- design + migration plan + status
docs/*.md ledgers stay as the DETAILED logs; context/*.md are the curated digests that
route into them. Remaining: ~10 topic files (project-overview, subsystems, combat-damage,
rendering, locomotion, wintesla-port, build-and-run, ...) then the CLAUDE.md swap.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB
id, title, status, source_sections, related_topics
| id | title | status | source_sections | related_topics | |||||
|---|---|---|---|---|---|---|---|---|---|
| open-questions | Open Questions — deferred systems, unknowns, get-from-Nick | living | CLAUDE.md §9; docs/HARD_PROBLEMS.md; per-subsystem deferral notes |
|
Open Questions
Known unknowns + deliberately-deferred systems. For each: what's known, what's missing, what would resolve it, status. Deferred ≠ broken — most are marked-and-guarded stand-ins with the authentic path scoped.
From Nick (external — gating for some paths)
- [GATING] The BT game SOURCE CODE — the missing implementation
.cpp(mech, subsystems, mapper, HUD, app; see source-completeness). Without it, Route A (recompile original) is impossible; we reconstruct from the binary instead. Likely on a backup/dev drive. Status: OPEN. - Confirmation the PodPC image is the complete content master. (Low priority — the runtime
BTL4.RESalready has 8 maps + the full mech anim set.) Status: OPEN. - Pod specifics for Phase 8: the 7-monitor driver setup, the RIO cockpit I/O protocol, current Win10+wrapper pod config. Status: OPEN.
Deferred subsystems / feeds (authentic path scoped, marked in code)
- 0xBD3 SubsystemMessageManager (WAVE 8) — the per-mech message/damage hub @mech+0x190. Gates:
the condenser valve CONTROL route (
MoveValve@0x4ae464 is reconstructed but dormant — no caller + its guard reads the messmgr); the MessageBoard source; the Myomers advanced-damage gate; gauge control-mode cycling. What resolves it: reconstruct 0xBD3 + wire the message routes. - StatusMessagePool (NULL stub, btstubs.cpp:62) — the per-player status-message queue.
BTPlayer+0x1dc is never populated → MessageBoard is empty (authentic for bring-up). What
resolves it: wire the pool + decode
AddStatusMessage @0042e580+ thePlayer__StatusMessagerecord ({messageId@+0xc, nameEntity@+0x10}). - Gyroscope (0xBC4) — layout + joint-I/O reconstructed, but the ctor field-init + the two integrators (IntegrateEyeJoint @004b2ec0 / IntegrateBody @004b30ec) are incomplete → writes NaN to the root joint. Reverted to a stub. A full subsystem-sim reconstruction (bigger than Torso).
- MechControlsMapper look/eyepoint commit — reconstructed but its offsets collide with declared
members; arbitrate before enabling (no port consumer yet). The fire-trigger-through-mapper is
still the
gBTWeaponTriggerbring-up. - Myomers authentic coupling — the structural un-stub is INERT (mover feed + heat-gen no-op).
Real coupling needs the 0xBD3 advanced-damage gate +
MoverAttachrouting into the LIVE JointedMover (must be reconciled with the gait cutover first). - SeekVoltageGraph — 4 Seek* attrs unpublished (a cluster-child, not config-called; non-blocking).
Locomotion / combat polish (non-gating)
- Authentic per-mech TURN-RATE constant (currently a bring-up constant rate).
- Body-callback gimp handlers (states 16-19, targets 0x70b2/0x7161 undecoded → fall back to stand);
airborne callbacks (
FUN_004a6344/FUN_004a7970). - Wall-block-vs-climb tuning; collision DAMAGE application (computed, not applied in bring-up).
- Death: reconstruct
DeathShutdown(RPVTV::DeathShutdownanalog) + collapse anim + destroyed skin. The wreck-stays behavior we ship is faithful; do NOT issue DestroyEntityMessage on death.
Multiplayer (Phase 7 / P6)
- Cross-pod COMBAT (target a replicant + route damage to the owning master).
- Replicant GAIT animation (replicants don't animate joints yet — derive from replicated velocity).
- The pod-LAN config (real IPs, bare-IP pilot entries). The WinSock2 TCP stack (L4NET.CPP) is reconstructed + smoke-tested on one box (two instances share a world, movement replicates).
Rendering follow-ups (non-blocking)
- Replacement-LOD selection for NON-additive multi-LOD models (needs the board's hot-spot/
reference-point semantics; leads:
s_dplobject.lod_ranges[16]/lod_hot_spot, 0x2047/0x2048). - Day/night MATERIAL path priority (BMF/IMG) — infrastructure done, gated
BT_MATPRI(over-applies to shared terrain mats); needs the terrain-material model understood. - RGBA4444 alpha (TREE.BSL cutout) decoded but not alpha-tested outside punch batches; VTX/TGA paths.
Content build sub-project (low priority)
- Lab/other-build maps (
des/burnt/frstrm) are source-only (.mapin CONTENT/BT/MAPS/); would need compiling into a RES via the DOSbtl4tool.exe. The 8 RES maps cover testing.
Key Relationships
- Feeds from: every subsystem/render topic (their deferral notes collect here).
- Gating master: source-completeness (the missing BT source).