Difference between pages "Nintendo 3DS emulators" and "Nintendo Switch emulators"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
 
(Emulators)
 
Line 1: Line 1:
 
{{Infobox console
 
{{Infobox console
|title = Nintendo 3DS
+
|title = Nintendo Switch
|logo = 3ds.png
+
|image = nintendo-switch.png
 +
|image2 = switchdocked.png
 +
|imagecaption = The Switch in its two forms, portable (above) and docked (below).
 
|developer = [[:Nintendo]]
 
|developer = [[:Nintendo]]
|type = [[:Category:Handheld consoles|Handheld game console]]
+
|type = [[:Category:Hybrid consoles|Hybrid video game console]]
 
|generation = [[:Category:Eighth-generation video game consoles|Eighth generation]]
 
|generation = [[:Category:Eighth-generation video game consoles|Eighth generation]]
|release = 2011
+
|release = 2017
|discontinued = 2020
+
|predecessor = [[Wii U emulators|Wii U]]
|predecessor = [[Nintendo DSi emulators|Nintendo DSi]]
 
 
|emulated = {{✓}}
 
|emulated = {{✓}}
 
}}
 
}}
  
The '''[[wikipedia:Nintendo 3DS|Nintendo 3DS]]''' is an eighth-generation handheld game console by Nintendo, released on March 27, 2011 for {{inflation|USD|249|2011}}. The original model and the 2DS had a dual-core ARM11 MPCore at 268 MHz and a single-core ARM9, 128MB of RAM and 6MB of VRAM, and a DMP PICA200 GPU. The New 3DS and New 2DS XL models upgrade this to an 804 MHz quad-core ARM11 and 256MB of RAM, along with an extra pair of shoulder buttons and a right analogue stick.
+
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.
  
