Skip to content

Releases: puckhead73/nhl-legacy-recomp

v0.6.0 — VP6 movie fix + supersampling audio & equipment fixes

Choose a tag to compare

@puckhead73 puckhead73 released this 22 Jul 05:30

Highlights

  • VP6 movie playback fixed — the EA boot movie and other in-game VP6 videos now decode correctly via a host ffmpeg bridge (bundled ffmpeg.exe, LGPLv3), replacing the corrupted guest-decoded frames. Opt out with NHL_VP6_BRIDGE=0.
  • Supersampling audio fix — reduced audio popping/crackling at higher internal-resolution (SSAA) settings by deepening the audio queue so frame-pacing hitches no longer starve the audio buffer.
  • Supersampling capped at 2x — the internal-resolution slider is now limited to 2x. At 3x/4x the scaled resolve buffer exceeds many GPUs' 4 GB storage-buffer addressing limit, which corrupted goalie/player equipment textures and could crash on entering gameplay. 2x is fully correct and stable.

Build

  • PGO + ThinLTO optimized (-march=x86-64-v3); Vulkan-fsi renderer.
  • Bundled: AMD FidelityFX (FSR/CAS), ffmpeg (VP6 decoder), .big loose-file extractor.

Install

See README.txt in the archive. Requires your own legally-dumped NHL Legacy disc image or extracted game folder.

v0.4.0 — shadow quality controls + tunables editor

Choose a tag to compare

@puckhead73 puckhead73 released this 23 Jun 01:13

NHL Legacy Recomp v0.4.0

New features

  • Shadow quality controls (overlay → Rendering): a Soften shadows (bilinear) toggle and a Shadow softness slider (0–4). Restores hardware bilinear filtering on the game's depth/shadow maps and adds an optional blur to soften the hard, pixelated/striped look up close. Both default off, persisted.
  • Engine tunables editor: an in-overlay panel to browse and edit engine constants (schema-driven panels + a raw list) with persisted overrides.

Fixes & performance

  • Discrete-GPU auto-selection — the renderer now prefers a discrete GPU over integrated/virtual/CPU, fixing low framerates on systems where an iGPU was being picked.
  • Readback size-gate default — trims per-frame GPU stalls.

Notes

  • Release + PGO + ThinLTO, built -march=x86-64-v3 (AMD + Intel safe).
  • The shadow controls are a meaningful improvement at the default 2× internal resolution but not a full cure for shadow-map aliasing — that can't be fixed cheaply on the FSI renderer, so for pristine shadows raise Supersampling to 3–4×.
  • Added inert dev/diagnostic env knobs (NHL_VK_SHADOW_PROBE, NHL_VK_READBACK_MODE, NHL_ANIM_DECODE).

v0.2.0 — compilation perf pass (AMD + Intel)

Choose a tag to compare

@puckhead73 puckhead73 released this 18 Jun 22:24

Performance-focused release. The shipped binaries are now fully optimized for both AMD and Intel, and Intel hybrid (12th-gen+) CPUs get automatic P-core placement.

What changed

  • Runtime DLL rebuilt as Release + ThinLTO, profiling instrumentation removed. The previously-shipped runtime (the EDRAM / command-processor / Vulkan draw-submission hot path) was a -O2 RelWithDebInfo build with Tracy + perf-counter instrumentation compiled in. It now ships as the Release config (-O3) with ThinLTO and no profiling overhead. Helps every user.
  • Game built Release + PGO + ThinLTO. The recompiled guest code (the CPU-bound gameplay path) is now whole-program optimized on top of -O3 -march=x86-64-v3 + profile-guided optimization.
  • Intel hybrid P-core auto-pinning (new). On Intel 12th-gen+ CPUs the game now pins itself to the Performance cores at startup so its heavy threads don't get parked on slow E-cores. Env-gated NHL_PIN_PCORES (default on; set NHL_PIN_PCORES=0 to disable). No-op on AMD / non-hybrid CPUs.

Notes

  • Continues to target the portable -march=x86-64-v3 floor (no SSE4a), preserving the Intel illegal-instruction crash fix from v0.1.1.
  • Install/run is unchanged from prior releases — see README.txt in the zip.

🤖 Generated with Claude Code

v0.1.1 — fix Intel illegal-instruction crash

Choose a tag to compare

