Repository navigation
D2LoD Vanilla+0.0.6-R47
Pre-release
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 resolvedD2Glide/Renderer/Glide.cppto 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_InitTextureMemoryand 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=1set, 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 insideDRAW_UI— insideif (GFX_bShowUIFlag.HelpMenu), the full-screen help-overlay block — so the per-frameAUTO_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.pydiffs 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.mdrecord both casualty classes and the rules they taught. - 0.0.6's boot telemetry (self-identifying
d2boot.log, 12 s hangwatch) and symbolisedd2crash-<date>-<time>.txtcrash 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.inicarry over. Ifd2vp.iniis missing, a documented all-defaults template is written next to the exe on the next start. - The
-3dfxroute works end-to-end again: rund2vp.exe -3dfxwith the bundledglide3x.dllbeside it. auto_gold=1picks up gold piles again on walk-over (each pile vanishes within ~0.2 s of entering the instant-pick radius) and coexists withalt_toggle=1.- Confirm the build via the first
d2boot.logline readingVanilla+0.0.6-R47.
Full Changelog: D2LoD-Vanilla-Plus-0.0.6...3478ac5