Skip to content

D2LoD Vanilla+0.0.6-R47

Pre-release
Pre-release

Choose a tag to compare

@VTSTech VTSTech released this 31 Oct 04:12
· 316 commits to main since this release
image

D2LoD Vanilla+ 0.0.6 (R47)

The merge-casualty repair build. Both defects reported against the 0.0.6 release since its ship are root-caused, fixed and field-verified here: Glide (-3dfx) is playable again (the first-frame crash from the 0.0.6 known-issues list is closed, #11) and Auto Gold Pickup works again (#10). Both turned out to be casualties of the same upstream merge port (d6affdd) — one edit was resolved away, one was silently re-parented. No new features, no wrapper changes: this is a rebuilt d2.exe on the 0.0.6 tree, same drop-in layout, the bundled glide3x.dll (Glide3xVK 0.4.6) unchanged, and all opt-in features still OFF — with no d2vp.ini the game behaves like retail. The first d2boot.log mark reads Vanilla+0.0.6-R47, which pins the exact build.

Fixed

  • Glide (-3dfx) died ~0.5 s after the first frame with an integer divide-by-zero (0xC0000094). The merge port that brought the 0.0.6 tree up to its upstream base resolved D2Glide/Renderer/Glide.cpp to the old side, silently dropping the texture-memory initialization assignments (nSubtileTexSize = 0x400, nFloorTexSize = 0x8000) together with the 3.5 MB VRAM gate, the debug-font hookup, the TMU≥2 perspective split and two glide upload guards. The floor/subtile cache initializers then divided by uninitialized stack; the Vulkan wrapper (swapchain, slang chain) was never at fault. RENDERER_GLIDE_InitTextureMemory and both guards are restored wholesale. Field-verified on the owner's build ("ok Glide i working now") — root cause + fix documented in #11.
  • Auto Gold Pickup never triggered. With [features] auto_gold=1 set, walking over gold piles collected nothing, while clicking piles still picked them up. The same merge port had re-inserted the auto-gold trigger block one brace too early inside DRAW_UI — inside if (GFX_bShowUIFlag.HelpMenu), the full-screen help-overlay block — so the per-frame AUTO_GOLD_Tick() only ever ran while the help overlay was open; in normal play the trigger was dead, and every presence-based check saw the call as intact. The block is back at its per-frame top-level placement, with an invariant comment and a gate row that fails if it ever moves again. Field-verified on the owner's build ("Great job. Auto Gold Pickup working again") — root cause + fix documented in #10.

Internals

  • New audit instrument: scripts/rev47_vp_placement_audit.py diffs every VP marker's brace context against the last field-verified pre-port tree (44e3518) — it catches a marked edit that survived a merge at the wrong brace depth, the casualty class the auto-gold bug introduced. House rule of record: presence is not placement. Merge procedure step 4 now runs it alongside the gate suite.
  • The Vanilla+ gate suite grew 194 → 201: six rows pin the restored glide texture-memory surface, one order-check row pins the auto-gold trigger placement (negative-tested against the broken layout). The suite also left CI by owner call — it is a manual merge audit again, so a red gate can never halt a build.
  • Two new war stories in docs/merge-upstream.md record both casualty classes and the rules they taught.
  • 0.0.6's boot telemetry (self-identifying d2boot.log, 12 s hangwatch) and symbolised d2crash-<date>-<time>.txt crash reports carry over unchanged.

Known issues

  • Unique monsters render in base colors, and unique-pack minion skeletons render gold. One mechanism family (the palette-transform roll), under investigation — the only open item on the board.

Upgrade notes

  • Extract over a 0.0.6 install; saves, realm logins and d2vp.ini carry over. If d2vp.ini is missing, a documented all-defaults template is written next to the exe on the next start.
  • The -3dfx route works end-to-end again: run d2vp.exe -3dfx with the bundled glide3x.dll beside it.
  • auto_gold=1 picks up gold piles again on walk-over (each pile vanishes within ~0.2 s of entering the instant-pick radius) and coexists with alt_toggle=1.
  • Confirm the build via the first d2boot.log line reading Vanilla+0.0.6-R47.

Full Changelog: D2LoD-Vanilla-Plus-0.0.6...3478ac5