Nintendo Switch emulators

From Emulation General Wiki
Jump to navigation Jump to search
Nintendo Switch
Top: Console in "Handheld mode" with Joy-Con attached
Bottom: Console in "TV mode" with Joy-Con attached to a grip and the main unit docked
Developer Nintendo PTD
Manufacturer Foxconn, Hosiden
Type Hybrid video game console
Generation Eighth / Ninth
Release date Original: March 3, 2017
Lite: September 20, 2019
OLED: October 10, 2021
Discontinued EU: February 2027
Predecessor Nintendo 3DS
Wii U
Successor Nintendo Switch 2
Emulated
For emulators that run on the Nintendo Switch, see Emulators on Nintendo Switch.

The Nintendo Switch is an eighth-generation hybrid gaming console released by Nintendo on March 3, 2017, and retailed for $299.99 ($394 in 2026). During its development, the Switch was known as the NX (short for NeXt or Nintendo "Cross") and was widely speculated upon until its announcement. Aside from specialized components unique to the console, the hardware is more or less off-the-shelf, being built around a semi-custom variant of NVIDIA's Tegra X1 system-on-a-chip, which was also used on a number of Android devices. The Switch contains 4 ARM Cortex-A57 CPUs running at 1.02 GHz with 4 GB of RAM and a proprietary NVIDIA GPU codenamed GM20B. The Tegra X1 SoC itself also has 4 ARM Cortex-A53 CPUs, however, these are unused on the Switch, and are disabled in hardware on the later Mariko units.

While Nintendo intended to step up the console's security, vulnerabilities were still found early on that allowed tons of system files to be dumped, including dumps of games in the form of romfs.istorage archives, an exefs folder, and license files. These game dumps eventually got shared online by scene groups except for their licenses but were missing essential files to run. Even if they had been completed, there were no custom homebrew apps, let alone solutions to load unofficial game dumps for the system. A number of prominent hacking teams (starting with shuffle2 and fail0verflow in collaboration) all came across a new exploit independently of each other that allowed complete control over the system, later officially recognized by NVIDIA as CVE-2018-6242.

A "debugging emulator" for the Nintendo Switch, CageTheUnicorn (now Mephisto), popped up not long after the first components were dumped. It was designed to emulate sysmodules with "no support for graphics, sound, input, or any kind of even remotely performant processing […] by design." A couple of months later, members of both the Citra and Dolphin teams announced the release of their own emulator written in C++, which was capable of booting some homebrew applications; within a couple of weeks, yet another emulator named Ryujinx, written in C# by developer gdkchan, was released showing successful booting of commercial Switch games Puyo Puyo Tetris and Sonic Mania.

On May 7, 2024, Shuntaro Furukawa, president of Nintendo, officially announced that the company would reveal information about the Nintendo Switch successor within their current fiscal year. Nintendo Switch backwards compatibility would be later confirmed by Nintendo themselves on the Nintendo Switch 2 on November 5, 2024; including support for the Nintendo Switch Online service and its emulation apps.

Emulators

[edit | edit source]
Before editing, review the Getting involved and Recommended pages. See system requirements page for performance demand of the emulators.
See tables for enhancements, hardware features and peripherals.
For more details such as licensing, programming language, emulation method, visit each emulator’s dedicated page.
Name Platform(s) Latest version Active License Compatibility Recommended
PC
yuzu-based Citron NEO Windows Linux Linux ARM stable release
official nightly builds
GPLv3 93.48%
43 out of 46 reported titles
Eden Windows Linux Linux ARM macOS macOS FreeBSD Windows on ARM
Solaris OpenBSD
Haiku NetBSD DragonFlyBSD MidnightBSD
stable release

official nightly builds

