Files
CydandClaude Opus 4.8 47fe174c6e Add VDB (VWE LBE4 video splitter) device + fault disassembly findings
The VDB is the ISA card that fans the PC's Cirrus Logic framebuffer to the six
secondary cockpit displays (5 mono + 1 color), dividing the pixel clock. From
the driver (CODE/RP/MUNGA_L4/L4SVGA16.ASM, L4VB16.CPP; "Adam's port decoder
design" -- Adam G., VWE hardware):
  0x300/0x308/0x310  three VGA-DAC-style palette groups
  0x31A / 0x319      splitter high-color clock divider ON / OFF

New emulated VDB device in vpxlog.cpp at I/O 0x300-0x31A (active when logging,
disable with VDB=0): decodes palette write-address/data/mask/read-address and
the clock strobes, recording palette contents + splitter state so the six-
display encoding can be decoded later. Validated: with gauges enabled
(gauge.conf, setenv arg4=g) the game issues "splitter clock ON (0x31A)" ->
captured. The board is write-only (game never reads it, per driver + owner),
so its absence is not the crash.

Crash diagnosis (BTL4OPT.EXE CODE+0x123B): the faulting routine is a heap
free() with boundary-tag coalescing; it was handed a garbage block pointer
(value 2). Symptom of upstream corruption, reached only when the RIO is in
sync and the sim advances. HISTORY.md gains a "Cockpit display hardware -- the
VDB" section with the attribution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:55:00 -05:00

9.8 KiB
Raw Permalink Blame History

Historical Notes — the "Glaze" Developer Drive (sda4)

Alongside this release tree, a dump of a developer's hard drive was recovered (kept locally as sda4/, excluded from this repository by .gitignore due to size and mixed provenance — ~20,000 files, ~403 MB). This document records what was found on it, because it fills in most of the story around the code in this repository.

The machine

The drive is the boot disk of a workstation named Glaze belonging to Dave, a Virtual World Entertainment developer (his working directories are BTDAVE, RPDAVE, STDAVE, HPDAVE). File dates show the machine in active use from mid-1994 to at least September 1999.

  • OS: Novell DOS 7 (the same OS the pod machines ran), with a boot menu selecting Windows NT client networking, Personal NetWare, none, or a minimal configuration.
  • Editor: Brief, with a heavily customized macro setup.
  • Source control: PVCS tools are installed (PVCS/), but no version archives are on the drive — the repository lived on a server.
  • Tools: Deluxe Paint, PKZip, Norton utilities, KA9Q NOS and NCSA Telnet for TCP/IP, LightWave and SGI image files in transit through TEMP/ and CONVERT/ (the art conversion pipeline workspace).

Pod lab infrastructure (VGL_LABS)

VGL_LABS/ holds the office pod lab's deployment system ("VGL" = Virtual Geographic League, VWE's fiction). Pods booted via BOOTPOD.BAT, pulled game builds from the server share \\vgl_code\podbay, and each developer had a named update script: Chris, Gabe, Edo, Joanna, Jordan, Milo, Kiwi, Shroom, Splotch, Bernoulli, and Golden (the golden/release build, default game BT). The boot configuration documents the pod peripherals: Thrustmaster controls, a 640x480x16 gauge display, a plasma display on COM2, intercom, and SVGA-or-NTSC main video output.

Dave's machine could itself boot as a pod — its AUTOEXEC.BAT ends by calling c:\vgl_labs\thispod\bootpod.bat.

Division Ltd. material

