Built-In Dynamic FPS, Lower CPU Overhead, and AMD GPU Fixes: How Lichii nx2 (Builds 83 to 93) Accelerates Switch 2 Emulation on PC

The Legend of Zelda Ocarina of Time Remake on Nintendo Switch 2 running on PC via Lichii nx2 with built-in Dynamic FPS

Less than forty-eight hours after our initial telemetry breakdown of Zelda: Ocarina of Time hitting 60 FPS on Lichii Build 75 with a GeForce RTX 5080, the experimental open-source C++ Nintendo Switch 2 emulator has achieved a major architectural leap on PC. Between November 6 and November 7, 2026, lead developer zortos293 and several community contributors rolled out three rapid-fire revisions: Build 83 (5a50f50), Build 88 (55532f2), and Build 93 (09b78bd). Together, these updates introduce native built-in Dynamic FPS support, low-level CPU/GPU synchronization ports from the Frizti branch, and targeted Vulkan shader fixes for both NVIDIA and AMD Radeon graphics cards.

Built-In Dynamic FPS and Frizti CPU Optimizations Arrive in Build 88

When the Nintendo Switch 2 remake of The Legend of Zelda: Ocarina of Time first booted on PC, its biggest playability hurdle was rigid frame-pacing logic: whenever CPU bottlenecks dragged outdoor performance down to 20 or 29 frames per second, the entire game ran in slow motion unless users manually injected external mod files. Starting with Build 88 (merged via pull requests #194 and #240), Lichii nx2 natively bundles the Dynamic FPS mod created by developer Dark (from the upstream Eglantine project) and integrated by Frizti.

Enabled out of the box under the game's Add-Ons menu as Dynamic FPS (built-in), the patch decouples internal game speed from fluctuating frame rates while performing automatic checks for original instructions, executable padding, timer storage, and user-mod conflicts. The development team advises keeping the emulator's CPU Clock setting on Normal rather than Boost or Overclock, as altering the guest clock changes the internal timer used by the mod. Alongside Dynamic FPS, Max Resolution (built-in) was added in Build 83 (also enabled by default) to bypass the game's internal dynamic resolution scaling.

To alleviate the two-thread CPU bottleneck that previously throttled open areas like Kokiri Forest, Lichii nx2 also merged key memory and command-submission optimizations from the Frizti performance branch and the perf9 testing profile:

  • Cached Storage-Buffer Bindings: Instead of acquiring locks and walking the emulated GPU's page table on every single draw call, Lichii now caches storage-buffer (SSBO) bindings across draws as long as the underlying GPU memory mapping remains unchanged.
  • Direct Native Uniform-Bank Uploads: Rather than relying on heavy host page-protection tricks to track writes across 64 KiB constant banks every frame, the emulator copies guest uniform data directly to the host GPU on a background thread.
  • Vulkan Cache v53 and Parallel Texture Unswizzling: Native shader emission and Vulkan shader-module creation now run on bounded background workers alongside parallel texture unswizzling, while AMD FSR 3 Frame Generation (off by default) receives fixes for temporal history, motion interpolation, and descriptor retirement.

On a mid-range desktop test bench pairing an AMD Ryzen 7 5800X3D processor, an NVIDIA GeForce RTX 4070 (12 GB) graphics card, and 32 GB of DDR4-3200 CL16 RAM under Windows 11 (NVIDIA driver 621.01), side-by-side gameplay published by Games Hub Benchmarks highlights the smoother pacing achieved by the Frizti and Dynamic FPS integrations, while newer 3D V-Cache processors like the Ryzen 7 9800X3D sustain the 60 FPS target far more consistently.

AMD Ryzen 7 9800X3D (8-Core / 16-Thread Processor)

AMD Ryzen 7 9800X3D (8-Core / 16-Thread Processor)

Check latest price
  • Zen 5 architecture with 96 MB of 2nd-Gen 3D V-Cache
  • Up to 5.2 GHz Boost Clock on the AM5 (DDR5) platform
  • Engineered to handle heavy shader translation and SSBO draw calls in C++ emulation
  • Full support for Windows 11 and Linux (Ubuntu 24.04 / Fedora 40 / Arch)

Trailer video

Restored Vegetation, AMD Radeon Vulkan Fixes, and AV1 Decoding in Build 93

Beyond raw frame pacing, Build 83 and Build 93 eliminate several severe rendering bugs that previously forced testers to manually blacklist shader hashes. In Ocarina of Time, expanded read-only pointer-table bindings allow grass and vegetation shaders to properly fetch their instance data. Corrected sky-ambient buffer tracking restores outdoor lighting and color balance, fixed mesh-shader register handling removes the neon glowing doorway artifact, and an occlusion-query reset fix stops single-frame white flashes. Alongside ongoing efforts to build a native PC recompilation of Ocarina of Time without an emulator, other Switch 2 titles also benefit from these commits: invalid depth-stencil copy crashes in Star Fox are resolved, presentation pacing is corrected in Mario Kart World, and Donkey Kong Bananza now waits for its active frame by default to prevent premature buffer reuse.

Great Deku Tree 3D rendering in Zelda Ocarina of Time Switch 2 after Lichii nx2 Build 83 and Build 93 Vulkan shader fixes
Resolved shader pointer tables and sky-ambient buffer tracking in Builds 83 through 93 restore missing foliage and stabilize lighting around the Great Deku Tree.

Released late on November 6, Build 93 (09b78bd) focuses heavily on AMD Radeon shader accuracy and Vulkan synchronization thanks to contributions from mja00 (Matt Artist), jpkto, persluffy-cl, jonmakegames, Selevet, and sharkiix:

  • AMD Black-Screen and Shader Stall Fixes (PR #273 and #295): Nested-return shader handling that previously produced a black 3D viewport on AMD GPUs is fixed. On AMD's proprietary Vulkan driver, fragment shuffles now use a broadcast fallback, misaligned 64-bit and 128-bit storage-buffer accesses are split into 32-bit words, and driver optimization is selectively disabled for compute shaders EFF3CCBE1438679D and F9EA14A22394F5B1 to prevent multi-minute compilation freezes.
  • AV1 Video Decoder and Default Performance Profile (PR #284 and #314): The x86-64 AV1 decoder fix (ported by Duck912 from Eglantine #675) is now integrated into the source code for Switch 2 pre-rendered cutscenes, while fresh desktop configurations automatically seed a tuned performance profile (softer FSR 1 sharpening, Fast GPU mode, GPU video decoding, and asynchronous shader compilation).
  • Opt-In Compatibility Reporting and Known Limits (PR #303): Users can now right-click any stopped Switch 2 title and select Submit compatibility report to share verified test data on the official lichii.zortos.me portal. The developers note that outdoor atmospheric haze, isolated AMD black textures, HUD flicker, cutscene audio, and the initial Linux shader-loading stall remain under active investigation.

My Test Bench (With Chaya's Code & AI Review)

Arthur "Heimdall" (Hardware): For full transparency, we have not compiled or run a dumped copy of the game on our internal hardware test bench. From a purely hardware standpoint, what stands out across the jump from Build 75 to Build 93 is how directly these patches target the exact CPU bottleneck we highlighted during the earliest RTX 5080 benchmarks. Until the atmospheric fog shader, AV1 cutscene audio, and Vulkan synchronization on AMD Radeon GPUs are fully sorted out, the physical Nintendo Switch 2 console obviously remains the most seamless way to play. However, since my specialty is hardware testing rather than software engineering, I asked Chaya, our developer and AI specialist, to inspect the actual GitHub commits and pull requests on the nx2 branch.

Chaya's Perspective (Dev & AI): "Going through the C++ diffs across pull requests #194, #240, #273, and #295 from Frizti and zortos293 makes it immediately clear why the frame-time gains are so dramatic. At a time when plenty of open-source projects lean heavily on AI coding assistants to churn out boilerplate, the core optimization in PR #240 is the exact opposite of blind AI-generated code: replacing page-by-page memory protection on 64 KB uniform banks with a cached GPU address table invalidated solely on register writes requires a surgical understanding of low-level systems architecture. The commits are tight, clean, and free of spaghetti workarounds. It is genuinely impressive systems programming."

Follow Pro-Gamer on Discord
Get instant gaming news, hardware price alerts, and vote on new releases live with the community.
Join the Discord →
Arthur "Heimdall"
Written by Arthur "Heimdall"
⚡ Hardware Staff Writer FR & UK

PC hardware enthusiast and competitive gamer, Arthur 'Heimdall' splits his time between France and the UK working in enterprise B2B software solutions. A business school graduate passionate about component benchmarking, he has been building, modding, and tuning PCs since childhood, optimizing every thermal degree and millisecond of display latency. An avid gamer across Assassin's Creed and sandbox titles, he forged his alliance with Grimtag and Chaya during late-night World of Warcraft raids before joining Pro-Gamer.

Focus:⚡ Hardware Benchmarks & PC Modding @Allkeygames Join our Discord
All articles by Arthur →

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.