The most notable feature of this console is the use of [https://en.wikipedia.org/wiki/Autostereoscopy autostereoscopic] (glasses-free) 3D, which can be configured using a slider. This was omitted on the cost-reduced 2DS and New 2DS XL models, which was released due to eye health concerns with children whom Nintendo advised not to use the 3DS's stereoscopic mode (though it is speculated that said advisories were more for liability reasons in case of a health-related lawsuit).
+
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.
  
__TOC__
+
A "debugging emulator" for the Nintendo Switch, CageTheUnicorn (now [https://github.com/reswitched/Mephisto 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 [[yuzu|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.
  
 
==Emulators==
 
==Emulators==
Line 22: Line 23:
 
! scope="col"|Platform(s)
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
! scope="col"|Open-Source
+
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
! scope="col"|[[libretro|Libretro Core]]
 
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
!colspan="7"|PC / x86
+
! colspan="6"|PC / x86
 
|-
 
|-
|[[Citra]]
+
|[[yuzu]]
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux}}
|[https://citra-emu.org/download Nightly]
+
|[https://yuzu-emu.org/downloads Nightly][https://github.com/yuzu-emu/yuzu git]
|{{✓}}
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|Corgi3DS
+
|[[Ryujinx]]
 
|align=left|{{Icon|Windows|Linux|macOS}}
 
|align=left|{{Icon|Windows|Linux|macOS}}
|[https://github.com/PSI-Rockin/Corgi3DS git]
+
|[https://ryujinx.org/#/Build Nightly][https://github.com/Ryujinx/Ryujinx git]
 +
|{{✓}}
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
|[[3dmoo]]
+
|NSEmu
|align=left|{{Icon|Windows|Linux}}
+
|align=left|{{Icon|Windows}}
|[https://github.com/plutooo/3dmoo git]
+
|[https://github.com/RKX1209/nsemu git]
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|[[TronDS]]
+
|Mephisto
|align=left|{{Icon|Windows|Linux}}
+
|align=left|{{Icon|Linux|macOS}}
|[http://trondsemu.byethost15.com/downloads.html 1.0.0.5]
+
|[https://github.com/reswitched/Mephisto/releases git]
|{{✗}}
+
|{{}}
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
|LemonLime
+
|CageTheUnicorn
|align=left|{{Icon|Windows|Linux|macOS}}
+
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
|[https://github.com/Cyuubi/LemonLime/ git]
+
|[https://github.com/reswitched/CageTheUnicorn git]
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
!colspan="9"|Mobile / ARM
+
!colspan="10"|Mobile / ARM
 
|-
 
|-
|[[Citra]]
+
|[[Skyline]]
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://play.google.com/store/apps/details?id=org.citra.citra_emu Beta 15]<br/>[https://github.com/citra-emu/citra-android git]
+
|[https://github.com/skyline-emu/skyline/releases git]
 
|{{✓}}
 
|{{✓}}
|{{✗}}
 
 
|{{✓}}
 
|{{✓}}
|{{~}}
+
|{{}}<small> (WIP)</small>
 
|-
 
|-
|[[Citra_MMJ_(Unofficial)|Citra-MMJ]]
+
|[https://eggns.wordpress.com Egg NS]
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://github.com/weihuoya/citra/releases git]
+
|[https://drive.google.com/file/d/1RygOcWDULuwoGSORDrtCXHHof1KoldKO/view 2.1.6 Beta 5]
|{{}}
+
|{{}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
|{{~}}
 
 
|}
 
|}
  
===Comparisons===
+
;[[yuzu]] <small class="plainlinks" style="font-weight:normal;">([https://yuzu-emu.org/game compatibility])</small>
;[[Citra]]:An open-source Nintendo 3DS emulator made by experienced emulator developers. The devs insist that it's still experimental, but as of mid-2019 around half of all games are fully playable with minor or no issues.  [https://citra-emu.org/entry/announcing-citra-android/ An official Android version was released in May of 2020].
+
:An open-source emulator made by many of [[Citra]]'s developers. 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). Many 2D games now render graphics properly and at good speeds; many 3D games are playable. This emulator currently offers early access builds to $5/month [[Emulators on Patreon|Patreon]] subscribers which allows them to utilize new features prior to their eventual release on the mainline build. One of yuzu's notable features is its disk-based shader cache for OpenGL, negating the need to compile shaders on the fly on every boot. Resolution scaler was disabled some time ago due to bugs, but in July 2021 work on reimplementing resolution scaler has started.
 
 
;[[3dmoo]]:Another open-source Nintendo 3DS emulator, made by experienced developers in the DS hacking scene. It was released shortly after Citra and received similar progress for a few months, but was eventually aborted by its authors after a while.
 
;[[TronDS]]:A closed-source Nintendo 3DS emulator, presumably made by the iDeaS author. Little is known about it other than that it can run simple homebrew. It cannot be used for playing games.
 
 
 
;Corgi3DS:An unique 3DS emulator designed for macOS systems. Its GitHub activity started on [https://github.com/PSI-Rockin/Corgi3DS/commit/1b81c7e00c9a7a73f2da12d07ec3a9e4bc69c6ac May 5, 2019]. Main programmer is a self-proclaimed dog lover and has previously created CorgiDS and DobieStation, though the former seemed to be abandoned. Corgi3DS is mainly indigenous but the preliminary [https://github.com/PSI-Rockin/Corgi3DS/commit/a60b06683495e4e8fd0c170ec4ca8c453ce31609 Wi-Fi code] was ported from [[melonDS]]' code.(project on a  indefinite hiatus, PSI said this about the matter "Haven't worked on it in several months, it's basically a hobby project of mine that I touch when I feel the urge").
 
 
 
==Emulation issues==
 
Citra currently can't emulate any of the 3DS's online features aside from LAN multiplayer. It can't connect to Nintendo's servers but users can create rooms and play through the internet.
 
 
 
Corgi3ds currently can't run any game without heavy stuttering.
 
 
 
Citra emulates the home menu although you can't launch anything on it.
 
 
 
==Game images==
 
===3DS vs. CIA===
 
<!--this section is pretty inaccurate-->
 
There are two big types of 3DS game images currently:
 
;NCSD-type: Includes '''.CCI''' (CTR Cart Image), aka '''.3DS''' - data on physical carts, can be executed right off the bat, not used much since no one bothered to develop a CFW solution to load them yet (besides converting them to CIA) and only overpriced flashcarts (Gateway/Sky3DS) can load them.
 
;NCCH-type: Includes '''.CIA''' (CTR Importable Archive) and '''.CXI''' - installers that unpack game data to the SD card or the 3DS NAND memory. Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital games are often distributed as CIAs.
 
 
 
*Note that CTR (Citrus) is the internal code names for the 3DS.
 
 
 
Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on a real 3DS is still the preferred way to go), the CIA format is preferred in many sharing websites, downloader tools and even tools to dump your own games.  
 
 
 
However, converting a CIA image to 3DS format (and vice-versa) is still possible with no loss of content. Read the Encryption section below for a guide.
 
 
 
Some outdated dumping utilities intended for use with Citra (like braindump) produce damaged decrypted 3DS images that can't be easily converted back. No known solution exists so far to fix those dumps.
 
 
 
===Encryption===
 
Most dumps online are also encrypted. This encryption poses no problem for playing game images on a real 3DS since it can deal with that encryption with internal keys included in the bootrom, but becomes a problem when trying to emulate them on PC. '''Citra requires additional encryption keys to play encrypted games.''' If you want to play encrypted games on Citra without these keys, you'll have to convert your game images to the decrypted format.
 
  
Formerly, decrypting those ROMs used to require real 3DS hardware (bafflingly enough, Citra devs still ask users to do this even nowadays). It required files generated by a real 3DS called '''xorpads''' unique to that game version, using the encryption engine within the 3DS. After this part, these xorpads (which are big) can be used with PC tools (or other 3DS-based homebrew) to produce the decrypted game image. After that, some 3DS homebrew (Decrypt9, GodMode9) included tools to directly convert encrypted images to decrypted images with a single button press, but those still require a real 3DS.
+
;[[Ryujinx]] <small class="plainlinks" style="font-weight:normal;">([https://github.com/Ryujinx/Ryujinx-Games-List/issues compatibility])</small>
 +
:An open-source emulator that's programmed in C#. Most 2D games are now booting and running at comfortable speeds and many 3D games are playable. It also supports resolution upscaling to 4K and beyond; custom upscaling/downscaling ratios are supported. Ryujinx now has a disk-based shader cache. Unlike yuzu, Ryujinx does not offer packaged early access builds; however work-in-progress features can still be tested by using Appveyor builds or building locally from unmerged pull requests. Separately, Ryujinx has released a closed source LDN-enabled preview build supporting local wireless multiplayer across the internet, as well as LAN mode compatibility on local networks with Switch consoles on supported games. As of August 2021, Vulkan API support has been added.
  
The game changer was the sighax exploit, allowing to dump the 3DS bootrom which includes these encryption keys. This file can be downloaded from the [[Emulator Files#Nintendo 3DS|Emulator Files]] page. You can then use a program like '''[https://gbatemp.net/threads/tutorial-extract-decrypt-games-nand-backups-and-sd-contents-with-fuse-3ds.499994/ fuse-3ds]''' to decrypt games using this file. Simply place boot9.bin in the same folder, run the program, mount the encrypted .cia or .3ds, and find the '''decrypted.cxi''' file inside (usually in the first folder). Citra should be able to load this file without issues.
+
;Skyline
 +
: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 only.
  
Due to these keys being available, Citra can now play encrypted games (3ds or CIA) without decrypting them. Read this page
+
;Egg NS
[https://citra-emu.org/wiki/aes-keys/]. Then, go to this reddit page and copy the code from second comment (credit floppydoppy2)
+
:Similar to DamonPS2, closed-source payware/malware emulator only for Android. '''It can hardly run any games''' and behaves very much like virus software. '''It is best to NOT use this emulator'''.Claimed the first spot in getting games running on Android. 81 titles are purported to work, and the rest are either not working or assumed to fail. There is significant controversy surrounding this emulator for the following reasons: the current version lacks any onscreen buttons and instead requires users to purchase a specific controller; it expects to run on a high-end device within the ballpark of a Qualcomm Snapdragon 855/855+/865/865+; '''it was discovered to have violated GPLv2 licensing requirements by using code from yuzu in a disallowed manner. Made by the Chinese illegal market.'''
[https://www.reddit.com/r/CemuPiracy/comments/gpo2ey/aes_key_nintendo_3ds_title_keys_for_citra/]. Copy it and make a new .TXT file named 'aes_keys.txt'
 
Place this txt file in the sysdata folder of Citra's user directory. This key file is already included in the 3DS Shared Data download in the Emulator Files page.
 
  
 +
==See also==
 +
* [[Emulators on Switch]]
  
 +
==References==
 +
<references />
 +
 
{{Nintendo}}
 
{{Nintendo}}
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]
 
[[Category:Handheld consoles]]
 
[[Category:Handheld consoles]]
 +
[[Category:Home consoles]]
 +
[[Category:Hybrid consoles]]
 +
[[Category:Eighth-generation video game consoles]]
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo consoles]]
[[Category:Eighth-generation video game consoles]]
+
[[Category:Nintendo Switch emulators|*]]
[[Category:Nintendo 3DS emulators|*]]
 

Revision as of 15:25, 7 November 2021

Nintendo Switch
Nintendo-switch.png
Switchdocked.png
The Switch in its two forms, portable (above) and docked (below).
Developer Nintendo
Type Hybrid 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". 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.

Emulators

Name Platform(s) Latest Version FLOSS Active Recommended
PC / x86
yuzu Windows Linux Nightlygit
Ryujinx Windows Linux macOS Nightlygit
NSEmu Windows git
Mephisto Linux macOS git
CageTheUnicorn Windows Linux macOS FreeBSD git
Mobile / ARM
Skyline Android git (WIP)
Egg NS Android 2.1.6 Beta 5
yuzu (compatibility)
An open-source emulator made by many of Citra's developers. 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). Many 2D games now render graphics properly and at good speeds; many 3D games are playable. This emulator currently offers early access builds to $5/month Patreon subscribers which allows them to utilize new features prior to their eventual release on the mainline build. One of yuzu's notable features is its disk-based shader cache for OpenGL, negating the need to compile shaders on the fly on every boot. Resolution scaler was disabled some time ago due to bugs, but in July 2021 work on reimplementing resolution scaler has started.
Ryujinx (compatibility)
An open-source emulator that's programmed in C#. Most 2D games are now booting and running at comfortable speeds and many 3D games are playable. It also supports resolution upscaling to 4K and beyond; custom upscaling/downscaling ratios are supported. Ryujinx now has a disk-based shader cache. Unlike yuzu, Ryujinx does not offer packaged early access builds; however work-in-progress features can still be tested by using Appveyor builds or building locally from unmerged pull requests. Separately, Ryujinx has released a closed source LDN-enabled preview build supporting local wireless multiplayer across the internet, as well as LAN mode compatibility on local networks with Switch consoles on supported games. As of August 2021, Vulkan API support has been added.
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 only.
Egg NS
Similar to DamonPS2, closed-source payware/malware emulator only for Android. It can hardly run any games and behaves very much like virus software. It is best to NOT use this emulator.Claimed the first spot in getting games running on Android. 81 titles are purported to work, and the rest are either not working or assumed to fail. There is significant controversy surrounding this emulator for the following reasons: the current version lacks any onscreen buttons and instead requires users to purchase a specific controller; it expects to run on a high-end device within the ballpark of a Qualcomm Snapdragon 855/855+/865/865+; it was discovered to have violated GPLv2 licensing requirements by using code from yuzu in a disallowed manner. Made by the Chinese illegal market.

See also

References