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>
9.8 KiB
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/andCONVERT/(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/andDPL3RLS/— the DPL library in C source form, and underDPL3/VRENDER/the renderer source itself: C and Intel i860 assembly, with aPXPL5SUP/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.TXTdescribes 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 (viadivision.demon.co.uk, discussing SIGGRAPH datasheets). Thedave@division.comappearing 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 0x300–0x31A) 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, KLNG1–6.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.MAKbuild have no source file in the tree — including the core of the game:MECH.CPPthroughMECH4.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
.objsubstitutes 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 survivingOPT.MAK/D0–D3S.MAKconfiguration 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*.BTLrenderer 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:
- Find more media — anything from the
vgl_codeserver, PVCS archive directories, or other developers' drives. - Preserve the compiled builds —
BTLIVE//RPLIVE/on the Glaze drive are complete installs and need no compilation. - Reimplement the missing modules against the surviving headers — every interface is documented, but this is a rewrite project, not a build.