GPLv3 53.79%
1469 out of 2731 reported titles
Citron Windows Linux Linux ARM Windows on ARM git GPLv3
Sudachi Windows Linux macOS ? GPLv3
Suyu Windows Linux macOS v0.0.3 GPLv3
Torzu Windows Linux macOS git (Dark Git) GPLv3
yuzu Windows Linux Pineapple EA builds (archived) (obsolete)[n 1] [n 1] GPLv3 (Copyleft)
Ryujinx-based Ryujinx Windows Linux Linux ARM macOS macOS 1.1.1403 (obsolete)[n 2] [n 2] MIT (Permissive) 81.82%
3573 out of 4367 reported titles
Ryubing Windows Linux macOS stable release

canary release

MIT 78.17%
2765 out of 3537 reported titles
Kenji-NX Windows Linux macOS 2.0.5 MIT
Ryujinx Mirror Windows Linux macOS git
Windows build requires OpenAL
MIT
Ryujinx Classic Windows Linux macOS git MIT !
Astris macOS 1.0.16 MIT !
Hydra macOS 0.4.2 GPLv3 ? WIP
NxEmu Windows 0.1.0.59-17dfe18

git

? ? WIP
Pound Windows Linux macOS v0.0.0 (pre-release) ~[n 3] GPLv2 (Copyleft) N/A WIP
CageTheUnicorn Windows Linux macOS FreeBSD git ISC (Permissive) ?
Mephisto Linux macOS git GPLv2 (Copyleft) ?
NSEmu Windows git GPLv3 (Copyleft) ?
Mobile
yuzu-based Citron NEO Android stable release
official nightly builds
GPLv3 ?
Eden Android stable release GPLv3 ?
Pomelo iOS Official Site
git
GPLv3 63.97%
87 out of 136 reported titles
Citron Android git GPLv3 ?
Sudachi Android ? GPLv3 ?
Suyu Android v0.0.3 GPLv3 ?
Torzu Android git (Dark Git) GPLv3 ?
yuzu Android iOS yuzu forks (recommended)
yuzu GitHub (archived) (obsolete)[n 1]
[n 1] GPLv3 (Copyleft) Reddit link
Ryujinx-based Kenji-NX Android 2.1.0-pr.2 MIT ?
MeloNX iOS 2.3.1 MIT (Copyleft) ?
Ryujinx Android iOS 1.1.1403 (obsolete)[n 2] [n 2] MIT (Permissive) ?
DamonSwitch Android 1.0Preview Proprietary
(stolen yuzu code)
N/A
Egg NS Android 4.0.5 Proprietary
(stolen yuzu code)
78%
172 out of 220 reported titles
  1. 1.0 1.1 1.2 1.3 Official yuzu downloads have been taken down due to the Nintendo Lawsuit, using the actively developed yuzu forks recommended from now on.
  2. 2.0 2.1 2.2 2.3 Official Ryujinx downloads have been taken down due to the agreement to stop working on the project, using the actively developed Ryujinx forks recommended from now on.
  3. Pound development is currently paused as development has "fully shifted to creating a new arm recompiler from the ground up."

Compatibility layers (...)

[edit | edit source]
Name Platform(s) Latest Version Active License Compatibility Recommended
Mobile
Skyline Android Edge 69 MPL 2.0 (Copyleft) ?
Strato Android git GPLv3 (Copyleft) 4%
58 out of 1426 reported titles
Console
nnCompat Switch 2 21.2.0 Proprietary 98%

Emulation-focused Linux distros (...)

[edit | edit source]
Name Platform(s) Latest Version Active License Compatibility Recommended
PC
Horizon Linux Linux ARM git GPLv2 (Copyleft) ?

Comparisons

