Skip to content

ZachFix v0.2.2

Choose a tag to compare

@h714je h714je released this 22 Sep 23:39
· 33 commits to main since this release

ZachFix v0.2.2

This update focuses on visual comparison/restoration tools, world visibility controls, and renderer cleanup.

Highlights

Comparison screenshot workflow

ZachFix now includes a built-in workflow for making repeatable A/B screenshots without manually changing settings between captures.

  • Added switchable screenshot presets configured directly in ZachFix.ini.
  • Presets can start from either the live-switchable original PC rendering state or the user's configured ZachFix state, then override selected rendering, world, and PostFX settings.
  • Added lossless final-backbuffer PNG capture.
  • Default hotkeys:
    • F6: cycle screenshot presets
    • F7: capture the current frame
    • F8: capture all configured presets as a timestamp-matched comparison set
  • Capture All restores the exact live rendering/PostFX state that was active before the batch.
  • Optional gameplay-timer freezing is available for fixed-framing comparisons, but remains disabled by default because freezing gameplay timers can hang some cutscenes.
  • Restart-only state, such as shadow depth format and already-loaded texture ownership, is intentionally excluded from the live Original preset.

World visibility distance

Added native main-frustum distance controls for the camera classes responsible for several shorter-distance scene elements.

Available modes:

  • Original
  • Extended: 1000 minimum far plane
  • Extended Plus: 5000 minimum far plane
  • Extreme: 20000 minimum far plane

Only the native far-plane values for camera classes 3/4/5 are redirected. Object classification, streaming, activation, LOD selection, frustum testing, shadow volumes, and render submission remain handled by the game.

The temporary research probes used to identify this path have been removed from the production build.

Xbox 360 tone and display restoration

Added two new runtime-switchable color/output controls under F10 -> PostFX -> Color.

PostFX.Color.Mode:

  • PC
  • Xbox360Grading
  • Xbox360Full

Xbox360Grading restores the scene-authored ENV Contrast/Pitch/Chroma/Addsub tail. Xbox360Full additionally removes the Director's Cut PC-only exposure scaling from the native final-composite path.

PostFX.Color.DisplayGamma:

  • PC
  • Xbox360HDTV

Xbox360HDTV applies the reconstructed Xbox 360 HDTV display transfer as a late full-frame sRGB decode -> BT.709 encode pass before Present, including the HUD and menus.

Both options are hot-switchable and leave DP.exe unmodified.

Renderer cleanup and optimization

  • Centralized persistent PostFX tuning state so config, UI, and renderer paths use one shared runtime source of truth.
  • Reduced normal render-hook overhead by gating inactive G-buffer/projection tracking and other PostFX work.
  • Cached repeated surface state where possible.
  • Enabled interprocedural optimization for supported Release builds.
  • Removed completed shader-probe, render-trace, and D3D9 resource-lifetime research tooling from the production build and current diagnostics documentation.

Compatibility

Supported game builds:

  • Steam 1.01b
  • GOG 1.01b

The existing native D3D9, DXVK, and dgVoodoo2 deployment paths remain supported.

Updating

Replace the previous ZachFix files with the contents of ZachFix-v0.2.2-win32.zip.

Existing ZachFix.ini files can be kept. New settings use safe defaults, so the new Xbox 360 color/output restoration and extended frustum modes do not change the existing PC presentation unless enabled.

See CHANGELOG.md in the release package for the full technical change list.