Exact-pixel and production-perf comparison of 6c79d35c (+ only the A2
normal files, so no terrain mask is needed) against c51b07ef with no pack:
connected as +Acdream, visible window, one isolated config clone per
variant, pinned clocks. Open field: the only differences are idle pose,
mana digits and a passing flyer. Holtburg: same-binary-twice defines the
dynamic mask (9.8%); in the static 90% both self-diffs have ZERO pixels
with |d|>=8 while base+normals vs HEAD-off has 841/729 - all streaks inside
the animated lifestone. Buildings, ground, trees, sky and UI are clean.
Perf (uncapped Release, no automation observer, ACDREAM_FRAME_PROF=1):
Holtburg CPU p50 4.7 -> 4.1 ms, Arwic 6.0 -> 5.2 ms, GPU unchanged,
alloc/frame 574 KB -> 21 KB. No regression; F5b's '27.8 ms retail CPU' was
the observer.
Three false alarms recorded so nobody repeats them: the isolated gate
settings lack fieldOfView (90 vs the real 86.33 -> a 0.952 zoom); the real
%APPDATA% settings still selected acdream.atmospheric/low (pack ON); a
minimized GLFW window is throttled and never settles.
Tools: tools/vm0/capture-visible.ps1 (pre-campaign gate + -Exe/-Live/
-ConfigDir/-CharacterName/-PreCaptureCommand), tools/vm0/perf-run.sh,
and -BuildingDetailTextures on run-offline-pixel-gate.ps1. Baseline
patches under docs/research/evidence/vm0/.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every .csproj under tools/ is part of AcDream.slnx. The complete Release
gate restores and builds these tools, so a missing personal checkout or an API
change cannot leave a tracked tool silently broken. They are diagnostic/manual
programs: the gate builds them but does not run data-dependent investigations.
Tool
Purpose
Runtime prerequisite
A8CellAudit
Inspect landblock, EnvCell, portal, and collision topology.
Installed AC DAT files / the arguments documented by the program.
dump-keymap
Extract the retail master input maps and decoded actions.
Installed client_portal.dat.
PesChainAudit
Walk weather PES call chains and particle emitters.
Installed AC DAT files.
ProjectileVfxAudit
Audit projectile physics-script and particle-emitter VFX mappings.
Installed AC DAT files.
RainMeshProbe
Inspect rain surfaces, polygon sidedness, and generated mesh counts.
Installed AC DAT files.
RetailTimeProbe
Read retail time-of-day and sky state for comparison.
Windows, a running retail client, and process-read access.
SetupInspect
Dump Setup parts, placement poses, and animation frames.
Installed AC DAT files and a Setup ID.
ShaderCompiler
Compile the Vulkan GLSL shader set to committed SPIR-V.
Source and output directory arguments.
SkyObjectInspect
Inspect Dereth sky/day-group objects and texture data.
Installed AC DAT files.
StarsProbe
Audit sky-object geometry, UV ranges, and surfaces.
Installed AC DAT files.
TextureDump
Dump render-surface statistics and texture images.
Use pwsh ./tools/run-release-gate.ps1 for the authoritative bounded gate.
Package versions and lock-file maintenance are documented in
docs/release-gate.md.