Files
CydandClaude Fable 5 f7ebde2e0b Add VPX emulation implementation plan for Windows 10 cockpits
emulator/PLAN.md: run the unported DOS Rel 4.10 games in the
surviving cockpits via a DOSBox-X fork with an HLE device
impersonating the Division VPX board at its C012/B004 link
interface (I/O port 0x150 per BTLIVE SETENV.BAT), rendering the
frame stream in OpenGL. Cockpit RIO (COM1) and plasma (COM2) pass
through to the game's original serial drivers (L4RIO.CPP).
Eight phases with acceptance criteria, evidence table, protocol
appendices, risks, and test strategy. Gauge displays deferred.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 19:09:33 -05:00

144 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tesla Release 4.10 — Tesla:BattleTech & Tesla:Red Planet
Source code and game content for **Tesla:BattleTech** and **Tesla:Red Planet**, the
two games that ran on the **Tesla**-generation simulator cockpits built by
**Virtual World Entertainment, Inc.** (VWE). Source file headers are dated
19941996; this tree corresponds to release 4.10 of the Tesla software.
This repository is an archival snapshot. The tree is preserved byte-for-byte as
found (see `.gitattributes` — no line-ending conversion is applied).
See [emulator/PLAN.md](emulator/PLAN.md) for the implementation plan to run
these games on the surviving cockpits' Windows 10 computers via a VPX-board
HLE device in DOSBox-X, with the cockpit RIO (COM1) and plasma display (COM2)
passed through to the game's original drivers.
See [HISTORY.md](HISTORY.md) for findings from a recovered VWE developer hard
drive that accompanies this tree (excluded from the repo), including Division
renderer source, runnable game builds, unreleased prototypes (Star Trek,
Hull Pressure, Renegade Legion, and the Starship Troopers pitch that became
DisneyQuest's "Invasion!"), and an analysis of whether these games can be
rebuilt from the sources in this repository (summary: the engine can, the
games cannot — most game-logic sources are absent from this cut).
## Target hardware
Each Tesla cockpit was driven by a server-class **Pentium Pro** machine running
**Novell DOS**. Graphics were split across two adapters:
- The **main (out-the-window) display** was rendered by one of the first
pixel-pipeline 3D accelerator cards ever made, driven through **Division Ltd.'s
dVS/DPL libraries** (`libDPL` — DPL, dsys, dvs, and the VPX headers; Division
copyright 1995).
- An **S3 video adapter** drove the other **six cockpit displays** (instrument
and gauge screens — see the `GAUGE` content directories and the `PCPIC.INC` /
`L4GAU*` gauge code).
Other hardware/OS interfaces:
- **Audio:** HMI **SOS** (Sound Operating System) — `sos/` libraries, with
variants for Borland (`bc4`) and Watcom (`wc`).
- **Networking:** pods were networked over Ethernet using **WATTCP** (DOS
TCP/IP, with BOOTP) via VWE's **NetNub** layer.
- **Input:** joystick/pedal/panel I/O in assembly (`JOYSTICK.ASM`) and the
`L4CTRL*` control modules.
## Toolchain
- **Borland C++ 5.0** (`BCC`) with **TASM32** for assembly — see the `.MAK`
makefiles (original build tree lived at `D:\TESLA_RP\` and `D:\BC5\`).
- Precompiled-header discipline throughout (`.CSM` headers, `#pragma hdrstop`).
- `VSSVER.SCC` / `MSSCCPRJ.SCC` files are remnants of the original **Visual
SourceSafe** source control.
- File extensions: `.CPP/.HPP` C++ source/headers, `.TCP/.THP` C++ template
source/headers, `.MAK` Borland makefiles.
## Repository layout
```
ARTTOOLS/ (empty placeholder — art tools were not included in this snapshot)
BORLAND/ (empty placeholder — compiler was not included in this snapshot)
CODE/ Game and engine source (~200k lines of C++/asm)
CONTENT/ Game data: models, animations, audio, maps, textures, gauges
HEADOFF/ Head/camera offset calibration configs for the cockpit displays
```
### CODE/
Both games share the same architecture: a portable simulation engine
(**MUNGA**, VWE's in-house engine) plus a hardware layer (**MUNGA_L4**, the
"L4" Tesla pod platform layer), with game-specific code and a game-specific
L4 layer on top.
```
CODE/BT/ Tesla:BattleTech
BT/ Game logic: mechs, weapons (PPC, Gauss, missiles),
damage tables, teams, missions, scenario rules
BT_L4/ BattleTech pod application layer (app modes, arena,
radar, playback, version)
MUNGA/ Engine bricks: math (matrices, angles, splines),
containers, file streams, audio manager, events
MUNGA_L4/ Pod hardware layer: video renderer manager, keyboard,
mouse, audio hardware, warehouse (resource loading)
LIBDPL/ Division Ltd. dVS/DPL graphics library (headers +
LIBDPL.LIB + VREND*.BTL renderer modules)
NETNUB/ WATTCP-based pod networking (headers + WATTCPLG.LIB)
SOS/ HMI Sound Operating System libraries + drivers
CODE/RP/ Tesla:Red Planet (same structure)
RP/ Game logic: VTV (hover racer) power/subsystems,
pickups (booster, blocker, crusher, thruster)
RP_L4/ Red Planet pod application layer
MUNGA/ Engine (fullest copy — 351 files incl. all .CPP)
MUNGA_L4/ Pod hardware layer (fullest copy, incl. JOYSTICK.ASM)
libDPL/, NetNub/, sos/ as above
*/opt/ Compiled Borland C++ 5.0 object files from the
original build (preserved as found)
```
Note: the BT copies of MUNGA/MUNGA_L4 are partial (69/68 files) while the RP
copies are complete (351/231 files) — the BT tree appears to hold only the
files that diverged from the shared engine.
### CONTENT/
```
CONTENT/BT/ Tesla:BattleTech content
CONTENT/BT3025/ Parallel BattleTech content set (3025-era variant;
mostly identical to BT/ with a different mech roster)
CONTENT/RP/ Tesla:Red Planet content
```
Per-game content directories:
| Dir | Contents |
|----------|----------|
| `MODELS` | `.MOD/.SUB/.DMG/.TBL` — vehicle/mech models, subsystems, damage tables |
| `ANIMS` | `.ANI` — animations (BT only) |
| `AUDIO` | `.MID` MIDI music, `.SCP` audio scripts, `.BNK/.BLD` banks |
| `GAUGE` | `.GIM` — gauge images for the six S3-driven cockpit displays |
| `MAPS` | `.MAP/.ZNE` — arena/terrain maps and zones |
| `SOLIDS` | `.SLD` — collision solids |
| `VIDEO` | Division renderer data: `GEO/` geometry, `MAT/` materials, and `TEX/` textures per environment (ARENA, DAY, NIGHT, DESERT, POLAR, CAVERN, …), `.DZM` skins, `.BMF/.BGF` binary geometry, `BUILD/` sources |
| `SCENES` | Scene definitions (RP only) |
| `BTCAM` | Camera batch setups (BT only) |
`DIVISION.SAV` subdirectories inside `VIDEO/` are backup saves written by
Division's tools. `MTMCDAI.SYS` (Mitsumi) and `TAISATAP.SYS` are DOS CD-ROM
device drivers used on the pod machines.
### HEADOFF/
INI-style calibration files (`.XST/.CAM/.BAK`) defining viewing extents and
camera offsets ("head offset") for the cockpit's main display, including a
`[LAB_ONLY]` configuration.
## Provenance
- Copyright (C) 19941996 Virtual World Entertainment, Inc. All rights
reserved worldwide. Original headers mark the source as proprietary and
confidential.
- Third-party components retain their own copyrights: Division Ltd. (dVS/DPL),
Human Machine Interfaces (SOS), Erick Engelke / University of Waterloo
(WATTCP).