[edit | edit source]
For more information about Ryujinx forks, see Ryujinx#Forks.
For more information about yuzu forks, see yuzu#Forks.
Emulators
Ryujinx
An open-source hybrid approach emulator that is programmed in C#. Unlike yuzu, Ryujinx doesn't offer packaged early-access builds. However, work-in-progress features can still be tested by building locally from unmerged pull requests. Separately, Ryujinx has a closed source LDN-enabled build and there is a feature tracker for this LDN build for upstreaming. As of August 2022, Vulkan API support is available. While Ryujinx is notable for its focus on compatibility and accuracy, users often experience more shader stuttering compared to yuzu and its forks. Ryujinx also has support for ARM64 Linux and macOS, and it uses an alternative approach to yuzu's NCE for improving performance when emulating on ARM systems.
On October 1, 2024, Ryujinx GitHub and its repository were taken down. Shortly after this happened, the Ryujinx team announced that gdkchan was contacted by Nintendo and offered an agreement to stop working on the project and remove all related assets he was in control of. However, the community quickly responded with the creation of mirrors and forks. Currently, various notable active projects have emerged, see Ryujinx#Forks section for more information.
yuzu
An open-source HLE approach emulator made by many of Citra's developers. As it was a hard fork of Citra, it shared many of its traits, namely cross-platform support and the use of OpenGL and Vulkan. yuzu offered early access pre-compiled builds to its $5/month Patreon supporters, allowing them to try out new features before they're available in the main build. Because of this, many people assumed the emulator was strictly closed and paywalled, however, the source code for many of these new features was always publicly available and could even be compiled by anyone. Because of this, some users went as far as to publicly share their own unofficial "early access" builds. One of yuzu's notable features was its decreased shader stuttering compared to Ryujinx, making it ideal for weaker PCs. yuzu also had both a free and paid version on Android which later saw greater improvements thanks to their implementation of Native Code Execution (NCE) and other fixes. Their Device Mapping & SMMU implementation also further helped reduce yuzu's memory footprint and allow possible future optimizations. There were even more optimizations exclusive to the Linux-x86 and Android platforms thanks to "MADV_REMOVE", but despite all the optimizations and improvements, only high-end devices are recommended for the Android platform. In yuzu's last progress report for January 2024, they highlighted ongoing work on "multiprocess" and "services", which is crucial progress towards emulating applets and system functions like some hardware features. Further development would have been required before it could be considered fully implemented.
On March 4th 2024, a lawsuit was filed by Nintendo against Tropic Haze LLC (aka yuzu), which has led to their decision to cease all development and official distribution of yuzu and Citra. Fortunately, it is straightforward to find an archive of the latest version (EA-4176), and its work is likely to be continued by other developers. The community has quickly responded with the creation of mirrors and forks, see the Yuzu#Forks section for more information.
Egg NS
Similarly to DamonPS2, it is a closed-source, payware/malware emulator only for Android. It is NOT recommended to use this emulator because there is significant controversy surrounding this emulator for the following reasons: touch controls require an expensive monthly membership to use, it expects to run on a high-end/flagship device within the ballpark of a Qualcomm Snapdragon 8xx and 8 Gen 1, and it was discovered to have violated GPLv2 licensing requirements by illegally stealing code from yuzu and Skyline. Happy Chick is also a code-stolen emulator by this company. Its icon is edited from Happy Chick with Adobe Photoshop. Its real headquarters location is in mainland China.
Hydra
Hydra is an experimental Nintendo Switch emulator. The emulator is still in very early stages. A few homebrew apps work perfectly, and some official games get in-game with various degrees of playability.
DamonSwitch
Developed by DamonPS2 team. Closed-source, payware/malware emulator for Android only, known to steal code from other emulators. Even worse compatibility than Egg NS, it can barely run anything. It is NOT recommended to use this emulator. Damon company edited the yuzu icon with Adobe Photoshop for its own use. Its real headquarters location is in mainland China.
SphiNX
SphiNX is an inactive closed-source Switch emulator. The emulator was a work in progress project, but as of now, there are no public releases.
Pound
Early-stage Nintendo Switch emulator that will also emulate the Switch 2.
Compatibility layers
Skyline
Skyline (formerly MonoNX and Lightswitch) is a free compatibility layer for the Nintendo Switch that runs on Android and is written in C++ and Kotlin. Unfortunately, development of Skyline ceased in May 2023.
Strato
A fork of Skyline that continues from where that project left off. It is an open-source compatibility layer for ARMv8 Android devices. For the sake of convenience, the team bills the app as an emulator, but it functionally works like Wine, running almost all the entire original code on bare metal except for what interfaces with the rest of the system. Some titles can go in-game with poor framerate and minor glitches, but the Skyline team has done great work making 3D games, such as The Legend of Zelda: Breath of the Wild, have graphical output, boosting FPS in many titles, and fixing bugs in games. In March 2024, lead developer "Lynx" announced departure from the project and decided to step away from console emulation development. The project was then handed over to the other developers.
Nintendo Switch 2 compatibility mode (nnCompat)
Nintendo Switch 2 contains a compatibility layer called nnCompat[1] for running Nintendo Switch titles. Not all titles are compatible with the system, with certain ones being unable to boot or having glitches. Markedly, Nintendo Labo Toy-Con 04: VR Kit is noted as incompatible with Nintendo Switch 2 due to the system and Joy-Con 2 controllers having bigger dimensions than the original system and Joy-Cons; however, unlike other incompatible titles, the system does not prevent you from running VR Kit. Certain streaming apps such as Abema (Japan), niconico (Japan), Hulu (Japan and United States), Crunchyroll (Americas and Europe) and InkyPen (Americas and Europe) are also not compatible with Nintendo Switch 2.[2]
Emulation-focused Linux distros
Horizon Linux
Horizon Linux is an open-source ARM64 Linux modified to run Nintendo Switch applications with hypervised CPU & IO, but still mostly relying on yuzu code in its Mizu shim to emulate functions such as the GPU. Puyo Puyo Tetris is semi-playable with audio output, and the emulator can also run several homebrew applications.

