nxnative documentation
The project's own documentation, republished here so it is easy to browse and search. For the newest version, check the official repository.
Playing
Controls, saves, settings and front ends for people who just want to play.
PlayingHow to build and install a game: README.SettingsThe screen before the game starts shows the settings the game supports. A setting that only matters while another is...Front endsA graphical app that packs games, keeps a library of them or starts them is a project of its own that builds on nxnat...
Developing
Build system, game profiles and how to contribute.
DevelopmentThe README covers packing and playing. This page is for working on nxnative itself: how it is built, the script's opt...ContributingIssues and pull requests are welcome. This page says how a change gets in; what the code does and where things are is...Game profilesEach game the port knows has a folder dm/games//, named after the base game's title ID: Mario's is 010015100B514000...Geometry shader support on Metal 4Research and implementation checked on 2026-10-23 against Apple documentation, the installed Xcode SDK, this worktree...
Reference
How each subsystem works: audio, rendering, shaders, memory, threads and more.
Subsystem referencesHow the host meets each part of a Switch game, and every failure met so far, one entry per mechanism: symptom, cause...AudioThe audio renderer (dm/host/hleaudren.c), AudioOut, audio devices and codecs. Each entry: symptom, cause, fix, the ga...Cheats on a SwitchHow cheat codes work on a Switch running Atmosphère, read from Atmosphère's own source and documentation (tag 1.12.1...Frame rateFrame pacing: the host's frame step, engine frame limiters, present intervals and display rates. Each entry: symptom...Game stateThe games' own state: saves, scripted state, and behaviour that looks like a host bug but is not. Each entry: symptom...Memory and address spaceThe guest address space, heaps, pools, virtual address memory and the allocators games bring. Each entry: symptom, ca...MoviesThe SDK's movie library (movie::Decoder, movie::Extractor), which the host takes over in dm/host/hlemovie.c, and the...NVN objectsNVN object layouts, memory pools, command memory, queues, syncs and entry points (dm/gfx/nvn/hlenvn.c). Each entry: s...PackingRenderingThe replay on Metal (dm/gfx/nvn/nvnmtl.m) and the Vulkan and OpenGL layers. Each entry: symptom, cause, fix, the game...RewriterThe NSO rewriter (dm/tools/patchnso.py) and its per-build tables (dm/tools/sdkpatches.py, a profile's patches.py). Ea...Services and SDK callsSDK calls and system services the host answers (dm/host/hle.c). Each entry: symptom, cause, fix, the games it was fou...ShadersFinding, keying and translating shaders (dm/gfx/tools/shadersplit.py, dmshbuild.py, dmshxlate, Program.cs) and their...ThreadsGuest threads, their synchronization and how the host schedules them. Each entry: symptom, cause, fix, the games it w...