Files
TeslaRel410/restoration
CydandClaude Fable 5 f2687a3146 BT410 5.3.72: the fault caught in the act; the inside view gets its cockpit
VPX_PF_WATCH (fork, cpu/paging.cpp): on a guest page fault at the watched
linear address, dump guest registers, the last 64 serial RX deliveries with
guest cs:eip at each, the code bytes at the faulting EIP and the stack top.
serialnamedpipe's doReceive feeds the ring.  Armed in podrun.sh and
launch_pod.ps1.

The first catch decoded the residual fault completely: CS:EIP 00FF:000066D4
in the DPMI host, EBX = F000CA60 -- an IVT entry read as a dword, segment
F000 offset CA60, a BIOS default interrupt handler -- and the faulting access
is [EBX+0x3004], whose 0x80000000 segment-base wrap gives exactly cr2
7000FA64.  The host probes a word 0x3004 bytes past a real-mode vector value
treated as a flat pointer: harmless for its own low-memory handlers, a fault
for BIOS F000:xxxx defaults.  The serial ring shows a steady 1-byte/1-3ms
vRIO stream with nothing special at the fault -- the stream determines which
vectors get walked, not the crash itself.  The 0x3004 appears nowhere in
DPMI32VM.OVL or 32RTM.EXE as an immediate, so the probe now also dumps code
bytes at EIP; faulthunt.sh loops runs until the next catch.

Shipped baseline streak: 4/4 clean -- consistent with exposure, not yet
discriminating.

The inside view now loads the COCKPIT skeleton: the fleet-wide X-variant
naming convention (MAD->MAX etc., all 64 skeletons present) selects the same
25-joint chain with a single object -- max_cop.bgf, the MAX_COP canopy shell
with the PUNCH-texel windows from the capture forensics.  The donor names the
same mechanism from the decomp side (inside = SkeletonType_A with '_cop'
selection).  Fallback to the body skeleton when no X file exists.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 18:09:22 -05:00
..

Scene Restorations

Modern re-renderings of the Division dVS scenes recovered from the Glaze developer drive (see HISTORY.md) and this repo's CONTENT tree. The originals ran on Division Ltd.'s pixel-pipeline hardware in 19941997; these tools parse the original data files and re-render them in WebGL, in the browser.

Viewers (open in any browser, fully self-contained)

  • vwe-archive.html — the Scene Archive: 26 curated scenes across all projects — Star Trek (Enterprise-D, Klingon flyby), Hull Pressure (sea demos, fish schools, sunken temple), BattleTech (polar map with mech lineup, Ravine and desert maps, stadium), Red Planet (Blade arena, the Mars canal milestone demo), and the Canyon/Maya-temple Division demos. Fly camera: drag to look, WASD to fly, R resets.
  • trek-scn.html — the original standalone Star Trek restoration (TREK.SCN and KLNGVID.SCN).

Toolkit

  • divformats.py — parsers for every Division format found on the drive: text VGF/VMF (DIV-VIZ2 geometry/materials, both the 1995 VERSION 2:07 and 1996 02:05 dialects, with header SCALE support), binary BGF/BMF (DIV-BIZ2) — the binary block-stream layout was recovered from Division's own reader source (DPL3/BIZREAD.C, 1994), including all 14 vertex layouts, pmesh/tristrip/polygon connectivity, LOD blocks (newer writers nest patches inside LODs; the largest LOD is taken), and embedded materials/textures/ramps — plus TGA and raw SVT textures, SPL splines, and SCN scene scripts.
  • audit.py — scans every .SCN on the drive and reports what fraction of its geometry survives, and in which format.
  • extract_all.py — extracts every scene with ≥60 % of its geometry recoverable (108 of 241 on the drive; the rest reference lost models) into allscenes.json, resolving models/materials/textures across the drive and this repo's CONTENT dirs.
  • gallery_build.py — curates scenes from allscenes.json into the self-contained vwe-archive.html (via gallery_template.html).
  • convert.py / viewer_template.html — the original single-scene Star Trek pipeline.

Rebuild

python extract_all.py     # requires the sda4/ drive dump beside this repo
python gallery_build.py

Fidelity notes

Faithful: vertices, triangles, material colors and shading ramps, textures, fog and light parameters, spline motion, camera start positions. Approximated: Division's rasterizer behavior, point sizes, timing (originals ran at 30 Hz). Not simulated: event-driven SPECIALFX particles. A few dev scenes had camera start positions inside geometry; those get overridden or auto-framed cameras (see START_OVERRIDE in gallery_build.py). Scenes missing one or more models from the drive say so in their header.