Enhancements

[edit | edit source]
Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages.
Name Eden Ryubing
Controls Disguise peripheral support through passthrough
Tricking the software into think that the original controller was connected even those identify themselves with different device IDs. When a game tries to identify a connected 'nearly the same internally' controller, emulator will tell it that the equivalent original controller is connected instead, allowing it to work.
? ?
Input lag mitigating
Mouse injector ~
Currently requires Cheat Engine to work.
Real peripheral support (passthrough)
Ability to passthrough USB HID devices or Bluetooth adapter for emulated system.
? ?
Turbo button ? ?
Graphics Pre-rendering anti-aliasing
(SSAA, MSAA)
Ray tracing
(DXR, VRT and MRT)
Implementing ray tracing in an emulator is unfortunately quite challenging and unlikely to be possible soon. However, you can try "Screen-Space Ray Traced Global Illumination" shader using ReShade. (Demonstration)
Resizable internal resolution
RTX Remix Implementing RTX Remix technology in an emulator is unfortunately quite challenging and unlikely to be possible soon. Besides, yuzu and Ryujinx already support some of RTX Remix features. On top of that, you can use ReShade for post-processing.
Super resolution
(FSR, DLSS, and XeSS)
Requires access to the depth buffer and temporal data like motion-vectors, so it is quite challenging and unlikely to be possible soon. See this for Citron's FSR 2 implementation.
Texture replacement ~ ~
According to a Progress Report from April 2023, texture replacement, along with all the Patreon goal features that have been previously met will be finished and delivered. Implement texture replacement support for Ryujinx.
Ultra-widescreen hack
Widescreen is already supported on Nintendo Switch. But there is no support by system for render games in other ratios such as 16:10, 21:9, or 32:9.
Performance Frame generation technologies
(LSFG, DLSS-FG and SM, XeSS-FG, AFMF and FSR FG)
Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be possible soon, however post-processing techniques such as motion interpolation is quite possible. Input latency will be a crucial factor, but its impact likely varies depending on the specific technique used, it is recommended to use after applying the "Internal Framerate Hack". While AFMF or LSFG can be used, please be aware that some visual glitches and artifacts may occur at this time. See here and here. If you have a compatible GPU, you can also use Nvidia's Smooth Motion, see here.
Internal frame rate hack
Overclock
Preload ROM image to RAM
For users with sluggish multi-platter HDDs or plagued by horrible seek times, this enhancement might offer smoother experience, potentially reduced power consumption; it also shines when images reside on a network drive. Although keep in mind that preloading image would take some time, and it will require additional amount of RAM capacity.

