User reported never hearing any audio. Root-caused: the KB "Audio: DONE" was wrong. The OpenAL playback chain IS fully implemented (device/buffers/sources; PlayNote really calls alSourcePlay), but three gaps kept it silent: 1. GATED OFF (the "no sound" root cause): BTL4Application::MakeAudioRenderer returned NULL unless the pod's AWE_FRONT/AWE_REAR AWE32-card env vars were set -- authentic 1995 pod behavior, dead on modern hardware, so the renderer was NEVER created. FIXED: default audio ON (BT_NO_AUDIO=1 restores silence; AWE vars still force-on). Verified: the OpenAL device now opens with no env vars ([audio] device OPENED). 2. Soundbank STUB: allPresets[2][100] (btstubs.cpp) is zero-init -> PRESET_isImplemented false -> 0 buffers load. Sample data exists (AUDIO1/2.RES: EnginePower/LaserAFire/...) but the event->sample map is gone (not in the decomp). STILL OPEN. 3. No triggering: the reconstructed game never creates AudioEntities on events. STILL OPEN. So the device opens but nothing loads/plays yet -- enabling real sound needs the soundbank reconstructed + the game triggers wired (a proper audio wave). Added a BT_AUDIO_LOG trace harness across L4AUDRND/L4AUDRES/L4AUDLVL. KB corrected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.2 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 |
|
|
Project Overview
Port VWE's arcade pod games (Tesla platform, release 4.10, ~1995-96) 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.
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-07)
btl4.exe boots, renders the world + a skinned mech, and runs a full drive → animate → target →
fire → damage → destroy → respawn single-player loop (task #52). 2-node MP is verified
end-to-end — replication, cross-pod targeting/damage/kill, beam visuals, replicant gait (tasks
#46-#51, multiplayer). All 8 cockpit canopies are authentic + the horizontal-FOV fix (task #55,
cockpit-view); the Gyroscope is live byte-exact with hit-bounce (task #56); the gauge system
is complete (gauges-hud). The engine/renderer/HAL are done (WinTesla); AUDIO is the exception —
the OpenAL engine is ported + now on by default (2026-07-15) but the soundbank + game triggering are
unbuilt, so it's still SILENT (see wintesla-port Audio). The active work
is reconstructing each BT subsystem's authentic behavior from the binary. Remaining: pod-LAN
config, Mech-level update records, per-subsystem waves. [T2]
Key Relationships
- Full detail:
docs/PROGRESS_LOG.md. - Enables: everything — see wintesla-port (the base), source-completeness (the gap), build-and-run (how to build).