Repository navigation
Releases: puckhead73/nhl-legacy-recomp
Release list
v0.6.0 — VP6 movie fix + supersampling audio & equipment fixes
Highlights
- VP6 movie playback fixed — the EA boot movie and other in-game VP6 videos now decode correctly via a host
ffmpegbridge (bundledffmpeg.exe, LGPLv3), replacing the corrupted guest-decoded frames. Opt out withNHL_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),.bigloose-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
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)
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
-O2RelWithDebInfo build with Tracy + perf-counter instrumentation compiled in. It now ships as theReleaseconfig (-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; setNHL_PIN_PCORES=0to disable). No-op on AMD / non-hybrid CPUs.
Notes
- Continues to target the portable
-march=x86-64-v3floor (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
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
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
- Extract the zip (keep
payload/next to the builder). nhl-legacy-builder install --iso "<your dump>.iso" --out "C:\Games\NHL Legacy"
(or--from "<extracted folder>"). Then launchnhllegacy.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=nativeon 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"