There is no Preload image to RAM implementation for Ryujinx, but it has a kind of similar enhancement called "Profiled Persistent Translation Cache."
Rendering latency reduction technologies
(LatencyFleX, Reflex, Xe-LL and Anti-Lag+)
While most emulators offer frame pacing or framebuffer latency control options, implementing rendering latency reduction technologies like NVIDIA's Reflex SDK isn't currently possible. This is due to a combination of factors, including potential licensing issues and likely doesn't offer enough benefits to justify the development effort.
Post-processing AI-powered filter compatible
(Freestyle)
?
Filters
Inverse tone mapping *
Post-rendering anti-aliasing
(FXAA, TXAA and MLAA/SMAA)
Post-rendering scaling
(Sharp bilinear, Lanczos and FSR 1) FSR 1 is already supported on Nintendo Switch.
Shader chain
Quality of life Automatic emulated controller connect/disconnect
Automatically connects or disconnects emulated controllers when a new or current controller is connected or disconnected.
Automatic updater ? ?
Big Picture Mode
Built-in cheat manager ~[n 1]
Built-in custom resolution/CRTSwitchRes
For using this on Windows, you need CRT Emudriver.
Another option is using EDID editor tool such as "Custom Resolution Utility".
N/A
Eighth gen home consoles and beyond only have digital video output anyway.
Built-in mod editor and manager ~[n 1]
Built-in patch manager ~[n 1]
Built-in save manager
Command-line options
On-screen display
Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.
Pause/Resume emulation
Per-game profiles
Portable and stealth
Useful enhancement feature for non-personal computer use or plug-and-play scenarios. However, the software may still require the necessary prerequisites and dependencies for your operating system if it is not statically linked.
Streamable compression format ~[n 2] ~[n 2]
Variable refresh rate
TAS features Fast forward/Turbo speed ~
Macros/Scripts/Lua
Movie recording/playback
Save states
Rewind
Misc. Debug features
EmuVR support Exclusive to libretro cores. So there is no support at the moment.
Free Look
Free Look is an enhancement feature that allows manipulation of the in-game camera.
~[n 3] ~[n 3]
RetroAchievements
Rich Presence (RPC)
Allows the emulator to share real-time game session details (e.g., current game title, level, boss, playtime, or custom status) with external applications. This enables features such as displaying what you're playing on your profile, inviting friends to spectate, or triggering join-in-progress functionality where supported.
? ?
Screen translator
Using optical character recognition (OCR) and other techniques, this feature can provide live translation of in-game text, text-to-speech for visually impaired users, and more — either on demand or automatically.
You can use RetroArch's AI Service or the standalone offline bquenin's Interpreter.
  1. 1.0 1.1 1.2 yuzu or suyu has no dedicated interface like Ryujinx. All the cheats, updates, DLCs and mods in the Title Properties→Add-Ons column. See feature request for this.
  2. 2.0 2.1 There is a pull request for adding trimming XCI files feature to Ryujinx. It is notable that Ryujinx allows loading .NSP files for both updates and DLCs directly, without installing them to the NAND. In contrast, yuzu requires installation of these files to the NAND. Although as mentioned in the Save_disk_space_for_ISOs#Switch section, you can use NSC_Builder for merge the game base, update and DLCs on a single NSP or XCI file, yuzu and its forks support this single but multi content file. Also see overview of formats here.
  3. 3.0 3.1 Have to be done on a per-game basis as the yuzu or Ryujinx didn't have a "Camera" feature like the Dolphin emulator at the moment, so look for game mods like TOTK-UltraCam.

Hardware features and peripherals

[edit | edit source]
Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages.
Name Eden Ryubing
Hardware features Connectivity Ethernet
Nintendo Switch Online
Smart Device Mode and Nintendo Switch Online App ?
Wi-Fi GameShare
Can only be used as a receptor (slave) from a Nintendo Switch 2 (master) in select games.
Local wireless ~ ~
Online ? ?
Joy-Cons HD Rumble ~
IR motion camera (Joy-Con R)
Motion sensors
NFC ? ?
microSD card
System software HOME Menu
Mii Editor
Nintendo Classics and Sega Genesis titles
Touchscreen
Peripherals Amiibo
Controllers[n 1] Dual Joy-Cons and Pro Controller ~
Only possible with 'BetterJoy' at the moment.
NES/Famicom controllers ?
Genesis Control Pad ? ?
Nintendo 64 controller (Switch version)
Used to play Nintendo 64 games available via Nintendo Classics. Has Home and Capture button functionality unavailable on the original N64 + built-in rumble support without needing the Rumble Pak.
? ?
Poké Ball Plus ?
Ring-Con
Single Joy-Con Horizontal ? ?
Vertical ? ?
SNES controller ?
Taiko no Tatsujin Drum Controller ? ?
Nintendo Labo ? ~[n 2]
Starlink: Battle for Atlas toys-to-life elements ? ?
USB GameCube controller adapter
Headset ? ?
Keyboard ~
Mouse ?
Wii U microphone (wired & wireless) ? ?
Misc. Battery ? ?
Cloud-based titles[n 3]

HOME Menu

[edit | edit source]
HOME Menu overview
  • Eden supports the HOME Menu, also allows you to launch .NSP games directly from the emulated HOME Menu. Simply add your games via Eden’s Qt interface, boot into the HOME Menu, and launch them as you would on real hardware. Set a dedicated HOME Menu hotkey in Qt Controls for quick toggling between games and the menu.
  • Sudachi included Home Menu support, but then this feature was removed from the graphical user interface until 1.0.10. Random crashes can occur during HOME Menu navigation (e.g., when moving between menus or scrolling).

Connectivity

[edit | edit source]
XLink Kai - Nintendo Switch setup guide

Nintendo Switch Local play games are divided into two groups; games with Local Wireless support, and games with LAN support. There are different requirements and rules for the two types. The difference is that Local Wireless is ad-hoc Wi-Fi between Switch radios. LAN is when the switches are joined to the same Wi-Fi access point.

See Switch 2 connectivity section for new 'GameShare' feature.

Local Wireless Play/LDN
Local Wireless games are a bit more restricted but the following can play games together:
LAN Play
LAN games are the most widely supported, and the following can play games together:
  • Players using unmodified "OFW" Nintendo Switch and Nintendo Switch Lite systems.
  • Players using modified "CFW" Nintendo Switch systems.
  • Players using Ryujinx or yuzu

So in summary, it is possible to play on the same network and LAN multiplayer over the internet with programs like XLink Kai, see XLink Kai's setup guides for Ryujinx and yuzu, also see LAN Tunneling programs for more information.

Nintendo Switch Online
Main article: Nintendo Switch Online

For more information about other revive projects see Preservation projects page. You can play some of the online multiplayer capable Switch titles using revival private servers.

NSO emulators

[edit | edit source]

For the Nintendo Switch family of systems, Nintendo distributes retro games to subscribers of their Nintendo Switch Online service. Subscribers have access to games for the Nintendo Entertainment System (NES), Super Nintendo Entertainment System (SNES), Game Boy (GB) and Game Boy Color (GBC). At the more expensive subscription tier, titled "Expansion Pack," players can also access Nintendo 64, Sega Genesis, and Game Boy Advance (GBA) games.

References

[edit | edit source]

Nintendo(edit)