@puckhead73 puckhead73 released this 18 Jun 09:43

Fix: crash on Intel CPUs at the first intro video

Some users (Intel CPUs) crashed with 0xC000001D (ILLEGAL_INSTRUCTION) right as the first VP6 movie played.

Cause: the optimized build was compiled with -march=native on an AMD machine, which enabled SSE4a; the compiler emitted the AMD-only EXTRQ instruction. No Intel CPU implements SSE4a, so it faulted the moment that code path first ran (the intro video).

Fix: the build now targets the portable -march=x86-64-v3 (AVX2/BMI/FMA, no SSE4a). Confirmed via llvm-objdump that the rebuilt exe contains zero SSE4a instructions while keeping the AVX2 performance codegen.

No change to setup or system requirements — same install steps as v0.1.0. A modern (2013+/AVX2) CPU is required, which was already the case.

NHL Legacy Recomp v0.1.0

Choose a tag to compare

@puckhead73 puckhead73 released this 18 Jun 01:56

NHL Legacy Recomp v0.1.0

First public release. A native PC port of NHL Legacy (Xbox 360), produced by
static recompilation. This package contains no game assets — you supply your
own legally dumped copy.

Renderer

  • SDK-native Vulkan backend on the fsi (pixel-shader-interlock) render-target
    path — high-cut visual correctness at real-time framerates (~30–84 fps gameplay).
  • FidelityFX (FSR / CAS) bundled and selectable at runtime (default off ≡
    bilinear, so behavior matches the non-FFX build until you opt in).
  • In-game enhancements overlay (settings / perf HUD / supersampling) and a live
    color-grade post-process.
  • Rink-net transparency fix, jersey-font and equipment correctness patches.

What's in the zip

nhl-legacy-recomp-0.1.0/
  nhl-legacy-builder.exe      installer/verifier CLI (+ its runtime DLLs)
  README.txt                  end-user quick start
  THIRD-PARTY-NOTICES.txt
  payload/
    nhllegacy.exe             the recompiled port (win-amd64-vk-ffx)
    amd_fidelityfx_vk.dll     FidelityFX runtime
    rexruntimerd.dll, TracyClientrd.dll
    manifest.toml             pins the supported vanilla default.xex (SHA-256)
    extractor/                QuickBMS .big unpacker (loose-file modding tree)

Install

  1. Extract the zip (keep payload/ next to the builder).
  2. nhl-legacy-builder install --iso "<your dump>.iso" --out "C:\Games\NHL Legacy"
    (or --from "<extracted folder>"). Then launch nhllegacy.exe.

Quick dump check without installing: nhl-legacy-builder verify --iso "<dump>.iso".

Requirements

  • Windows 10/11 64-bit, a Vulkan-capable GPU, ~10 GB free disk.
  • Microsoft Visual C++ Redistributable (2015–2022, x64).
  • Your own NHL Legacy disc dump (the build is pinned to one specific vanilla image).

Build provenance

  • Port build: win-amd64-vk-pgo — profile-guided + -O3 -march=native on the Vulkan
    fsi + FidelityFX engine, ReXGlue SDK 0.8.1, Vulkan ON. (Same source as the tag;
    PGO/optimized flavor, playtested.)
  • Supported default.xex: d818eb15775c1fee34b057b0fc494b211535d07123230ee45bd7d40991c55624
  • Port nhllegacy.exe: 3caeadd0e2439e26c58ebdecd9d47b54a12835c61d14c0f775fff28c36d74a41
  • Source tag: v0.1.0

Download

nhl-legacy-recomp-0.1.0.zip — 59.3 MB
SHA-256: 31067052d1ffe5438dd2ebddfa46c4ae0cbc49162a3da3d29e8d88326575a308


Publishing this release (maintainer)

No git remote / gh auth is configured in this checkout, so publishing is manual:

# 1. authenticate + add the remote (one time)
gh auth login
git remote add origin https://github.com/<owner>/<repo>.git

# 2. push the branch + tag
git push origin master
git push origin v0.1.0

# 3. create the GitHub release with the zip attached
gh release create v0.1.0 `
  "out/release/nhl-legacy-recomp-0.1.0.zip" `
  --title "NHL Legacy Recomp v0.1.0" `
  --notes-file "out/release/RELEASE-NOTES-0.1.0.md"