Progress Report September 2025

Commercial Games are booting

I have finally reached the significant milestone of some commercial games starting to boot in NxEmu. It is not ready for prime time yet, and it is not ready for playing your favorite Switch titles, but step by step I am getting closer to that point.

Here are a couple of examples with Sonic Mania and Mario Odyssey:

Decrypted file formats

With version 0.3, NxEmu now supports DXCI and DNSP file formats. These follow the same file format as normal XCI and NSP files, but with all encryption removed. The headers are also updated to indicate no encryption, along with a few special magic numbers changed.

Key format changes:

  • The GamecardHeader magic number changes from “HEAD” to “DXCI”.
  • The NCAHeader magic number changes from NCA3 to DNCA.
  • Encryption type fields are set to indicate no encryption
  • All encrypted content is decrypted

This makes it possible for NxEmu to load decrypted commercial games while maintaining zero decryption capabilities in the actual emulator, so it has no need for prod.keys.

UI Enhancements

Building on the Sciter-based UI introduced in 0.2, version 0.3 adds configuration options for graphics, audio, and logging (under the debug section).

A new status bar has also been added. When no game is running, it allows you to switch between OpenGL and Vulkan renderers and adjust volume levels directly.

Here’s a look at the graphics and debug configuration page:

Audio emulation

With this version, audio emulation has been added. It is based on the yuzu audio codebase, so it should provide the same level of functionality that yuzu had, including support for the cubeb and SDL2 output engines.

Here is the audio configuration page:

Whats Next

Now that commercial games are starting to boot, the next focus will be on quality-of-life features before digging deeper into compatibility and performance. These improvements are key to making NxEmu feel like a usable emulator for everyday usage.

Planned quality-of-life improvements:

  • Game browser
  • Per-game configuration options
  • Pause/resume/end emulation controls
  • Fullscreen support
  • Controller configuration
  • User Profile
  • FPS/performance display
Previous article: