Difference between revisions of "Nintendo Switch emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(repositioning specs in lead)
(20 intermediate revisions by 14 users not shown)
Line 11: Line 11:
 
|emulated = {{~}}
 
|emulated = {{~}}
 
}}
 
}}
The '''[[wikipedia:Nintendo Switch|Nintendo Switch]]''' is an eighth-generation hybrid gaming console released by Nintendo on March 3, 2017 and retailed for {{Inflation|USD|299.99|2017}}. It has a Nvidia Tegra X1 SOC (System On a Chip) with 4 ARM Cortex-A57 CPUs and 4 ARM Cortex-A53 CPUs at 1.020 GHz with 4GB of RAM. It's GPU is a Nvidia GM20B. During its development, the Switch was known as the NX (short for NeXt or Nintendo "Cross") and was widely speculated up 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 emulators|Android devices]].
+
The '''[[wikipedia:Nintendo Switch|Nintendo Switch]]''' is an eighth-generation hybrid gaming console released by Nintendo on March 3, 2017 and retailed for {{Inflation|USD|299.99|2017}}. During its development, the Switch was known as the NX (short for NeXt or Nintendo "Cross") and was widely speculated up 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 emulators|Android devices]]. The Switch contains 4 ARM Cortex-A57 CPUs and 4 ARM Cortex-A53 CPUs running at 1.020 GHz with 4GB of RAM and a proprietary GPU codenamed GM20B.
  
 
While Nintendo intended to step up the security of the console, 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 important files to run and 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.
 
While Nintendo intended to step up the security of the console, 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 important files to run and 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.
Line 19: Line 19:
 
==Emulators==
 
==Emulators==
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
|+PC
 
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
! colspan="5"|PC / x86
 
|-
 
|-
 
|[[yuzu]]
 
|[[yuzu]]
|Windows, Linux
+
|align=left|{{Icon|Windows|Linux}}
 
