NxEmu has turned a corner with this release.
The major focus this release was making Super Mario Odyssey feel good to play, along with improving the general quality of life around using the emulator.
Super Mario Odyssey
Super Mario Odyssey runs nicely on my computer and is genuinely playable. I played from the start through to the Sand Kingdom.





Mario Kart 8 Deluxe
In the last version, Mario Kart 8 Deluxe crashed because OpenRomFS wrapped an invalid file object instead of returning nullptr when open failed. Fixing that allowed the game to boot.
From there, the next blocker was Mii selection, which required firmware installation support to be in place.



Emulator core
Fast memory: Fast memory is a direct-memory-path optimization for the CPU JIT. It lowers CPU overhead by letting common memory accesses go directly through a mapped RAM pointer instead of the slower generic memory path.
It had been disabled because out-of-bounds accesses correctly raised an exception, but the exception handling path was corrupting the emulator state. After digging into it, I found that the generated code expected stack shadow space to exist. Since that space was missing, accessing the location where shadow space should have been ended up touching real stack memory instead, corrupting the emulation. Adding the required shadow space fixed the issue, so fast memory is now enabled.
CPU: Most of the CPU work this release focused on tightening up the 64-bit Dynarmic path and improving fault handling. I cleaned up JIT lifecycle/ownership and parts of the exclusive monitor path to make CPU behavior more consistent under load.
Exception handling was also reworked so expected wait/yield-style exceptions no longer trigger hard debug breaks, while real faults now produce better diagnostics and cleaner halt behavior. I also added a dedicated prefetch-abort halt reason, which helps stop bad instruction fetch paths more predictably instead of cascading into harder-to-debug failures.
GPU: The GPU work this release focused on stability and reducing bad state carry-over. Shader cache is now working, which helps reduce stalls by reusing shaders that were already generated in a previous run instead of rebuilding them again. I also fixed DMA pusher handling so it stops correctly when the GPU is no longer powered on, making shutdown behavior cleaner.
There was also structural cleanup in the GPU stack, including guest-memory and video-core decoupling work, to reduce cross-module dependencies and make the rendering path easier to maintain going forward.
Quality of life
This release includes a lot of quality-of-life improvements, mostly thanks to Stardust:
- A new loading screen.
- Better input UX, including controller visual updates, motion UI updates, and clearer button-state feedback.
- Configurable hotkeys.
- Fullscreen support, resize presets, and options to hide or show UI elements.
- More polished notifications and prompts, including a more consistent visual style and notifications when emulation closes.
- Firmware installation from folders, ZIP files, and decrypted XCI files (DXCI).
- Cleaner status bar information, including firmware version and FPS display.
- Pause and resume support.
- Portable mode as the default setup for ZIP builds.
- An About window.
- plus lots more little adjustments
Community and Media
I have added a new Community and Media page to the website to keep track of NxEmu coverage.
If you have covered NxEmu, let us know by contacting n3xox1 on Discord.
What’s Next
Now that Super Mario Odyssey runs nicely, the next major focus is setting up compatibility tracking and reporting so the community can help identify what works and what does not.
There is a real limit to how much I can test myself. To test a game, I need to own it first, and my Switch game collection is small: around a dozen titles in total.
Beyond compatibility, here are some things on my to-do list that I would like to see added in the future:
- DLC installation support
- Per-game configuration
- Cheat support
- Multi-language support
NxEmu