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>
55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
---
|
|
id: project-overview
|
|
title: "Project Overview — what this is, people, goals"
|
|
status: established
|
|
source_sections: "PROGRESS_LOG.md §1-3; README.md"
|
|
related_topics: [pod-hardware, wintesla-port, source-completeness, build-and-run]
|
|
key_terms: [BT, RP, MUNGA, Tesla-platform, WinTesla, pod]
|
|
---
|
|
|
|
# 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).
|