|[https://yuzu-emu.org/downloads/ Nightly]
 
|[https://yuzu-emu.org/downloads/ Nightly]
 
|{{✓}}
 
|{{✓}}
Line 33: Line 34:
 
|-
 
|-
 
|[[Ryujinx]]
 
|[[Ryujinx]]
|Windows, Linux, macOS
+
|align=left|{{Icon|Windows|Linux|macOS}}
 
|[https://ryujinx.org/#/Build Nightly]
 
|[https://ryujinx.org/#/Build Nightly]
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
 
|-
 
|-
|[https://github.com/RKX1209/nsemu NSEmu]
+
|NSEmu
|Windows
+
|align=left|{{Icon|Windows}}
|{{✗}} (WIP)
+
|[https://github.com/RKX1209/nsemu Git]
|{{✓}}
+
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
 
|[[SphiNX]]
 
|[[SphiNX]]
|Windows
+
|align=left|{{Icon|Windows}}
 
|{{✗}} (WIP)
 
|{{✗}} (WIP)
|{{}}
+
|{{}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
 
|Mephisto
 
|Mephisto
|macOS, Linux
+
|align=left|{{Icon|Linux|macOS}}
 
|[https://github.com/reswitched/Mephisto/releases v1.2.1], [https://github.com/reswitched/Mephisto Git]
 
|[https://github.com/reswitched/Mephisto/releases v1.2.1], [https://github.com/reswitched/Mephisto Git]
|{{}}
+
|{{}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
 
|CageTheUnicorn
 
|CageTheUnicorn
|Python
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[https://github.com/reswitched/CageTheUnicorn Git]
 
|[https://github.com/reswitched/CageTheUnicorn Git]
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
!colspan="10"|Mobile
+
!colspan="10"|Mobile / ARM
 +
|-
 +
|[https://eggns.wordpress.com Egg NS]
 +
|align=left|{{Icon|Android}}
 +
|[https://drive.google.com/u/0/uc?id=15jYpgxZZKcstAqxZYg5_znDiXS41Shep&export=download 1.0.2]
 +
|{{✓}}
 +
|{{✗}}
 
|-
 
|-
 
|[https://github.com/skyline-emu/skyline Skyline]
 
|[https://github.com/skyline-emu/skyline Skyline]
|[[Android emulators|Android]]
+
|align=left|{{Icon|Android}}
 
|[https://github.com/skyline-emu/skyline/releases 0.3]
 
|[https://github.com/skyline-emu/skyline/releases 0.3]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
|-
 
|[https://github.com/Cyuubi/Lightswitch Lightswitch]
 
|[[Android emulators|Android]]
 
|[https://github.com/Cyuubi/Lightswitch/releases/tag/v0.1-alpha 0.1-alpha]
 
|{{✗}}
 
|{{✗}}
 
|-
 
|[https://github.com/Cyuubi/MonoNX MonoNX]
 
|[[Android emulators|Android]]
 
|[https://play.google.com/store/apps/details?id=com.cyuubiapps.mononx v1.1]
 
|{{✗}}
 
|{{✗}}
 
|-
 
 
|}
 
|}
;[[yuzu]]
+
 
:An open-source cross-platform emulator made by the [[Citra]] team. yuzu has seen it's development pace grow extremely fast during 2018 to the point that certains games are now fully playable.<ref>[https://yuzu-emu.org/game/ yuzu - Compatibility list] </ref> Some 2D games now show correct graphics and sometimes good speed. Some 3D games are playable but almost none is running full speed.
+
;[[yuzu]] <small class="plainlinks" style="font-weight:normal;">([https://yuzu-emu.org/game compatibility])</small>
:A lot of Nintendo Switch exclusives games are playable already but can't be considered perfect yet.<ref>[https://twitter.com/yuzuemu/status/1057781359639490560 Yuzu - Super Mario Odyssey now playable] (Oct 31, 2018)</ref><ref>[https://twitter.com/yuzuemu/status/1063573285391294465 Yuzu - Pokémon Let's Go Ingame on release day] (Nov 16, 2018)</ref>
+
:An open-source emulator made by many of [[Citra]]'s developers. It advanced so quickly the team had many games working fully in a matter of months. As it is a hard fork of Citra it shares many of its traits, namely cross-platform support and the use of OpenGL (though unlike Citra it also supports Vulkan). Top-tier hardware is required to get decent speeds in most games at the moment; many 2D games now render graphics properly and at good speeds, many 3D games are playable with some even reaching full speed, and a lot of exclusives are playable already but can't be considered perfect yet. The development team continually works to improve compatibility and accuracy, and offers builds that introduce new features early through [[Emulators on Patreon|Patreon]].
:It is known that the devs are now working on a Vulkan renderer and continually work to improve the emulator compatibility and [[Emulation Accuracy|accuracy]]. Note that top tier Hardware is required to get decent speed in most games at the moment.
+
 
;[[Ryujinx]]
+
;[[Ryujinx]] <small class="plainlinks" style="font-weight:normal;">([https://github.com/Ryujinx/Ryujinx-Games-List/issues compatibility])</small>
:An open-source public domain emulator programmed in C#. Compared to it's early days<ref>[https://m.youtube.com/watch?v=Z5rwaENaDLQ Ryujinx - This Emulators Progress is INSANE] (Jul 24, 2018)</ref>, it has now slower development than yuzu but seems to focus on full system accuracy. Most 2D games are now booting despite of confortable speeds and some 3D games are showing graphics.
+
:Another open-source emulator that's programmed in C#. Despite the differences in code, the Ryujinx team shares a lot of information with the yuzu team. Most 2D games are now booting and running at comfortable speeds and some 3D games are playable. It also supports resolution upscaling to 4K, though at a severe performance penalty.
 +
 
 
;[[SphiNX]]
 
;[[SphiNX]]
:A closed-source emulator in the work since late July/August 2018. It can boot some homebrews as well as the title screen of one commercial game. This is more a one person project for personal training at the moment.
+
:A closed-source emulator that's been in the works since late July/August 2018. It can boot some homebrews as well as the title screen of one commercial game. Seems to be a one person project for personal training more than a fully fledged community project.
 +
 
 
;Skyline
 
;Skyline
:The first attempt at an [[Android]] emulator by [https://github.com/Cyuubi/ Cyuubi], a developer known for the 3DS emulator [https://github.com/Cyuubi/LemonLime/ LemonLime]. Originally known as [https://gbatemp.net/threads/mononx-an-experimental-nintendo-switch-emulator-for-android.531427/ MonoNX] and previously called Lightswitch,Skyline replaced the project due to Xamarin framework's limitations. This new project is being written in C++ and Java using JNI.  
+
:An open-source [[Compatibility layers|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 of the original code on bare metal except for what interfaces with the rest of the system. At the moment, Skyline does not have any graphical output, but some games do boot with audio.
:This emulator actually displays no graphics at all making it useless for end-users at the moment.
+
 
 +
;Egg NS
 +
:Claimed the first spot in getting games running on Android. 81 titles are known to work, and the rest are either not working or assumed to fail. That's about it for positive things; the current version lacks any onscreen buttons, and instead forces users to purchase a specific controller. It also expects to run on a high-end device within the ballpark of a Qualcomm Snapdragon 855/855+/865/865+. Combine all that with users needing to log into their service to use the emulator, and you can imagine there was quite a controversy. The fact that it was eventually discovered to have lifted code straight from yuzu (which uses a license with [[Licensing#Definition|stronger copyleft conditions]]) did not help.
 +
 
 
==References==
 
==References==
 
<references />
 
<references />
 
   
 
   
 
 
{{Nintendo}}
 
{{Nintendo}}
  

Revision as of 22:15, 12 September 2020

Nintendo Switch
Nintendo-switch.png
Switchdocked.png
The Switch in its two forms, portable (above) and docked (below).
Developer Nintendo
Type Home video game console
Generation Eighth generation
Release date 2017
Predecessor Wii U
Emulated ~

The Nintendo Switch is an eighth-generation hybrid gaming console released by Nintendo on March 3, 2017 and retailed for $299.99. During its development, the Switch was known as the NX (short for NeXt or Nintendo "Cross") and was widely speculated up 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 and 4 ARM Cortex-A53 CPUs running at 1.020 GHz with 4GB of RAM and a proprietary GPU codenamed GM20B.

While Nintendo intended to step up the security of the console, 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 important files to run and 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". It was then revealed that members of both the Citra and Dolphin teams were already working on their own emulator in secret, followed by another developer releasing an emulator named Ryujinx.

Emulators

Name Platform(s) Latest Version Active Recommended
PC / x86
yuzu Windows Linux Nightly ~
Ryujinx Windows Linux macOS Nightly ~
NSEmu Windows Git
SphiNX Windows ✗ (WIP)
Mephisto Linux macOS v1.2.1, Git
CageTheUnicorn Windows Linux macOS FreeBSD Git
Mobile / ARM
Egg NS Android 1.0.2
Skyline Android 0.3
yuzu (compatibility)
An open-source emulator made by many of Citra's developers. It advanced so quickly the team had many games working fully in a matter of months. As it is a hard fork of Citra it shares many of its traits, namely cross-platform support and the use of OpenGL (though unlike Citra it also supports Vulkan). Top-tier hardware is required to get decent speeds in most games at the moment; many 2D games now render graphics properly and at good speeds, many 3D games are playable with some even reaching full speed, and a lot of exclusives are playable already but can't be considered perfect yet. The development team continually works to improve compatibility and accuracy, and offers builds that introduce new features early through Patreon.
Ryujinx (compatibility)
Another open-source emulator that's programmed in C#. Despite the differences in code, the Ryujinx team shares a lot of information with the yuzu team. Most 2D games are now booting and running at comfortable speeds and some 3D games are playable. It also supports resolution upscaling to 4K, though at a severe performance penalty.
SphiNX
A closed-source emulator that's been in the works since late July/August 2018. It can boot some homebrews as well as the title screen of one commercial game. Seems to be a one person project for personal training more than a fully fledged community project.
Skyline
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 of the original code on bare metal except for what interfaces with the rest of the system. At the moment, Skyline does not have any graphical output, but some games do boot with audio.
Egg NS
Claimed the first spot in getting games running on Android. 81 titles are known to work, and the rest are either not working or assumed to fail. That's about it for positive things; the current version lacks any onscreen buttons, and instead forces users to purchase a specific controller. It also expects to run on a high-end device within the ballpark of a Qualcomm Snapdragon 855/855+/865/865+. Combine all that with users needing to log into their service to use the emulator, and you can imagine there was quite a controversy. The fact that it was eventually discovered to have lifted code straight from yuzu (which uses a license with stronger copyleft conditions) did not help.

References