acdream/tools
Erik 26adf75079 docs(render): VM6 code-complete — foliage-wind pixel proof, repeat-floor apparatus, ledger (Campaign VM)
Closes the automated half of slice VM6 at 754d59d9 and records how it was
proven. The first pixel method (clock pin 0 s vs 3 s, wind-off pair as the
control) is recorded as confounded: the treeline silhouette carries a
bimodal 0-or-~280 px rasterisation churn between runs of the same binary,
and two conclusions drawn from it were retracted. The replacement
apparatus (same pin, wind on vs off, two captures per arm, robust mask =
AND of the four cross pairs minus both repeat pairs, shadows off so only
geometry can move) found the round-4 defect (wind welded to the shadow
gate: 1 m wind = 49-65 px vs a 22 px floor while the CPU state was
correct) and, after round 5, gives 14,993 robust wind pixels vs a 65 px
floor, every one on a treeline tree, hillside tree or shoreline bush, with
the wind-off frame matching the pre-round-4 plain pipeline at mean |d|
0.007 (round 4's eec95535: 1.77, the overhead-sun regression the narrow
review caught).

tools/vm6/wind-pixel-proof.py is the analysis command the closeout names;
evidence overlays under docs/research/evidence/vm6. Plan: VM6 ledger row
CODE-COMPLETE 2026-08-23, owner visual gate owed (section VM6 Acceptance).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 04:01:18 +02:00
..
A8CellAudit build: make release restore reproducible 2026-08-18 10:29:00 +02:00
AnimHookScan fix(world): honour SetOmega — the birds and butterflies fly again 2026-08-21 05:42:59 +02:00
cdb research(vm2): retail runs SINGLE-PASS detail texturing - the #226 port targets the fallback 2026-08-22 18:23:27 +02:00
cdb-scripts fix(motion): full queue reset on locomotion-cycle direct transitions 2026-05-03 17:00:55 +02:00
diag-logs diag(motion): instrumentation for remote walk↔run leg-cycle bug (Commit A) 2026-05-03 20:38:47 +02:00
dump-keymap build: make release restore reproducible 2026-08-18 10:29:00 +02:00
ghidra_project feat(core): port decompiled AC client physics — CollisionPrimitives + PhysicsBody 2026-04-12 23:54:51 +02:00
IconForge fix(IconForge): point the texture path at the real dump directory 2026-08-20 14:43:37 +02:00
InspectCoatTex docs(issues): #37 — Investigation 2 narrows bug to SubPalette coverage gaps 2026-05-05 14:45:50 +02:00
jsonl test(phys): A6.P5 fixture — 3 ticks from live door-stuck capture 2026-05-25 12:43:51 +02:00
LayoutDump fix(ui): button property 0x0D was never "disabled", and it killed every Journal button 2026-08-21 15:58:03 +02:00
MosswartArt feat: mosswart client icon and Asheron's Call-inspired launcher icon 2026-08-20 14:42:10 +02:00
pdb-extract fix(chat): Campaign CH user-gate round 2 -- portal notice rerouted to SpewBox, verbatim /help extraction, jump-in-air evidence 2026-08-10 08:40:24 +02:00
PesChainAudit build: make release restore reproducible 2026-08-18 10:29:00 +02:00
ProjectileVfxAudit build: make release restore reproducible 2026-08-18 10:29:00 +02:00
RainMeshProbe build: make release restore reproducible 2026-08-18 10:29:00 +02:00
RenderPackValidator feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
RetailTimeProbe build: make release restore reproducible 2026-08-18 10:29:00 +02:00
SetupInspect build: make release restore reproducible 2026-08-18 10:29:00 +02:00
ShaderCompiler feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
SkyObjectInspect build: make release restore reproducible 2026-08-18 10:29:00 +02:00
SpellDump fix(magic): the foci map never loaded — casts demanded full components a focus should waive 2026-08-20 21:28:22 +02:00
StarsProbe build: make release restore reproducible 2026-08-18 10:29:00 +02:00
TextureDump build: make release restore reproducible 2026-08-18 10:29:00 +02:00
vm0 research(vm0): Campaign AR's pack-off path IS the pre-campaign renderer - PASS 2026-08-22 21:40:40 +02:00
vm6 docs(render): VM6 code-complete — foliage-wind pixel proof, repeat-floor apparatus, ledger (Campaign VM) 2026-08-23 04:01:18 +02:00
WeatherEnumerator build: make release restore reproducible 2026-08-18 10:29:00 +02:00
WeatherSetupProbe build: make release restore reproducible 2026-08-18 10:29:00 +02:00
analyze_265_steep_slope_capture.py test(physics): #265 mining tool + real-trajectory replay harness for the steep-slope response family 2026-07-30 17:55:49 +02:00
analyze_269_slope_stop_capture.py fix(physics): port retail slope landing stop 2026-07-31 09:10:53 +02:00
analyze_resolve_capture.py tools+plan(#182): resolve-capture histogram classifier + verbatim player-physics rebuild plan 2026-07-07 13:37:15 +02:00
atmospheric-performance-matrix-common.ps1 feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
audit-test-inventory.ps1 test: audit helper-mediated source reads 2026-08-18 14:18:00 +02:00
CampaignLaProcessCorrelation.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
capture-campaign-la-session-process.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
compile-shaders.ps1 feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
connected-atmospheric-exposure-comparison.route.txt feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
connected-dense-town.route.txt fix(diag): bind stationary samples to route checkpoints 2026-07-24 12:54:57 +02:00
connected-r6-soak.route.txt fix(diag): bind stationary samples to route checkpoints 2026-07-24 12:54:57 +02:00
connected-render-pack-gate-common.ps1 test(render): add connected package lifecycle gate 2026-08-22 13:53:29 +02:00
connected-render-pack-package-lifecycle.route.txt test(render): add connected package lifecycle gate 2026-08-22 13:53:29 +02:00
connected-render-pack-remote-observer.route.txt test(gates): sequence the two-client remote-shadow gate with harness signals 2026-08-22 17:44:13 +02:00
connected-render-pack-remote-primary.route.txt test(gates): sequence the two-client remote-shadow gate with harness signals 2026-08-22 17:44:13 +02:00
connected-render-pack-transitions.route.txt feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
connected-world-lifecycle.route.txt test(runtime): add connected lifecycle gate 2026-07-20 22:39:34 +02:00
connected-world-reconnect.route.txt test(runtime): add connected lifecycle gate 2026-07-20 22:39:34 +02:00
decompile_acclient.py research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
decompile_full.py research: full acclient.exe decompilation — 22,225 functions, 688K lines 2026-04-12 23:25:51 +02:00
DecompileTargets.java research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
ghidra_decompile.py research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
launch-atmospheric-preview.ps1 feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
new-campaign-la-update-fixture.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
publish-bin.ps1 ci: put the launcher's update pointer in a release, and delete the dist branch 2026-08-19 14:40:41 +02:00
README.md build: make release restore reproducible 2026-08-18 10:29:00 +02:00
run-atmospheric-performance-matrix.ps1 feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
run-blank-world-ab-probe.ps1 docs(render): the occlusion-query verdict on the V4c blank world, and the options 2026-07-28 01:44:34 +02:00
run-blank-world-surface-probe.ps1 test(render): add blank-world attribution apparatus and a post-world GL sample 2026-07-28 00:08:10 +02:00
run-campaign-la-preflight.ps1 fix(launcher): harden Campaign LA11 gate evidence 2026-08-15 01:08:41 +02:00
run-connected-loss-gate.ps1 docs(net): N5 accepted - Opus review PASS; loss gate strengthened per review 2026-07-29 16:40:55 +02:00
run-connected-r6-soak.ps1 fix(gates): initialize connected soak artifacts before isolation 2026-08-22 13:34:36 +02:00
run-connected-render-pack-package-lifecycle.ps1 test(render): add connected package lifecycle gate 2026-08-22 13:53:29 +02:00
run-connected-render-pack-remote-player-gate.ps1 test(gates): sequence the two-client remote-shadow gate with harness signals 2026-08-22 17:44:13 +02:00
run-connected-world-lifecycle-gate.ps1 fix(gates): select a character in connected graphical runs 2026-08-22 13:24:39 +02:00
run-offline-pixel-gate.ps1 research(vm0): Campaign AR's pack-off path IS the pre-campaign renderer - PASS 2026-08-22 21:40:40 +02:00
run-offline-vulkan-capture.ps1 feat(render): Vulkan campaign V11 step 4 — retire GL from CI and gate scripts 2026-07-29 03:06:45 +02:00
run-portal-churn-soak.ps1 feat(render): Vulkan campaign V11 step 4 — retire GL from CI and gate scripts 2026-07-29 03:06:45 +02:00
run-release-gate.ps1 test: introduce Lane=Timing for load-sensitive tests, and stop chasing them individually 2026-08-19 15:29:10 +02:00
run-repeat-connected-gate.ps1 feat(render): Vulkan campaign V11 step 4 — retire GL from CI and gate scripts 2026-07-29 03:06:45 +02:00
test-campaign-la-gate-helpers.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
test-campaign-la-script-safety.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
test-campaign-la-session-status.ps1 fix(launcher): harden LA11 gate evidence 2026-08-15 01:45:15 +02:00
update-package-locks.ps1 build: make release restore reproducible 2026-08-18 10:29:00 +02:00
verify_un2_fmul.py UN-2 RESOLVED: GetMaxSpeed x4 is byte-verified retail; doc-comment was the misread 2026-06-12 13:17:50 +02:00

Maintained .NET tools

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. Installed AC DAT files.
WeatherEnumerator Enumerate weather sky objects and their bounds. Installed AC DAT files.
WeatherSetupProbe Inspect the parts and surfaces of weather Setups. Installed AC DAT files.

Build the complete maintained graph with:

dotnet restore AcDream.slnx --locked-mode --force-evaluate
dotnet build AcDream.slnx -c Release --no-restore

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.