The drive contains far more from Division Ltd. (the UK VR company that supplied the main-display graphics hardware and the dVS/DPL libraries) than the compiled SDK in this repository:

  • DPL3/ and DPL3RLS/ — the DPL library in C source form, and under DPL3/VRENDER/ the renderer source itself: C and Intel i860 assembly, with a PXPL5SUP/ directory (Pixel-Planes 5 support — the UNC research architecture Division's pixel-pipeline hardware descended from), scan-converter/DMA-engine/texture-engine code, and design notes (DMA.TXT describes the tile-based frame rendering loop).
  • VREND/ — dated renderer drops from October 1995 through June 1996, showing Division shipping VWE renderer updates roughly monthly.
  • DVSTOOLS/ — the full BGF geometry tool suite (BGF*.EXE, GLOMM, IMG2VTX, …).
  • BIN/PHILS/ — a Division engineer's personal toolkit that came along with the SDK/support drops: i860 cross-tools (ASMPP5, NM860, RUN860.BAT, ISERVER), Division format converters (PAZ/VIZ/BIZ/SVT/MAZ), Pegasus Mail, Division office admin docs, and internal Division email from June 1993 (via division.demon.co.uk, discussing SIGGRAPH datasheets). The dave@division.com appearing in that email is a different, coincidental Dave.
  • PROBLEMS/FLICKER/ — a minimal repro case for a rendering bug, with the conclusion: "The problem disappeared when the same geometry was built without smoothing."

Cockpit display hardware — the VDB (VWE video splitter board)

Each cockpit drives seven displays. The main out-the-window view comes straight off the Division VPX card's VGA output. The other six — five monochrome + one color instrument/secondary displays — are fanned out by a VWE-designed ISA card, the VDB (Video Distribution Board), also called the "LBE4 video splitter board" in the driver source.

The VDB taps the PC's basic (Cirrus Logic) VGA output off the feature connector via ribbon cable and divides that single 640×480×16 framebuffer to the six monitors by dividing the pixel clock. The driver (CODE/RP/MUNGA_L4/L4SVGA16.ASM and L4VB16.CPP, class SVGA16) shows its ISA register map, credited in a source comment to "Adam's port decoder design"Adam G., a VWE hardware engineer:

  • 0x300 / 0x308 / 0x310 — three palette register groups (VGA-DAC-style: write-address / data / pixel-mask / read-address), one per display group so the mono and color displays get their own color maps.
  • 0x31A — write enables the splitter's high-color clock divider (VWE_HC_ON); 0x319 — write disables it (VWE_HC_OFF).

The board is write-only — the game never reads it; it loads palettes and flips the clock divider on with a single out, then renders the combined framebuffer normally and the VDB splits it passively in hardware. An emulated VDB device (I/O 0x3000x31A) in the DOSBox-X fork records the palette contents and clock state so this six-display encoding can be decoded later; see emulator/ and emulator/RIO-NOTES.md.

The shipped games, in runnable form

BTLIVE/, BTRAVINE/, RPLIVE/, and RPDAVE/ are complete, runnable game installs — including the compiled executables this repository lacks: NETNUB.EXE, BTL4TOOL.EXE, BTL4OPT.EXE, MECHBLD.EXE, the 32-bit DOS runtime (32RTM/DOS4GW), and HMI audio drivers, alongside all resources.

BTRAVINE/ is late-era work on the Ravine arena (present in this repo as the RAV/RAV1 environments), and its build log names the mech roster being compiled — Avatar, Black Hawk, Loki — confirming that this repo's BT vs BT3025 content split is a Clan-era vs 3025-era roster split.

Unreleased projects

The most historically significant material on the drive:

Star Trek prototype (STDAVE/)

A working Division scene (TREK.SCN) running on the Tesla renderer: layered starfield splines, an Enterprise-D model (EPRISED.VGF), and Klingon ship models and textures (KLNGN*.VGF, KLNG16.TGA). A VWE Star Trek pod experience that never shipped. These scenes have been restored and can be viewed in a browser — see restoration/.

Hull Pressure (HPDAVE/, August 1995)

A submarine game prototype: sharks, submarines, Atlantis geometry, fish schools, and sea-movement splines, preserved both loose and in HPDAVE.ZIP.

Renegade Legion (RL/)

Models for a pod adaptation of FASA's Renegade Legion space-combat property (a natural companion license to BattleTech): the Cheetah, Penetrator, Spiculum, and Cingulum ship classes, plus space stations, shield generators, and cargo/medic/gunboat transports.

Starship Troopers → DisneyQuest "Invasion!" (TEMP/STARSH~1.DOC, January 1997)

A complete design document for a 4-player location-based Starship Troopers attraction, written by FASA Interactive for WDI (Walt Disney Imagineering) — "Optics system and IG are as specified by WDI." Players are colonists driving a 4-legged converted mining crawler (one driver with a force-feedback yoke, three gunners with force-feedback joysticks, hull electrification device) into a bug nest to kill the brain bug, escorted by computer-controlled power-armored troopers. This pitch evolved — with the licensed bugs replaced by original aliens — into "Invasion! An ExtraTERRORestrial Alien Encounter" at DisneyQuest, which kept the same driver-plus-three-gunners walker-vehicle design.

Early Division demos (August 1994)

Batch files at the drive root fly Division demo scenes — RAPTOR, THOR, ROCKY, MULES, an F-15, a jeep-tank — using Division's FLYK.EXE scene flyer. These predate the Tesla games' completion and show the DPL evaluation period.

Can the games be rebuilt from this repository?

Short answer: not as it stands. Cross-referencing the makefiles against the surviving sources:

  • BattleTech: 33 of the 49 objects BT.MAK/BTL4.MAK build have no source file in the tree — including the core of the game: MECH.CPP through MECH4.CPP, MECHSUB, MECHDMG, DMGTABLE, BTPLAYER, HUD, TORSO, GYRO, MYOMERS, SENSOR, and nearly the whole BT_L4 pod app layer. Only the weapons (PPC, Gauss, missiles), teams, missions, and console survive.
  • Red Planet: 22 of 29 objects are missing sources — including VTV.CPP (the player vehicle), RPPLAYER, WEAPSYS, all pickups, and the RPL4 app layer.
  • For every missing module the header survives, but not the implementation. No compiled .obj substitutes exist anywhere (repo or drive), and the drive's ZIP archives contain no source.
  • Also missing: make.cfg (included by every makefile) and the makefiles for the MUNGA/MUNGA_L4 libraries themselves — both reconstructable from the surviving OPT.MAK/D0D3S.MAK configuration makefiles.

What could plausibly be rebuilt: the MUNGA engine library (the RP tree's copy is complete — 351 files, all sources present, with compiled objects in RP/MUNGA/opt/ to verify against), MUNGA_L4, and NetNub. All third-party dependencies are present as binaries (LIBDPL.LIB, WATTCPLG.LIB, SOS libraries, C0X32.OBJ). The toolchain (Borland C++ 5.0

  • TASM32) is not included but is obtainable, and builds would run under DOSBox or a VM. A rebuilt game would still need Division VPX hardware (or a shim for the VREND*.BTL renderer module interface) to display anything.

This release tree appears to be a deliberately partial cut; the full source lived on the \\vgl_code server and in PVCS. The realistic preservation paths are:

  1. Find more media — anything from the vgl_code server, PVCS archive directories, or other developers' drives.
  2. Preserve the compiled buildsBTLIVE//RPLIVE/ on the Glaze drive are complete installs and need no compilation.
  3. Reimplement the missing modules against the surviving headers — every interface is documented, but this is a rewrite project, not a build.