Repository navigation
Releases
Eglantine on Crack (2026-11-08)
⚡ Eglantine on Crack — Bleeding-Edge Build
Warning
Experimental & Not Fully Tested: This build is ~500 commits ahead of upstream nx2-experimental. Features, GPU rewrites, and speed optimizations land immediately after local testing. Back up your saves (%APPDATA%\eglantine\nand\user\save) before launching!
✨ Highlights in This Build
-
NVIDIA DLSS Super Resolution & DLAA:
- Native Streamline DLSS (
Performance/Balanced/Quality) andDLAAselector inEmulation -> Configure -> Graphics. - Ticking Enable NVIDIA DLSS automatically locks Window Adapting Filter to
Bilinearand Anti-Aliasing toNoneso post-processing never blurs the DLSS output. - Automatic 3D pass upscaling before HUD compositing in Ocarina of Time (sharp 1440p 3D + native crisp HUD).
- Native Streamline DLSS (
-
2x Frame Generation + High-Refresh VRR Pacing:
- Built-in FSR3 Frame Generation with half-period presentation pacing (
~40 FPSguest$\rightarrow$ ~80 FPSdisplayed on VRR/G-Sync displays) and duplicate-frame skip when guest frames pause.
- Built-in FSR3 Frame Generation with half-period presentation pacing (
-
Ocarina of Time Overhaul (
0400486024DEC000):- Fixed terrain blotches, haze/fog rendering, Turing MME macro crashes, and inventory/save-screen thumbnail capture.
- Real-time game speed below 60 FPS (no more slow-motion when below 60 FPS).
-
Major Stutter & FPS Improvements:
- Shader Stutter Eliminator: Spreads background pipeline compilation across frames (cuts worst new-area freezes from 2.3 s → 0.6 s).
- CPU/GPU Hot Paths: Trap-and-flush CPU reads, fast 4 KiB page-run lookups, SPSC GPU thread wakeups, and AMD X3D V-Cache CCD thread affinity.
-
Mario Kart World & Super Mario Bros. Wonder: Large-VRAM budget fix (53 → 58.7 FPS in MKW) and
vi2release fence fix (unlocks Wonder past 30 FPS).
🚀 Quick Start
- Back up
%APPDATA%\eglantine\nand\user\save. - Extract
eglantine-windows-x86_64.zipinto its own folder (do not overwrite your upstream Eglantine folder). - Run
eglantine.exe— your existing keys, firmware, games, mods, and saves in%APPDATA%\eglantineload automatically.- Note: If a game misbehaves, launch with
EDEN_NX2_PERF_OPT=0to disable all experimental speed switches at once.
- Note: If a game misbehaves, launch with
Eglantine on Crack (2026-11-08)
⚡ Eglantine on Crack — Bleeding-Edge Build
Warning
Experimental & Not Fully Tested: This build is ~500 commits ahead of upstream nx2-experimental. Features, GPU rewrites, and speed optimizations land immediately after local testing. Back up your saves (%APPDATA%\eglantine\nand\user\save) before launching!
✨ Highlights in This Build
-
NVIDIA DLSS Super Resolution & DLAA:
- Native Streamline DLSS (
Performance/Balanced/Quality) andDLAAselector inEmulation -> Configure -> Graphics. - Ticking Enable NVIDIA DLSS automatically locks Window Adapting Filter to
Bilinearand Anti-Aliasing toNoneso post-processing never blurs the DLSS output. - Automatic 3D pass upscaling before HUD compositing in Ocarina of Time (sharp 1440p 3D + native crisp HUD).
- Native Streamline DLSS (
-
2x Frame Generation + High-Refresh VRR Pacing:
- Built-in FSR3 Frame Generation with half-period presentation pacing (
~40 FPSguest$\rightarrow$ ~80 FPSdisplayed on VRR/G-Sync displays) and duplicate-frame skip when guest frames pause.
- Built-in FSR3 Frame Generation with half-period presentation pacing (
-
Ocarina of Time Overhaul (
0400486024DEC000):- Fixed terrain blotches, haze/fog rendering, Turing MME macro crashes, and inventory/save-screen thumbnail capture.
- Real-time game speed below 60 FPS (no more slow-motion when below 60 FPS).
-
Major Stutter & FPS Improvements:
- Shader Stutter Eliminator: Spreads background pipeline compilation across frames (cuts worst new-area freezes from 2.3 s → 0.6 s).
- CPU/GPU Hot Paths: Trap-and-flush CPU reads, fast 4 KiB page-run lookups, SPSC GPU thread wakeups, and AMD X3D V-Cache CCD thread affinity.
-
Mario Kart World & Super Mario Bros. Wonder: Large-VRAM budget fix (53 → 58.7 FPS in MKW) and
vi2release fence fix (unlocks Wonder past 30 FPS).
🚀 Quick Start
- Back up
%APPDATA%\eglantine\nand\user\save. - Extract
eglantine-windows-x86_64.zipinto its own folder (do not overwrite your upstream Eglantine folder). - Run
eglantine.exe— your existing keys, firmware, games, mods, and saves in%APPDATA%\eglantineload automatically.- Note: If a game misbehaves, launch with
EDEN_NX2_PERF_OPT=0to disable all experimental speed switches at once.
- Note: If a game misbehaves, launch with
Eglantine on Crack (2026-11-08)
⚡ Eglantine on Crack — Bleeding-Edge Build
Warning
Experimental & Not Fully Tested: This build is ~500 commits ahead of upstream nx2-experimental. Features, GPU rewrites, and speed optimizations land immediately after local testing. Back up your saves (%APPDATA%\eglantine\nand\user\save) before launching!
✨ Highlights in This Build
-
NVIDIA DLSS Super Resolution & DLAA:
- Native Streamline DLSS (
Performance/Balanced/Quality) andDLAAselector inEmulation -> Configure -> Graphics. - Ticking Enable NVIDIA DLSS automatically locks Window Adapting Filter to
Bilinearand Anti-Aliasing toNoneso post-processing never blurs the DLSS output. - Automatic 3D pass upscaling before HUD compositing in Ocarina of Time (sharp 1440p 3D + native crisp HUD).
- Native Streamline DLSS (
-
2x Frame Generation + High-Refresh VRR Pacing:
- Built-in FSR3 Frame Generation with half-period presentation pacing (
~40 FPSguest$\rightarrow$ ~80 FPSdisplayed on VRR/G-Sync displays) and duplicate-frame skip when guest frames pause.
- Built-in FSR3 Frame Generation with half-period presentation pacing (
-
Ocarina of Time Overhaul (
0400486024DEC000):- Fixed terrain blotches, haze/fog rendering, Turing MME macro crashes, and inventory/save-screen thumbnail capture.
- Real-time game speed below 60 FPS (no more slow-motion when below 60 FPS).
-
Major Stutter & FPS Improvements:
- Shader Stutter Eliminator: Spreads background pipeline compilation across frames (cuts worst new-area freezes from 2.3 s → 0.6 s).
- CPU/GPU Hot Paths: Trap-and-flush CPU reads, fast 4 KiB page-run lookups, SPSC GPU thread wakeups, and AMD X3D V-Cache CCD thread affinity.
-
Mario Kart World & Super Mario Bros. Wonder: Large-VRAM budget fix (53 → 58.7 FPS in MKW) and
vi2release fence fix (unlocks Wonder past 30 FPS).
🚀 Quick Start
- Back up
%APPDATA%\eglantine\nand\user\save. - Extract
eglantine-windows-x86_64.zipinto its own folder (do not overwrite your upstream Eglantine folder). - Run
eglantine.exe— your existing keys, firmware, games, mods, and saves in%APPDATA%\eglantineload automatically.- Note: If a game misbehaves, launch with
EDEN_NX2_PERF_OPT=0to disable all experimental speed switches at once.
- Note: If a game misbehaves, launch with
Eglantine Build 08/11/2026
Automatic daily build of nx2 at 3739d72.
Changes since the previous daily build
- status: fork switch prepared (
3739d72428) - docs: name the fork's nx2 branch in the shader and upstream notes (
84b60c9da8) - docs: README guide for switching to this fork (
a5ac8fdc57) - docs: record merge of upstream/nx2 (74db237) and upstream/nx2-experimental (797461a) (
dcbac39748) - vk_pipeline_cache: keep the disk cache across translation-only version bumps (
eab2c2246d) - spirv: keep native global memory helpers as calls and route with one switch (
9a362357a2) - docs: record merge of upstream/nx2-experimental (db093d7) into local-combined (
02fb3978f6) - plan-review: finalize Turn 2/3 negotiation status before nx2-experimental merge (
b24f76070b) - plan-review: Gemini Turn 2 on nx2-experimental merge (
9167555406) - agent: record user answers to DLSS/frame generation questions (
ecce9be006) - agent: negotiation and per-file analysis for merging upstream nx2-experimental (
b1f5cc943b) - docs: SHADER_STUTTER_NOTES.md, handoff for pipeline-compilation work (
a1062b1d18) - docs: UPSTREAM_CANDIDATES.md, which commits to send upstream and in what order (
c2ea043922) - agent: release cc7f29a prepared (
c87d08cd68) - agent: publish the plan reviews (thumbnail, quick wins, shader lowering, DLSS/frame generation) (
cc7f29a18e) - docs: OOT_STATE.md, shader stutter work, thumbnail fix, current numbers, developer pointers (
85fe229c1c) - vk_graphics_pipeline: drop the unused reused_descriptor_buffer (
2b416c3889) - agent: record shader-freeze plan P0-P4.1 in STATUS.md (
73daa17f87) - vulkan: replay disk-cached graphics pipelines skipped at boot on background workers (replay_disk_recordings) (
233b404586) - vulkan: add geometry consistency and G-buffer build-order priority (P3.1/P3.2) (
357a488b77) - vulkan: skip small no-depth draws when color target holds prior frame output (stale_target_skip) (
c41d23692f) - vulkan: keep disk cache across driver updates and enable P1 compute switches (
ee560f97ab) - shader_recompiler: remove static clip_distance_written data race in SPIR-V emit (
0dfaf624ba) - vulkan: build all persisted compute variants at boot (compute_preload_variants) (
9cf1bc6308) - nx2_perf: enable pipeline_keep_preloaded by default (
86a7dc9e58) - video_core: rename old vulkan.bin on CACHE_VERSION mismatch and guard disk_pipelines (
f2ce6c3f0f) - vulkan: keep old compute pipeline while stale-slot rebuild compiles (compute_rebuild_async) (
3eb64cb1ed) - vulkan: add pipeline build wait attribution, skip reason, and miss classification (
ca091a90f8) - agent: record FPS Quick-Wins Phase 2 (0aeaec7) in STATUS.md (
ea8c01bf81) - shader: run HMMA.16816.F16 on cooperative matrices (Eglantine-Community#582) (
0aeaec747c) - agent: shader-compile freeze plan for Gemini (
6f2bc30958) - agent: record FPS Quick-Wins Phase 1 in STATUS.md (
2b841365ad) - video_core: fence operation lists as vectors (no allocation per queued operation) (
ecba929740) - texture_cache: collect debug statistics only when EDEN_NX2_TC_LOG asks for them (Eglantine-Community#428) (
531dcb9aa2) - vulkan: don't wait for the GPU to grow the quad index buffer (Eglantine-Community#414) (
7353bf81f9) - buffer_cache: reuse a contiguous range's page table walk for its shorter sizes (Eglantine-Community#580) (
ba161f22a2) - common: back RangeSet with a sorted array (Eglantine-Community#481) (
682f0640dc) - common, query_cache: skip range subtractions and query erases that touch nothing (
94cab67bd8) - agent: record Ocarina of Time thumbnail fix in STATUS.md (
0478e200f6) - vk_graphics_pipeline: run graphics warp ops at the guest's warp size (Eglantine-Community#329) (
b1788ea326) - video_core: decode QMD release formats and skip only the slots it can't (Eglantine-Community#436) (
58f2ecb591) - Release gathered buffers when their sources are removed (
aea4a24e57) - common: keep zeroed page-table pages committed (Eglantine-Community#485) (
0d58dbc92e) - vulkan: rebuild native compute pipelines whose pointer slot was null at translation (
92c214fe86) - shader, buffer_cache: bind up to 64 storage buffers per stage (
f046b65a9d) - shader: charge pointer table entries only for bindings the first pass left free (
6db25ea841) - vulkan: don't write render target components the fragment shader doesn't output (Eglantine-Community#353) (
8e1b50ca4c) - buffer_cache: bind table-pointer pools as far as a storage buffer reaches (Eglantine-Community#351) (
b514e5f0f2) - vk_pipeline_cache: shader build budget 24 ms per frame by default (
e330d49488) - dynarmic: x64: fix VectorCountLeadingZeros16 on AVX-512 (
3f77c57997) - shader: gather from a second descriptor buffer as TLD4.B (Eglantine-Community#398) (
979991233b) - shader: shadow copies for IADD3.UR, FSETP and I2F in the lowering (
2cb4c8d6d6) - agent: shader build budget status (
e7ef36519c) - vk_pipeline_cache: spread run-time shader builds over frames (shader_build_budget) (
c9b8bb5e52) - add relower_words.cpp for instruction lowering from hex input (
77c41e14db) - vk_pipeline: log slow pipeline builds and submission-thread waits for them (
a99a5ed662) - agent: loop paused in round 14 for the user's test (
de1c819384) - agent: round 14 base measurement notes (
2ee32a120b) - agent: round 13 integration notes; switch comments (
29c50533cd) - Fix discord invite link in docs (
7f07486c29) - fix: gcc build failed (
a61fb4154d) - fixed missing ccache command (
cf72eec6ad) - nx2: run_ahead_own_write_probe: verify ring tolerates late previous-epoch writes (
78be364bc7) - nx2_perf: bank_dirty_skip marks unsafe block writes of tracked pages (
942e0e6657) - nx2: run_ahead_own_write_probe (measurement only) (
5550392e8b) - vulkan: use Info::UsesWarpOps for mesh and task stages (
0e82056820) - vulkan: mesh and task stages now require the guest warp size (
ff72fed972) - nx2_perf: bank_dirty_skip compares a native bank page only when marked (
ccf280865b) - video_core: back_replay_lean, restart the per-second rates with each session (
9536d36bd9) - shader: share the warp-op check between pipeline stages (
70a841058e) - video_core: front_macro_call verify checks the borrowed words stay unchanged (
2d4cf3667e) - video_core: back_replay_lean, a tight Maxwell3D run loop on the split back (
f29e951910) - video_core: front_macro_call switch (default off) (
79dcfbb574) - tools/nx2: catalogue: Ocarina of Time: 6 programs (
ac20ee1535) - shader, buffer_cache: let compute programs bind up to 64 storage buffers (
de4ed9d9d7) - shader: shadow copies for SHF, IADD3.UR, FSETP and I2F in the lowering (
900ab5a825) - agent: round 13 base measurement notes (
ab2a428068) - agent: round 12 integration notes; switch comments (
6286d0e3a2) - fix: build on ninja (
a2b70664fc) - video_core: exec_same_drop Verify counts map serial refreshes apart (
f9f9c8ac8d) - video_core: state_dead_store doesn't fold a write to a forwarded register (
2ae713b12a) - video_core: exec_same_drop leaves out executable writes the back no-ops (
26d98edd78) - video_core: state_dead_store folds a 3D state write into its unpublished entry (
110dbe261f) - nx2: run_ahead_overlay_budget probe (measurement only) (
1c3a6935c2) - video_core: acquire_drain_lite resets the publish interval as Drain does (
a680518427) - video_core: acquire_drain_lite switch for met acquire triggers and polls (
e4aec0b770) - agent: round 12 base measurement notes (
01d41bf3ac) - agent: round 11 integration notes (
4caf96e5df) - nx2: diag_draw_lite on by default (round 11) (
c805603330) - applied updated setup build action (
c02ab82326) - ci: fixed duplicated caches (
583b125d5a) - nx2: run_ahead_snapshot_probe: clear the GPU-written flag before each read trap (
db8a1f1695) - nx2: run_ahead_snapshot_probe (measurement only, bit 79, off) (
ab773a44bb) - video_core: dma_forward_tape evaluates forwarded values from a tape (
5fcb40895c) - video_core: diag_draw_lite review fixes (
b3a3f9ea0c) - video_core: diag_draw_lite switch (off by default) (
b1ca758749) - video_core: report_submit_early, early fences for 0x16 report waits (
d4be6837af) - agent: round 11 base measurement (
e3fb7b9089) - agent: round 10 integration notes (
2ac97bc933) - docs: added current features in changelog (
a4d3aa40cf)
Ocarina of Time WIP (cc7f29a18e): less shader stutter, thumbnails fixed
Read first: what this build does and doesn't do
Work-in-progress Eglantine build focused on The Legend of Zelda: Ocarina of Time. Not an official release.
What's new since the last build
- Much less freezing while shaders compile. Entering a new area used to freeze the game for up to 2 s while ~1,000 shaders were built at once. They are now built a few per frame (at most 24 ms per frame). The cost: some objects pop in late, or show as bright white silhouettes for a moment, the first time you see them.
- Save thumbnails fixed. Slots saved before this build keep their broken preview until you save over them.
- About 39-41 FPS at the Kokiri Forest spawn, mid 40s to low 50s walking around (Ryzen 9 9950X3D + RTX 5090). Not 60 yet.
- Linux/GCC build fixed (#11).
New and not fully tested yet: six more shader-stutter fixes are on by default. If you see stale effects, missing objects, flicker or flashes, check whether launching with this environment variable makes them go away, and tell us:
EDEN_NX2_PERF_OFF=compute_rebuild_async,compute_preload_variants,stale_target_skip,geometry_consistency,build_order_priority,replay_disk_recordings
Known issues
- The first time the graphics driver compiles a large shader you can still get a 1-6 s freeze. A second visit to the same place is fast.
- Tested on one machine and on Ocarina only; other games may behave differently.
How to use
- Unzip anywhere and run
eglantine.exe. It uses its own data folder,%APPDATA%\eglantine, so you'll need your own keys and firmware. - Judge performance after a few minutes of play, once the shaders you see most are built.
- Recommended: GPU Mode Fast (click the GPU button in the bottom status bar until it says "Fast").
- Tune the shader build budget with
EDEN_NX2_SHADER_BUDGET_MS=<ms>: lower means smoother frames and longer pop-in. - If it doesn't start, install the Microsoft Visual C++ 2015-2022 Redistributable (x64).
See OOT_STATE.md (in the zip) for what this build promises and what it doesn't, and for pointers to the design notes.
Reporting problems: include your CPU and GPU, where in the game it happened, what you saw, and %APPDATA%\eglantine\log\eden_log.txt.
Ocarina of Time WIP (2f1668f283)
Work-in-progress Eglantine build focused on The Legend of Zelda: Ocarina of Time. Not an official release.
What's in it
- No more screen flashes in Ocarina.
- Volumetric fog and light shafts render as on the console.
- About 37–39 FPS at the Kokiri Forest spawn and 43–45 walking around (Ryzen 9 9950X3D + RTX 5090). Not 60 yet.
How to use
- Unzip anywhere and run
eglantine.exe. It uses its own data folder,%APPDATA%\eglantine, so you'll need your own keys and firmware. - If it doesn't start, install the Microsoft Visual C++ 2015–2022 Redistributable (x64).
- The first few minutes stutter while shaders compile. Judge performance after that.
- Recommended: GPU Mode Fast (Emulation > Configure > Graphics > Advanced).
What to expect
- Tested on one machine and on Ocarina only; other games may behave differently.
- See
OOT_STATE.mdfor what this build promises and what it doesn't.
Reporting problems: include your CPU and GPU, where in the game it happened, what you saw, and %APPDATA%\eglantine\log\eden_log.txt.
Ocarina of Time: playable, no crashes (2026-11-05)
The first build of this fork that plays The Legend of Zelda: Ocarina of Time (Switch 2) without crashing.
RESULT FIRST fork: changes land here once they work in game, before review. Much of the code is AI-assisted and not peer-reviewed. This is not an official Eglantine release.
- No device-lost crash after loading a save: fixed a stale buffer id left in other GPU channels.
- 40-60 FPS in Kokiri Forest on an RTX 5090 (was 37 before the readback fix, and crashed).
- Normal game speed when the frame rate dips below 60 (built-in "Real-time speed" patch, Add-Ons).
Tested on Windows 11, RTX 5090, GPU accuracy Low. AMD and Intel reports are very welcome.
Needs the Visual C++ 2015-2022 x64 runtime and your own firmware, keys and game.
What changed and why: OOT_STABLE.md. How we got here: OOT_WORKFLOW.md.
Want to help reach a locked 60? OOT_HELP_WANTED.md. Credits: CREDITS_OOT.md.
Eglantine Build 07/11/2026
Automatic daily build of nx2 at 434c07b.
Changes since the previous daily build
- Revert "buffer_cache: size native storage buffers from the mapping only in DL…" (
4bc1ede493) - pls coderabit, pls (
2814b15174) - buffer_cache: size native storage buffers from the mapping only in DLSS passes (
3c131fb692) - pls final fix (
578d88b67c) - final fixes (
97db036789) - fixes (
5016e217b8) - Update .github/workflows/release.yml (
91b74512ee) - docs: removed unnecessary docs (
21cfc42c97) - feat: implemented coderabbit suggestions (
d31066ee04) - added some todos (
97d3d9dec9) - ci: whole new ci, needs a lot of review, this is draft (
689d08400b) - buffer_cache: keep native storage bindings in one device range (
979d652d90) - yuzu, video_core: always use the game's own DLSS where it can run (
3c45b94cae) - buffer_cache: size native compute storage buffers from the mapping (
2e12e0def5) - shader_recompiler: don't require PT in UISETP bits 68-71 (
adacbaae7b) - game_list: surface the NUP display version in the tooltip (
35cde43095) - refactor: remove unused variable is_intel_anv from Device constructor (
d6efc8ef08) - test: enhance StubEnvironment with additional methods for shader testing (
4b1a1823ea) - nup_container: treat a contentless ExeFS as absent (
9279b24e4c) - ci: remove fork-only local build workflow (
d2f6956a1a) - shader: correct H0_NH1 mixed-sign half source (
662545c5b0) - shader: fix H0_NH1 mixed-sign native half source (
77952c8d8c) - core: detect NUP platform from the update ExeFS (
24c9b2b0ba) - kepler_compute: emulate tensor programs only for Donkey Kong Bananza (
fef7d2fc6c) - kepler_compute: emulate all of Donkey Kong Bananza's tensor programs (
721b189bb7) - kepler_compute: emulate tensor programs that no upscale stands in for (
3944c47805) - nx2: count the presents that return before their frame is done (
204ae115e4) - nx2: wait for each of Donkey Kong Bananza's frames (
6a22450d82) - set: correct the Polish language code (
551fa99a99) - Revert "texture_cache: finish between chunked uploads so staging memory is reused" (
179b5afb50)
Linux
The AppImage is self-contained (needs glibc 2.39 or newer: Ubuntu 24.04, Fedora 40, Debian 13, Arch): make it executable with chmod +x and run it. The tar.gz uses your system libraries, so Qt 6 and the usual libraries must be installed.
| Build Type | Standard | PGO (Recommended) | Notes |
|---|---|---|---|
| amd64 | AppImage · tar.gz | AppImage · tar.gz | |
| ARM (aarch64) | AppImage · tar.gz | AppImage · tar.gz |
Windows
Windows packages are in-place zip files: extract and run eglantine.exe, or eden-cli.exe from a terminal.
| Build Type | Standard | PGO (Recommended) | Notes |
|---|---|---|---|
| amd64 / x86_64 (MSVC) | MSVC zip | Use if you run into graphical issues on other builds | |
| amd64 / x86_64 (MinGW) | MinGW PGO zip | Built with MinGW clang; bundles its own DLLs, no Visual C++ redistributable needed |
macOS
| Build Type | Standard | PGO (Recommended) | Notes |
|---|---|---|---|
| arm64 (Apple Silicon) | zip · dmg | macOS 15 or newer. Not notarized: right-click and choose Open the first time, or run . is inside the app, in . |
The PGO builds are the same programs compiled with profile-guided optimization (clang plus Eglantine's profile); prefer them when your CPU supports it.