Files
TeslaRel410/restoration
CydandClaude Fable 5 d66c2b0812 BT410 5.3.55: the mech skeleton is built -- .SKL walked into a dpl_DCS tree
BTL4VideoRenderer answers MechClassID: walks the video-object chain the way
the engine does, hands every L4VideoObject::Skeleton entry to ReadSKLFile, and
recurses the .SKL into a dpl_DCS tree with geometry instanced onto it.

Verified repeatedly on the live pod: '[skl] video\mad.skl -> 26 nodes, 19
objects', with no 'wrong video resource type' complaint and no load failures.
Those counts are exactly what the file declares (25 joint= entries + root, 19
Object= entries).

Corrects the earlier success criterion in this file, which said 22 instances
by reading the reference capture's 'instance x22' against DZoneCount=22.
Damage zones are not geometry -- 28 dzone= tags spread across 19 objects.

Translations are written to matrix[3]/[7]/[11], MUNGA's own AffineMatrix
layout.  It walks cleanly but no frame has been seen WITH the mech yet, so
the slot choice is recorded as unconfirmed.  Rotation stays identity by
design: every base-pose angle in MAD.SKL is 0 or ~1e-3, so translation alone
assembles the model and isolates one convention at a time.

AND A CORRECTION I have to flag loudly: I earlier concluded from single runs
that non-identity translations crashed the pod, 'isolated' it, and 'confirmed'
the alternative also crashed.  That was all noise.  The same binary re-run
gives walk / crash / walk / crash -- the known intermittent plane-write defect
is now firing on ~half of pod runs and lands at different points each time,
which is precisely what made it look deterministic.  Never accept a single
pod run as evidence on this rig; require two agreeing runs.

That defect is now the top of the list: a run must survive both the skeleton
build and the launch to render anything, which at ~50% is a coin flip on a
four-minute cycle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 18:46:37 -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.