Files
BT411/context/project-overview.md
T

4.8 KiB

id, title, status, source_sections, related_topics, key_terms
id title status source_sections related_topics key_terms
project-overview Project Overview — what this is, people, goals established PROGRESS_LOG.md §1-3; README.md
pod-hardware
wintesla-port
source-completeness
build-and-run
BT
RP
MUNGA
Tesla-platform
WinTesla
pod

Project Overview

Port VWE's arcade pod games (Tesla platform, release 4.10; 1990s, exact release year unestablished) to modern Windows and, ultimately, the actual arcade pod hardware. Primary target: BattleTech (BT); Red Planet (RP) shares the engine. Full detail: docs/PROGRESS_LOG.md §1-3.

Dating note (2026-08-12): the KB previously called this "the 1995 game" — WRONG, per era witnesses (playtesters who ran the original pods say BT 4.10 shipped later). The 1995 belief came from the MUNGA asset-reader library RCS $Id ... 1995/.. strings inside BTL4OPT.EXE, which date the library code, not the game; the exe carries no game-copyright year (its PE link timestamp is stamped 2019 — a later re-link/tool artifact, not a release date), and a content-file timestamp of 30-Nov-1995 likewise dates assets, not the release. Until a real date surfaces (ask Nick / era witnesses), say "the original" / "the shipped machine" — never a year. [T2 for the library strings; T4 for any specific release year]

The ORIGINAL team — the initials in the source headers matched to names by VWE veterans (dev team ~8, art ~6, MUNGA by a smaller internal team) — is credited in docs/CREDITS.md.

The stack

  • Two games, one engine: BT + RP. Engine = MUNGA; HAL = L4 (MUNGA_L4). Game logic = CODE/BT, CODE/RP. [T1]
  • Original platform: 32-bit DOS under a DPMI32 extender, Borland C++ 5 + TASM32, on Novell DOS pods. 3D by a proprietary Division IG image-generator board (dual EISA), driven by the closed libDPL.lib (binary + VREND microcode). [T1]
  • The port replaces the IG board/libDPL with a dpl_* → Direct3D9 shim (done in WinTesla as L4D3D). Pods now run Windows 10 + a Voodoo/Glide wrapper. BT was abandoned (MechWarrior 4 runs on the current pods); this project revives BT. [T1]

People / goals

  • arcattack (user): doing the port. NVIDIA 3060 + A6000 dev GPUs.
  • Nick: owns the pods + the software license (porting is authorized). Runs the pod hardware. The gating dependency — the missing BT source likely lives on his backup drives (see source-completeness).
  • Goal: run on (a) a modern dev box and (b) the fixed pod hardware. Multiplayer (pod-to-pod) wanted.

Repo orientation (bt411)

This is the clean standalone bt411 repo. README.md + the top-level CMakeLists.txt are the build of record. Tree: engine/ game/ content/ docs/ reference/ tools/ context/. Historical sections in docs/PROGRESS_LOG.md cite old C:/git/nick-games/... paths — treat as provenance; they map into this repo (reconstructed BT → game/reconstructed/, engine → engine/MUNGA{,_L4}/, content → content/, raw decomp → reference/decomp/). [T2]

Current state (2026-08-06) — core gameplay reconstruction COMPLETE; polish phase

Field-tested nightly at 4-8 pods over Steam (builds 4.11.622→801). Authentic + benched: the full SP+MP loop; per-panel mesh-true targeting/damage (+ crits, cylinder lottery, armour darkening); the original SCORING model (kill awards + received penalties + panic cost — the id-0x16 report tail); death (blast/splash, wreck, burial) + respawn (full re-arm audit); locomotion (two-channel gait, gimp limp, knockdowns, CROUCH F4); the night kit (fog-swap SEARCHLIGHT F5 + beam cone); heat/ power/myomers (incl. the seek-4 freeze); replication (masters/replicants, kill/death columns, ghost+skate field detectors); the Steam wire seam + build gate; the operator console/relay lifecycle; gauges/HUD; audio (real OpenAL backend + the AUDIO_FIDELITY trigger waves — footsteps/ gait/alarms/impacts live in the field). [T2] Infra 2026-08-06: the #60 export gap census AND re-export shipped — coverage 87.3% → 93.5%, dark code 90 → 41 KB, +205 functions, and the re-export independently confirmed the week's raw-disasm reconstructions (source-completeness, phases/phase-04-gap-census.md). Remaining (polish): VehicleDead killed-by consumption (operator "X killed by Y" — the sender already ships the fields); burning-wreck handler (mech-0x17 label mismatch); @0x4c0904 master BTPlayer Performance vs our @0x4c083c attribution; the id-0x16 type-0 curiosity; MechRIOMapper Keypress @004d2514; marker beacon (LoadObject wrapper stub); DIV firmware intersection routine (deep-cut); deferred ledger items in open-questions. [T2]

Key Relationships