Difference between revisions of "Nintendo Switch emulators"

From Emulation General Wiki
Jump to navigation Jump to search
m
(Comparisons)
(28 intermediate revisions by 12 users not shown)
Line 40: Line 40:
 
|{{~}}
 
|{{~}}
 
|{{~}}
 
|{{~}}
|[https://github.com/Ryujinx/Ryujinx-Games-List/issues 83%<br/><small>3543 out of 4280 reported titles</small>]
+
|[https://github.com/Ryujinx/Ryujinx-Games-List/issues 83%<br/><small>3554 out of 4284 reported titles</small>]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|-
|[[yuzu]]
+
|Sudachi
|align=left|{{Icon|Windows|Linux}}
+
|align=left|{{Icon|Windows}}
|[https://github.com/pineappleEA/pineapple-src/releases Pineapple EA builds]<br/>[https://yuzu-emu.org/ Former website (Offline)]<br/>[https://web.archive.org/web/20240304212345/https://yuzu-emu.org/ Former website (Last Archived Version)]<ref group=N>Official [[Yuzu]] downloads have been taken down due to the [[History_of_emulation#Lawsuits|Nintendo Lawsuit]]</ref>
+
|[https://github.com/sudachi-emu/sudachi/releases {{SudachiVer}}]
 +
|{{✓}}
 +
|{{~}}
 +
|{{?}}
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
|''[http://web.archive.org/web/20240130155829/https://yuzu-emu.org/game/ 54%<br/><small>1457 out of 2699 reported titles</small>]''<ref group=N>Obsolete list, there was a [http://web.archive.org/web/20240211051434/https://github.com/yuzu-emu/yuzu/pull/11171 ongoing rewrite] project, but yuzu is dead anyway.</ref>
+
|-
 +
|[[suyu]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://git.suyu.dev/suyu/suyu/releases {{SuyuVer}}]
 
|{{✓}}
 
|{{✓}}
|{{✗}}[[History_of_emulation#Lawsuits|*]]
 
 
|{{~}}
 
|{{~}}
 +
|{{?}}
 +
|{{✓}}
 +
|{{✓}}
 +
|{{TBD}}
 
|-
 
|-
|[[Suyu]]
+
|[[yuzu]]
 
|align=left|{{Icon|Windows|Linux}}
 
|align=left|{{Icon|Windows|Linux}}
|[https://gitlab.com/suyu-emu/suyu#downloads git]
+
|[https://github.com/pineappleEA/pineapple-src/releases Pineapple EA builds]<br/>[https://yuzu-emu.org/ Former website (Offline)]<br/>[https://web.archive.org/web/20240304212345/https://yuzu-emu.org/ Former website (Last Archived Version)]<ref group=N>Official [[yuzu]] downloads have been taken down due to the [[History_of_emulation#Lawsuits|Nintendo Lawsuit]]</ref>
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
|''[https://gitlab.com/suyu-emu/suyu/-/wikis/Compatibility 54%<br/><small>1457 out of 2699 reported titles</small>]''
+
|''[http://web.archive.org/web/20240130155829/https://yuzu-emu.org/game/ 54%<br/><small>1457 out of 2699 reported titles</small>]''<ref group=N>Obsolete list, there was a [http://web.archive.org/web/20240211051434/https://github.com/yuzu-emu/yuzu/pull/11171 ongoing rewrite] project, but yuzu is dead anyway.</ref>
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|{{}}[[History_of_emulation#Lawsuits|*]]
|WIP
+
|{{✗}}
 
|-
 
|-
 
|NSEmu
 
|NSEmu
Line 97: Line 107:
 
!colspan="9"|Mobile / ARM
 
!colspan="9"|Mobile / ARM
 
|-
 
|-
|[[yuzu]]
+
|Sudachi
|align=left|{{Icon|Android}}
+
|align=left|{{Icon|iOS|Android}}
|[https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea EA] ($)<br/>[https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu Mainline (Google Play)]<br/>[https://github.com/yuzu-emu/yuzu-android/releases Mainline (GitHub)]
+
|[https://github.com/emuPlace/Sudachi/releases 0.0.1.7.6] (ipa)<br/>[https://github.com/sudachi-emu/sudachi/releases git] (apk)
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
|?[https://old.reddit.com/r/yuzu/comments/13xuovh/current_compatibility_list_for_android/ *]
+
|{{?}}
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{✗}}[[History_of_emulation#Lawsuits|*]]
 
 
|{{~}}
 
|{{~}}
 
|-
 
|-
|[[Strato]]
+
|[[suyu]]
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|[https://github.com/strato-emu/strato git]
+
|[https://git.suyu.dev/suyu/suyu/releases {{SuyuVer}}]
|{{?}}
 
|{{?}}
 
|[https://github.com/strato-emu/compat-list/issues 4%<br/><small>58 out of 1426 reported titles</small>]
 
|{{}}
 
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
|-
+
|?
|Sudachi
 
|align=left|{{Icon|iOS}}
 
|0.0.1.7
 
|{{?}}
 
|{{?}}
 
|{{?}}
 
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
|{{~}}
+
|{{TBD}}
 
|-
 
|-
|[[Suyu]]
+
|[[yuzu]]
 
|align=left|{{Icon|Android}}
 
|align=left|{{Icon|Android}}
|WIP
+
|[https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea EA] ($)<br/>[https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu Mainline (Google Play)]<br/>[https://github.com/yuzu-emu/yuzu-android/releases Mainline (GitHub)]
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
|?
+
|?[https://old.reddit.com/r/yuzu/comments/13xuovh/current_compatibility_list_for_android/ *]
 
|{{✓}}
 
|{{✓}}
|{{}}
+
|{{}}[[History_of_emulation#Lawsuits|*]]
|WIP
+
|{{✗}}
 
|-
 
|-
 
|[[Ryujinx]]
 
|[[Ryujinx]]
Line 146: Line 146:
 
|{{✓}}
 
|{{✓}}
 
|WIP
 
|WIP
|-
 
|[[Skyline]]
 
|align=left|{{Icon|Android}}
 
|[https://cdn.discordapp.com/attachments/546097900329893911/1104463310256091197/edge-69.apk Edge 69]
 
|{{?}}
 
|{{?}}
 
|{{?}}
 
|{{✓}}
 
|{{✗}}[https://www.nintendolife.com/news/2023/05/switch-android-emulator-skyline-halts-development-due-to-potential-legal-risks *]
 
|{{✗}}
 
 
|-
 
|-
 
|[[Egg NS]]
 
|[[Egg NS]]
Line 163: Line 153:
 
|{{✗}}
 
|{{✗}}
 
|[https://eggns.wordpress.com/2020/08/29/game-compatibility-list/ 78%<br/><small>172 out of 220 reported titles</small>]
 
|[https://eggns.wordpress.com/2020/08/29/game-compatibility-list/ 78%<br/><small>172 out of 220 reported titles</small>]
|{{✗}}<br/><small>(stolen yuzu)</small>
+
|{{✗}}<br/><small>(stolen yuzu code)</small>
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
Line 176: Line 166:
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 +
|}
 +
 +
==Compatibility layers [[Compatibility layers|(...)]]==
 +
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;width:100%"
 +
! scope="col"|Name
 +
! scope="col"|Platform(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|[[#Hardware_features_and_peripherals|Hardware features<br/>and peripherals]]
 +
! scope="col"|[[#Enhancements|Enhancements]]
 +
! scope="col"|Compatibility
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
!colspan="9"|ARM
 +
|-
 +
|[[Strato]]
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/strato-emu/strato git]
 +
|{{?}}
 +
|{{?}}
 +
|[https://github.com/strato-emu/compat-list/issues 4%<br/><small>58 out of 1426 reported titles</small>]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{~}}
 +
|-
 +
|[[Skyline]]
 +
|align=left|{{Icon|Android}}
 +
|[https://cdn.discordapp.com/attachments/546097900329893911/1104463310256091197/edge-69.apk Edge 69]
 +
|{{?}}
 +
|{{?}}
 +
|{{?}}
 +
|{{✓}}
 +
|{{✗}}[https://www.nintendolife.com/news/2023/05/switch-android-emulator-skyline-halts-development-due-to-potential-legal-risks *]
 +
|{{✗}}
 +
|}
 +
 +
==Emulation focused Linux distros [[Recommended_Linux_distros#Emulation_focused|(...)]]==
 +
<div style="overflow-x:auto;width:100%">
 +
{| class="wikitable" style="text-align:center;width:100%"
 +
! scope="col"|Name
 +
! scope="col"|Platform(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|[[#Hardware_features_and_peripherals|Hardware features<br/>and peripherals]]
 +
! scope="col"|[[#Enhancements|Enhancements]]
 +
! scope="col"|Compatibility
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 +
|-
 +
!colspan="9"|ARM
 
|-
 
|-
 
|Horizon Linux
 
|Horizon Linux
Line 187: Line 229:
 
|{{✗}}
 
|{{✗}}
 
|}
 
|}
;[[Ryujinx]]
+
==Comparisons==
:An open-source [[High/Low_level_emulation|hybrid approach]] emulator that's programmed in C#. Unlike yuzu, Ryujinx does not 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 [https://github.com/Ryujinx/Ryujinx/issues/4716 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. Ryujinx also uses an alternative approach to yuzu's NCE for improving performance when emulating on ARM systems.[https://blog.ryujinx.org/progress-report-january-2024/]
+
;Emulators
 +
:;[[Ryujinx]]
 +
::An open-source [[High/Low_level_emulation|hybrid approach]] emulator that's programmed in C#. Unlike yuzu, Ryujinx does not 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 [https://github.com/Ryujinx/Ryujinx/issues/4716 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. Ryujinx also uses an alternative approach to yuzu's NCE for improving performance when emulating on ARM systems.[https://blog.ryujinx.org/progress-report-january-2024/]
  
;[[yuzu]]
+
:;[[yuzu]]
:An open-source [[High/Low_level_emulation|HLE approach]] emulator made by many of [[Citra]]'s developers. As it's a hard fork of Citra, it shares many of its traits, namely cross-platform support and the use of OpenGL and Vulkan. Yuzu offers early access pre-compiled builds to its $5/month [[Emulators on Patreon|Patreon]] supporters, allowing them to try out new features before they're available in the main build. However, the source code for these new features is publicly available and can be compiled by anyone, with some users publicly sharing their own unofficial early access builds. One of yuzu's notable features is its decreased shader stuttering compared to Ryujinx, making it ideal for weaker PCs. Yuzu also has free and paid Android versions which have greatly improved recently thanks to their implementation of [https://web.archive.org/web/20240227234130/https://github.com/yuzu-emu/yuzu/pull/12074 Native Code Execution (NCE)] and other improvements. Recent [https://web.archive.org/web/20240229040019/https://github.com/yuzu-emu/yuzu/pull/12579 Device Mapping & SMMU] implementations further have helped reduce yuzu's memory footprint, allowing future optimizations and more. There are even more optimizations exclusive to the Linux-x86 and Android platforms thanks to "[http://web.archive.org/web/20240111173833/https://yuzu-emu.org/entry/yuzu-progress-report-dec-2023/#android-adventures-and-kernels-with-benefits MADV_REMOVE]" but despite all the optimizations and improvements, only high-end devices are recommended for Android platform. Yuzu's [https://web.archive.org/web/20240304205731/https://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/ January 2024 progress report] highlights ongoing work on "multiprocess" and "services", which is crucial progress for emulating applets and system functions like some of the [[#Hardware_features_and_peripherals|hardware features]], but further development is required before it's fully implemented.
+
::An open-source [[High/Low_level_emulation|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 [[Emulators on Patreon|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 [https://web.archive.org/web/20240227234130/https://github.com/yuzu-emu/yuzu/pull/12074 Native Code Execution (NCE)] and other fixes. Their [https://web.archive.org/web/20240229040019/https://github.com/yuzu-emu/yuzu/pull/12579 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 "[http://web.archive.org/web/20240111173833/https://yuzu-emu.org/entry/yuzu-progress-report-dec-2023/#android-adventures-and-kernels-with-benefits MADV_REMOVE]", but despite all the optimizations and improvements, only high-end devices are recommended for Android platform. In yuzu's last [https://web.archive.org/web/20240304205731/https://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/ 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 of the [[#Hardware_features_and_peripherals|hardware features]]. Further development would have been required before it could be considered fully implemented.
  
:As of March 4th 2024, the [[Legal_Status_of_Emulation#Nintendo|lawsuit filed by Nintendo]] against Tropic Haze LLC has led to their unfortunate decision to cease official distribution of Yuzu and Citra. Fortunately, it is easy to find an archive of the latest version, and they are likely to be continued by other people.
+
::On March 4th 2024, a [[Legal_Status_of_Emulation#Nintendo|lawsuit was filed by Nintendo]] against Tropic Haze LLC (aka yuzu) which unfortunately led to their decision to cease all development and official distribution of yuzu and Citra. Fortunately, it is easy to find an archive of the latest version, and it's work is likely to be continued by other developers.
  
:;[[Sudachi]]
+
::;[[Sudachi]]
::An experimental port of Yuzu to iOS/iPadOS by Jarrod Norwell, newer graphical user interface and versions for Android, Linux and macOS are in the plans. Requires a paid Apple Developer Account or TrollStore in order to use the <code>com.apple.developer.kernel.increased-memory-limit</code> entitlement.
+
:::An experimental port of yuzu to iOS/iPadOS by Jarrod Norwell, a newer graphical user interface and versions for Linux and macOS are in the plans. [https://github.com/sudachi-emu/sudachi/commit/82ab497ccf277780290b579d1b6f3e719bde179c Rebased on latest EA-4176] and it has a separate repository for Windows and Android builds. Requires a paid Apple Developer Account or TrollStore in order to use the <code>com.apple.developer.kernel.increased-memory-limit</code> entitlement.
  
:;[[Suyu]]
+
::;[[suyu]]
::A fork of Yuzu continues from where that project left off on GitLab instead of Github suggested by the community due to potential takedown attempt. This decision, along with various precautions[https://old.reddit.com/r/emulation/comments/1bck011/heres_how_the_makers_of_the_suyu_switch_emulator/], suggests a desire to avoid [[Legal_Status_of_Emulation#Nintendo|legal claims similar to those faced by Yuzu]] (e.g. like older versions of yuzu, Suyu requires title keys for decryption, in addition to firmware and production keys). Currently the team recruiting programmers to start studying the code. Thus, there's an adaptation period needed to see some serious advancements. In response to concerns about the project's financial motivations, the Suyu team has emphasized a strict policy against accepting donations. They assure users that there is no intention to profit from the emulator.
+
:::A fork of yuzu continues from where that project left off ([https://gitlab.com/suyu-emu/suyu/-/blob/dev/README.md?ref_type=heads based on latest EA-4176]) on GitLab instead of Github suggested by the community due to potential takedown attempt. However, GitLab still took down the suyu repository due to the use of raw yuzu code. As a result, the Suyu team is now using their own repository. This decision, along with various precautions[https://old.reddit.com/r/emulation/comments/1bck011/heres_how_the_makers_of_the_suyu_switch_emulator/], suggests a desire to avoid [[Legal_Status_of_Emulation#Nintendo|legal claims similar to those faced by yuzu]]. Currently, the team is recruiting programmers to start studying the code. '''Thus, there's an adaptation period needed to see some serious advancements'''. In response to concerns about the project's financial motivations, the suyu team has emphasized a strict policy against accepting donations. They assure users that there is no intention to profit from the emulator. '''There have been inexperienced coding criticisms from some in the community directed at the current developers work'''.
  
;[[Skyline]]
+
:;[[Egg NS]]
: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.
+
::Similar to DamonPS2, it's 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.
  
:;[[Strato]]
+
:;[[DamonSwitch]]
::A fork of Skyline that continues from where that project left off. It's 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 the entire original code on bare metal except for what interfaces with the rest of the system. Some titles can go ingame 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[https://old.reddit.com/r/EmulationOnAndroid/comments/1bb6ru8/lynx_lead_strato_dev_leaves_the_emulation_scene/]. The project was then handed over to the other developers.
+
::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.
  
;[[Egg NS]]
+
;Compatibility layers
:Similar to DamonPS2, it's 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.
+
:;[[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.
  
;[[DamonSwitch]]
+
::;[[Strato]]
: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.
+
:::A fork of Skyline that continues from where that project left off. It's 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 the entire original code on bare metal except for what interfaces with the rest of the system. Some titles can go ingame 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[https://old.reddit.com/r/EmulationOnAndroid/comments/1bb6ru8/lynx_lead_strato_dev_leaves_the_emulation_scene/]. The project was then handed over to the other developers.
  
; Horizon Linux
+
;Emulation focused Linux distros
: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.
+
:; 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.
  
 
==Hardware features and peripherals==
 
==Hardware features and peripherals==
Line 222: Line 268:
 
!  colspan=2 | Name
 
!  colspan=2 | Name
 
! Ryujinx
 
! Ryujinx
! Suyu
+
! suyu
 +
! Sudachi
 
! yuzu
 
! yuzu
 
! Strato
 
! Strato
 
|-
 
|-
 
| colspan=2 | [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22308/~/home-menu-overview Switch HOME Menu]
 
| colspan=2 | [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22308/~/home-menu-overview Switch HOME Menu]
|{{✗}}[https://github.com/Ryujinx/Ryujinx/issues/1381 *]
+
|{{✗}}[https://github.com/Ryujinx/Ryujinx/issues/1381]
|{{✓}}[https://youtu.be/MyGytIMpJ0I]
+
|{{✓}}[https://gitlab.com/suyu-emu/suyu/-/merge_requests/102]
 +
|{{✓}}[https://github.com/jarrodnorwell/Sudachi/pull/1]
 
|{{~}}[http://web.archive.org/web/20240304205731/https://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/#future-projects]
 
|{{~}}[http://web.archive.org/web/20240304205731/https://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/#future-projects]
 
|{{✗}}
 
|{{✗}}
 
|-
 
|-
 
| colspan=2 | [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22378/~/how-to-create-a-mii-on-nintendo-switch Mii Editor]
 
| colspan=2 | [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22378/~/how-to-create-a-mii-on-nintendo-switch Mii Editor]
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 239: Line 288:
 
|-
 
|-
 
| colspan=2 | [[#NSO_emulators|NSO emulators]]
 
| colspan=2 | [[#NSO_emulators|NSO emulators]]
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 246: Line 296:
 
| colspan=2 | [[Amiibo]]
 
| colspan=2 | [[Amiibo]]
 
|{{✓}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#amiibo-emulation *]
 
|{{✓}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#amiibo-emulation *]
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 252: Line 303:
 
| colspan=2 | [[Wikipedia:Nintendo_Labo|Nintendo Labo]]
 
| colspan=2 | [[Wikipedia:Nintendo_Labo|Nintendo Labo]]
 
|{{~}}[https://github.com/Ryujinx/Ryujinx-Games-List/issues?q=is%3Aissue+is%3Aopen+Nintendo+Labo+Toy-Con][https://github.com/Ryujinx/Ryujinx/issues/2500][https://github.com/Ryujinx/Ryujinx/pull/4007]
 
|{{~}}[https://github.com/Ryujinx/Ryujinx-Games-List/issues?q=is%3Aissue+is%3Aopen+Nintendo+Labo+Toy-Con][https://github.com/Ryujinx/Ryujinx/issues/2500][https://github.com/Ryujinx/Ryujinx/pull/4007]
 +
|{{?}}
 
|{{?}}
 
|{{?}}
 
|{{?}}
 
|{{?}}
Line 258: Line 310:
 
| rowspan=3 | [[#Connectivity|Connectivity]]
 
| rowspan=3 | [[#Connectivity|Connectivity]]
 
|Nintendo Switch Online
 
|Nintendo Switch Online
 +
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
Line 264: Line 317:
 
|-
 
|-
 
|Local Wireless Play / LDN
 
|Local Wireless Play / LDN
 +
|{{~}}
 
|{{~}}
 
|{{~}}
 
|{{~}}
 
|{{~}}
Line 270: Line 324:
 
|-
 
|-
 
|LAN Play
 
|LAN Play
 +
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
Line 278: Line 333:
 
| Native Dual Joy-Con Support
 
| Native Dual Joy-Con Support
 
|{{~}}[https://github.com/Ryujinx/Ryujinx/issues/3293 <abbr title="Only possible with 'BetterJoy' at the moment.">*</abbr>]
 
|{{~}}[https://github.com/Ryujinx/Ryujinx/issues/3293 <abbr title="Only possible with 'BetterJoy' at the moment.">*</abbr>]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}[https://web.archive.org/web/20220408213257/https://twitter.com/yuzuemu/status/1392967822402277376 *]
 
|{{Y}}[https://web.archive.org/web/20220408213257/https://twitter.com/yuzuemu/status/1392967822402277376 *]
Line 284: Line 340:
 
| [https://switchbrew.org/wiki/Ring-Con Ring-Con]
 
| [https://switchbrew.org/wiki/Ring-Con Ring-Con]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx/issues/1713 *]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx/issues/1713 *]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}[http://web.archive.org/web/20230726233204/https://github.com/yuzu-emu/yuzu/issues/8489 *]
 
|{{Y}}[http://web.archive.org/web/20230726233204/https://github.com/yuzu-emu/yuzu/issues/8489 *]
Line 290: Line 347:
 
| [https://www.destructoid.com/which-switch-games-have-mouse-and-keyboard-support-list/ Keyboard & Mouse]
 
| [https://www.destructoid.com/which-switch-games-have-mouse-and-keyboard-support-list/ Keyboard & Mouse]
 
|{{~}}[https://github.com/Ryujinx/Ryujinx/issues/3156 *]
 
|{{~}}[https://github.com/Ryujinx/Ryujinx/issues/3156 *]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}<abbr title="Turn on Keyboard and Mouse options from yuzu GUI-Configuration-Controls-Advanced, shouldn't be confused with Mouse Panning.">*</abbr>
 
|{{Y}}<abbr title="Turn on Keyboard and Mouse options from yuzu GUI-Configuration-Controls-Advanced, shouldn't be confused with Mouse Panning.">*</abbr>
Line 297: Line 355:
 
| [https://www.nintendo.co.uk/Support/Nintendo-Switch/How-to-Check-the-IR-Motion-Camera-Functionality-1547323.html IR Motion Camera]
 
| [https://www.nintendo.co.uk/Support/Nintendo-Switch/How-to-Check-the-IR-Motion-Camera-Functionality-1547323.html IR Motion Camera]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx-Games-List/issues/4798 *]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx-Games-List/issues/4798 *]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}[https://web.archive.org/web/20240229133559/https://yuzu-emu.org/entry/yuzu-progress-report-jul-2022/#input-improvements *]
 
|{{Y}}[https://web.archive.org/web/20240229133559/https://yuzu-emu.org/entry/yuzu-progress-report-jul-2022/#input-improvements *]
Line 303: Line 362:
 
| [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22721/~/how-to-activate%2Fdeactivate-hd-rumble HD Rumble]
 
| [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22721/~/how-to-activate%2Fdeactivate-hd-rumble HD Rumble]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx/issues/1659 *]
 
|{{N}}[https://github.com/Ryujinx/Ryujinx/issues/1659 *]
 +
|{{~}}
 
|{{~}}
 
|{{~}}
 
|{{~}}[https://web.archive.org/web/20230330125729/https://github.com/yuzu-emu/yuzu/issues/4958#issuecomment-1235894977 *]
 
|{{~}}[https://web.archive.org/web/20230330125729/https://github.com/yuzu-emu/yuzu/issues/4958#issuecomment-1235894977 *]
Line 309: Line 369:
 
| Motion Controls (Gyro)
 
| Motion Controls (Gyro)
 
|{{Y}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#motion-controls *]
 
|{{Y}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#motion-controls *]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}[https://web.archive.org/web/20220408213257/https://twitter.com/yuzuemu/status/1392967822402277376 *]
 
|{{Y}}[https://web.archive.org/web/20220408213257/https://twitter.com/yuzuemu/status/1392967822402277376 *]
Line 315: Line 376:
 
| Touchscreen
 
| Touchscreen
 
|{{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4574 *]
 
|{{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4574 *]
 +
|{{Y}}
 
|{{Y}}
 
|{{Y}}
 
|{{Y}}[https://github.com/yuzu-emu/yuzu/issues/10065 *]
 
|{{Y}}[https://github.com/yuzu-emu/yuzu/issues/10065 *]
Line 345: Line 407:
 
! colspan=2 | Name
 
! colspan=2 | Name
 
! Ryujinx
 
! Ryujinx
! Suyu
+
! suyu
 +
! Sudachi
 
! yuzu
 
! yuzu
 
! Strato
 
! Strato
Line 352: Line 415:
 
| [[Resolution|Resizable Internal Resolution]]
 
| [[Resolution|Resizable Internal Resolution]]
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#graphics-enhancements *]
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#graphics-enhancements *]
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 357: Line 421:
 
|-
 
|-
 
| [[Widescreen_hacks#Nintendo_Switch|Ultrawide hack]]<br/><small>Widescreen already supported on Nintendo Switch system.<br/> But there is no support by system for render games in other ratios such as ultrawide 21:9 or super ultrawide 32:9.</small>
 
| [[Widescreen_hacks#Nintendo_Switch|Ultrawide hack]]<br/><small>Widescreen already supported on Nintendo Switch system.<br/> But there is no support by system for render games in other ratios such as ultrawide 21:9 or super ultrawide 32:9.</small>
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 364: Line 429:
 
| [[Texture_packs#Nintendo_Switch|Texture Replacement]]
 
| [[Texture_packs#Nintendo_Switch|Texture Replacement]]
 
| {{~}}<ref group=N2>According to a [https://blog.ryujinx.org/progress-report-april-2023/ Progress Report from April 2023], texture replacement, along with all of the Patreon goal features that have been previously met will be finished and delivered. [https://github.com/Ryujinx/Ryujinx/pull/5632 Implement texture replacement support for Ryujinx].</ref>
 
| {{~}}<ref group=N2>According to a [https://blog.ryujinx.org/progress-report-april-2023/ Progress Report from April 2023], texture replacement, along with all of the Patreon goal features that have been previously met will be finished and delivered. [https://github.com/Ryujinx/Ryujinx/pull/5632 Implement texture replacement support for Ryujinx].</ref>
 +
| {{~}}
 
| {{~}}
 
| {{~}}
 
| {{~}}[https://web.archive.org/web/20240304194925/https://yuzu-emu.org/help/feature/game-modding/ *]
 
| {{~}}[https://web.archive.org/web/20240304194925/https://yuzu-emu.org/help/feature/game-modding/ *]
 
| {{N}}
 
| {{N}}
 
|-
 
|-
| Ray-tracing
+
| Ray-tracing<br/><small>([https://devblogs.microsoft.com/directx/announcing-microsoft-directx-raytracing/ DXR], [https://www.khronos.org/blog/ray-tracing-in-vulkan VRT] and [https://developer.apple.com/documentation/metal/metal_sample_code_library/accelerating_ray_tracing_using_metal MRT])</small>
| colspan=4 | <small>Implementing ray-tracing in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future.<br/>However you can try "[[Shaders_and_filters#Notable_ReShade_shaders|Screen-Space Ray Traced Global Illumination]]" shader using ReShade.<br/>[https://www.youtube.com/watch?v=-xsAzWZYkO0 (Demonstration)]</small>
+
| colspan=5 | <small>Implementing ray-tracing in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future.<br/>However you can try "[[Shaders_and_filters#Notable_ReShade_shaders|Screen-Space Ray Traced Global Illumination]]" shader using ReShade.<br/>[https://www.youtube.com/watch?v=-xsAzWZYkO0 (Demonstration)]</small>
 
|-
 
|-
 
| [[Wikipedia:Category:Anti-aliasing_algorithms|Pre-rendering AA]]<br/><small>(MSAA, SSAA)</small>
 
| [[Wikipedia:Category:Anti-aliasing_algorithms|Pre-rendering AA]]<br/><small>(MSAA, SSAA)</small>
 +
|{{N}}
 
|{{N}}
 
|{{N}}
 
|{{N}}
 
|{{N}}
Line 377: Line 444:
 
|{{N}}
 
|{{N}}
 
|-
 
|-
| Super-resolution techniques<br/><small>([https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS.md DLSS], XeSS and FSR 2+)</small>
+
| Super-resolution techniques<br/><small>([https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS.md DLSS], XeSS and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 2+]])</small>
| colspan=4 |  <small>Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future.<br/>[https://github.com/yuzu-emu/yuzu/issues/8061 Enhancement request for yuzu].</small>
+
| colspan=5 |  <small>Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future.<br/>[https://github.com/yuzu-emu/yuzu/issues/8061 Enhancement request for yuzu].</small>
 
|-
 
|-
 
| [https://github.com/NVIDIAGameWorks/rtx-remix/wiki RTX Remix]
 
| [https://github.com/NVIDIAGameWorks/rtx-remix/wiki RTX Remix]
Line 385: Line 452:
 
| rowspan=5 | Performance
 
| rowspan=5 | Performance
 
| [[30/60_FPS_cheat_codes#Nintendo_Switch|Internal Framerate Hack]]
 
| [[30/60_FPS_cheat_codes#Nintendo_Switch|Internal Framerate Hack]]
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 391: Line 459:
 
|-
 
|-
 
| [https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-and-reprojection/ Frame generation technologies]<br/><small>([https://store.steampowered.com/app/993090/Lossless_Scaling/ LSFG], [https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS_G.md DLSS-G], [https://www.techpowerup.com/316835/extrass-framework-paper-details-intels-take-on-frame-generation ExtraSS] and [https://community.amd.com/t5/gaming/amd-fluid-motion-frames-is-out-now-on-amd-radeon-rx-7000-series/ba-p/634372 AFMF])</small>
 
| [https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-and-reprojection/ Frame generation technologies]<br/><small>([https://store.steampowered.com/app/993090/Lossless_Scaling/ LSFG], [https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS_G.md DLSS-G], [https://www.techpowerup.com/316835/extrass-framework-paper-details-intels-take-on-frame-generation ExtraSS] and [https://community.amd.com/t5/gaming/amd-fluid-motion-frames-is-out-now-on-amd-radeon-rx-7000-series/ba-p/634372 AFMF])</small>
| colspan=4 | <small>Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, however post-processing techniques such as [[Wikipedia:Motion_interpolation|motion interpolation]] is quite possible. [[Input_lag|Input latency]] will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use '''after applying the "Internal Framerate Hack"'''.<br/>While '''[https://youtu.be/DlZpEuU6IUg AFMF]''' or '''[https://youtu.be/vbbdP9ls2GY?t=375 LSFG]''' can be used with yuzu or Ryujinx, please be aware that some visual glitches and artifacts may occur at this time.
+
| colspan=5 | <small>Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, however post-processing techniques such as [[Wikipedia:Motion_interpolation|motion interpolation]] is quite possible. [[Input_lag|Input latency]] will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use '''after applying the "Internal Framerate Hack"'''.<br/>While '''[https://youtu.be/DlZpEuU6IUg AFMF]''' or '''[https://youtu.be/vbbdP9ls2GY?t=375 LSFG]''' can be used with yuzu or Ryujinx, please be aware that some visual glitches and artifacts may occur at this time.
 
|-
 
|-
 
| [[Overclocking|Overclock]]
 
| [[Overclocking|Overclock]]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 401: Line 470:
 
| Preload [[Wikipedia:ROM_image|ROM image]] to RAM<br/><small>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.<br/>Although keep in mind that preloading image would take some time, and it will require additional amount of RAM capacity.</small>
 
| Preload [[Wikipedia:ROM_image|ROM image]] to RAM<br/><small>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.<br/>Although keep in mind that preloading image would take some time, and it will require additional amount of RAM capacity.</small>
 
| {{N}}<ref group=N>There is no Preload image to RAM implementation for Ryujinx but it has a kinda similar enhancement called "Profiled Persistent Translation Cache"[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#profiled-persistent-translation-cache][https://blog.ryujinx.org/introducing-profiled-persistent-translation-cache/].</ref>
 
| {{N}}<ref group=N>There is no Preload image to RAM implementation for Ryujinx but it has a kinda similar enhancement called "Profiled Persistent Translation Cache"[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#profiled-persistent-translation-cache][https://blog.ryujinx.org/introducing-profiled-persistent-translation-cache/].</ref>
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 406: Line 476:
 
|-
 
|-
 
| Rendering latency reduction technologies<br/><small>([https://github.com/ishitatsuyuki/LatencyFleX LatencyFleX], [https://developer.nvidia.com/performance-rendering-tools/reflex Reflex] and [https://www.amd.com/en/products/software/adrenalin/radeon-software-anti-lag.html Anti-Lag'''+'''])
 
| Rendering latency reduction technologies<br/><small>([https://github.com/ishitatsuyuki/LatencyFleX LatencyFleX], [https://developer.nvidia.com/performance-rendering-tools/reflex Reflex] and [https://www.amd.com/en/products/software/adrenalin/radeon-software-anti-lag.html Anti-Lag'''+'''])
| colspan=4 | <small>While most emulators offer frame pacing or framebuffer latency control options, implementing rendering latency reduction technologies like NVIDIA's Reflex SDK isn't currently feasible. This is due to a combination of factors, including potential licensing issues[https://github.com/yuzu-emu/yuzu/issues/8060] and '''likely''' doesn't offer enough benefit to justify the development effort.</small>
+
| colspan=5 | <small>While most emulators offer frame pacing or framebuffer latency control options, implementing rendering latency reduction technologies like NVIDIA's Reflex SDK isn't currently feasible. This is due to a combination of factors, including potential licensing issues[https://github.com/yuzu-emu/yuzu/issues/8060] and '''likely''' doesn't offer enough benefit to justify the development effort.</small>
 
|-
 
|-
 
| rowspan=6 | Post-Processing
 
| rowspan=6 | Post-Processing
 
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br/><small>(FXAA, TXAA and MLAA/SMAA)</small>
 
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br/><small>(FXAA, TXAA and MLAA/SMAA)</small>
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 415: Line 486:
 
| {{?}}
 
| {{?}}
 
|-
 
|-
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and FSR 1)</small>
+
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 1]])</small>
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 422: Line 494:
 
|-
 
|-
 
| [[Shaders_and_filters|Filters]]
 
| [[Shaders_and_filters|Filters]]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 429: Line 502:
 
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
 
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
 
| {{?}}
 
| {{?}}
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}[https://youtu.be/JYXrKnsP44s *]
 
| {{Y}}[https://youtu.be/JYXrKnsP44s *]
Line 434: Line 508:
 
|-
 
|-
 
| [[Shader_Presets|Shader Chain]]
 
| [[Shader_Presets|Shader Chain]]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 441: Line 516:
 
|[[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping compatible]]
 
|[[High_dynamic_range#Inverse_tone_mapping|Inverse tone mapping compatible]]
 
| {{?}}
 
| {{?}}
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}[https://youtu.be/JYXrKnsP44s *]
 
| {{Y}}[https://youtu.be/JYXrKnsP44s *]
Line 448: Line 524:
 
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua]
 
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua]
 
| {{N}}
 
| {{N}}
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}[https://web.archive.org/web/20240304195247/https://yuzu-emu.org/help/feature/tas/ *]
 
| {{Y}}[https://web.archive.org/web/20240304195247/https://yuzu-emu.org/help/feature/tas/ *]
Line 453: Line 530:
 
|-
 
|-
 
| Rewind
 
| Rewind
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 460: Line 538:
 
| Fast-Forward/Turbo Speed
 
| Fast-Forward/Turbo Speed
 
| {{~}}[https://github.com/Ryujinx/Ryujinx/pull/6456 *]
 
| {{~}}[https://github.com/Ryujinx/Ryujinx/pull/6456 *]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 465: Line 544:
 
|-
 
|-
 
| Savestates
 
| Savestates
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 471: Line 551:
 
|-
 
|-
 
| [https://tasvideos.org/Movies Movie recording/playback]
 
| [https://tasvideos.org/Movies Movie recording/playback]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 479: Line 560:
 
| Built-in [[Mods,_hacks_and_fan-translations#Built-in_graphics_mod_editor.2Fmanager_for_emulators|Graphics mod editor/manager]]
 
| Built-in [[Mods,_hacks_and_fan-translations#Built-in_graphics_mod_editor.2Fmanager_for_emulators|Graphics mod editor/manager]]
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/pull/4390 *]
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/pull/4390 *]
| {{~}}<ref group=N name=PropertiesAddOns>yuzu or Suyu has no dedicated interface like Ryujinx. All of cheats, updates, DLCs and mods in the Title Properties->Add-Ons column. See [https://github.com/yuzu-emu/yuzu/issues/10202 feature request] for this.</ref>
+
| {{~}}<ref group=N name=PropertiesAddOns>yuzu or suyu has no dedicated interface like Ryujinx. All of cheats, updates, DLCs and mods in the Title Properties->Add-Ons column. See [https://github.com/yuzu-emu/yuzu/issues/10202 feature request] for this.</ref>
 +
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{N}}
 
| {{N}}
Line 485: Line 567:
 
| Built-in [[Cheats_and_patches|Cheat Manager]]
 
| Built-in [[Cheats_and_patches|Cheat Manager]]
 
| {{Y}}
 
| {{Y}}
 +
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
 
| {{~}}<ref group=N name=PropertiesAddOns></ref>
Line 494: Line 577:
 
| [[Save_disk_space_for_ISOs#Switch|Streamable compression format]]
 
| [[Save_disk_space_for_ISOs#Switch|Streamable compression format]]
 
| {{~}}<ref group=N name=Format>There is a [https://github.com/Ryujinx/Ryujinx/pull/6045 pull request] for adding trimming XCI files feature to Ryujinx. It's notable that Ryujinx allows loading .NSP files for both updates and DLCs directly, without installing them to the NAND. In contrast, [https://github.com/yuzu-emu/yuzu/issues/9963 yuzu requires installation of these files to the NAND]. See overview of formats [https://web.archive.org/web/20240301105606/https://yuzu-emu.org/wiki/overview-of-switch-game-formats/ here].</ref>
 
| {{~}}<ref group=N name=Format>There is a [https://github.com/Ryujinx/Ryujinx/pull/6045 pull request] for adding trimming XCI files feature to Ryujinx. It's notable that Ryujinx allows loading .NSP files for both updates and DLCs directly, without installing them to the NAND. In contrast, [https://github.com/yuzu-emu/yuzu/issues/9963 yuzu requires installation of these files to the NAND]. See overview of formats [https://web.archive.org/web/20240301105606/https://yuzu-emu.org/wiki/overview-of-switch-game-formats/ here].</ref>
 +
| {{N}}<ref group=N name=Format></ref>
 
| {{N}}<ref group=N name=Format></ref>
 
| {{N}}<ref group=N name=Format></ref>
 
| {{N}}<ref group=N name=Format></ref>
 
| {{N}}<ref group=N name=Format></ref>
Line 500: Line 584:
 
| Per-Game Profiles
 
| Per-Game Profiles
 
| {{Y}}[https://old.reddit.com/r/Ryujinx/comments/mx6x61/custom_user_profiles_is_now_in_the_latest/jkcdyi5/ *]
 
| {{Y}}[https://old.reddit.com/r/Ryujinx/comments/mx6x61/custom_user_profiles_is_now_in_the_latest/jkcdyi5/ *]
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}[https://web.archive.org/web/20240302185515/https://yuzu-emu.org/entry/yuzu-progress-report-dec-2023/#android-specific-ui-and-miscellaneous-changes *]
 
| {{Y}}[https://web.archive.org/web/20240302185515/https://yuzu-emu.org/entry/yuzu-progress-report-dec-2023/#android-specific-ui-and-miscellaneous-changes *]
Line 506: Line 591:
 
| Command Line Options
 
| Command Line Options
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4981#issuecomment-1550751066 *]
 
| {{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4981#issuecomment-1550751066 *]
| {{Y}}[https://gitlab.com/suyu-emu/suyu/-/blob/dev/src/suyu/main.cpp?ref_type=heads#L492 *]
+
| {{Y}}[https://git.suyu.dev/suyu/suyu/src/branch/dev/src/suyu/main.cpp#L473 *]
 +
| {{Y}}[https://github.com/sudachi-emu/sudachi/blob/main/src/sudachi/main.cpp#L507 *]
 
| {{Y}}[https://web.archive.org/web/20240229152519/https://github.com/yuzu-emu/yuzu/pull/5229 *]
 
| {{Y}}[https://web.archive.org/web/20240229152519/https://github.com/yuzu-emu/yuzu/pull/5229 *]
 
| {{?}}
 
| {{?}}
 
|-
 
|-
 
| On-Screen Display<br/><small>Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.</small>
 
| On-Screen Display<br/><small>Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.</small>
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 517: Line 604:
 
|-
 
|-
 
| [[Wikipedia:Variable_refresh_rate|Variable Refresh Rate compatible]]
 
| [[Wikipedia:Variable_refresh_rate|Variable Refresh Rate compatible]]
 +
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
 
| {{Y}}
Line 524: Line 612:
 
| [[Frontends#Graphical_User_Interfaces_.28GUIs.29|Big Picture Mode]]
 
| [[Frontends#Graphical_User_Interfaces_.28GUIs.29|Big Picture Mode]]
 
| {{N}}[https://github.com/Ryujinx/Ryujinx/issues/3725 *]
 
| {{N}}[https://github.com/Ryujinx/Ryujinx/issues/3725 *]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 531: Line 620:
 
| [[Controllers#Mouse_Injectors_for_Emulators|Mouse Injector Compatible]]
 
| [[Controllers#Mouse_Injectors_for_Emulators|Mouse Injector Compatible]]
 
| {{~}}<abbr title="Currently requires Cheat Engine to work.">[https://gamebanana.com/scripts/11752 *]</abbr>
 
| {{~}}<abbr title="Currently requires Cheat Engine to work.">[https://gamebanana.com/scripts/11752 *]</abbr>
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 536: Line 626:
 
|-
 
|-
 
| [[Input_lag|Input lag-mitigating technique]]
 
| [[Input_lag|Input lag-mitigating technique]]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 543: Line 634:
 
| rowspan=4 | Misc
 
| rowspan=4 | Misc
 
| [https://retroachievements.org/game/8988 RetroAchievements]
 
| [https://retroachievements.org/game/8988 RetroAchievements]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 549: Line 641:
 
|-
 
|-
 
| [[Virtual_reality#VR_game_room_simulations|EmuVR support]]
 
| [[Virtual_reality#VR_game_room_simulations|EmuVR support]]
| colspan=4 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores]. So there is no support at the moment.
+
| colspan=5 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores]. So there is no support at the moment.
 
|-
 
|-
 
| Free Look<br/><small>Free Look is a enhancement feature that allows manipulation of the in-game camera.</small>
 
| Free Look<br/><small>Free Look is a enhancement feature that allows manipulation of the in-game camera.</small>
 
| {{~}}<ref group=N2 name=freelook>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 [https://gamebanana.com/mods/480138 TOTK-UltraCam].</ref>
 
| {{~}}<ref group=N2 name=freelook>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 [https://gamebanana.com/mods/480138 TOTK-UltraCam].</ref>
 +
| {{~}}<ref group=N2 name=freelook></ref>
 
| {{~}}<ref group=N2 name=freelook></ref>
 
| {{~}}<ref group=N2 name=freelook></ref>
 
| {{~}}<ref group=N2 name=freelook></ref>
 
| {{~}}<ref group=N2 name=freelook></ref>
Line 559: Line 652:
 
| [[Wikipedia:Category:Debugging|Debug Features]]
 
| [[Wikipedia:Category:Debugging|Debug Features]]
 
| {{N}}[https://github.com/Ryujinx/Ryujinx/issues/5486 *]
 
| {{N}}[https://github.com/Ryujinx/Ryujinx/issues/5486 *]
 +
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
 
| {{N}}
Line 576: Line 670:
 
* Ryujinx: [https://blog.ryujinx.org/ Blog], [https://discord.gg/ryujinx Discord]
 
* Ryujinx: [https://blog.ryujinx.org/ Blog], [https://discord.gg/ryujinx Discord]
 
* Yuzu: [https://web.archive.org/web/20240304180918/https://yuzu-emu.org/entry/ Blog], [https://discord.gg/yuzu-emu Discord]
 
* Yuzu: [https://web.archive.org/web/20240304180918/https://yuzu-emu.org/entry/ Blog], [https://discord.gg/yuzu-emu Discord]
* Suyu: [https://discord.gg/2gQRBp44KT Discord]
+
* suyu: [https://discord.gg/2gQRBp44KT Discord]
 
* [https://switchbrew.org/wiki/Main_Page SwitchBrew]
 
* [https://switchbrew.org/wiki/Main_Page SwitchBrew]
 
* [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering dekuNukem - Nintendo Switch reverse engineering attempts]
 
* [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering dekuNukem - Nintendo Switch reverse engineering attempts]

Revision as of 12:55, 26 March 2024

Nintendo Switch
Nintendo-switch.png
Switchdocked.png
The Switch in its two forms, handheld (above) and docked (below).
Developer Nintendo
Type Hybrid video game console
Generation Eighth generation
Release date March 2017
Predecessor Wii U
(new) 3DS
Emulated
For other emulators that run on Switch hardware, see Emulators on Switch.

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 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 and 4 ARM Cortex-A53 CPUs running at 1.020 GHz with 4 GBs of RAM and a proprietary NVIDIA GPU codenamed GM20B.

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.

Emulators

Name Platform(s) Latest Version Hardware features
and peripherals
Enhancements Compatibility FLOSS Active Recommended
PC / x86
Ryujinx Windows Linux macOS Nightly
LDN builds
~ ~ 83%
3554 out of 4284 reported titles
Sudachi Windows vedd7896 ~ ? ~
suyu Windows Linux macOS 0.0.3 ~ ? TBD
yuzu Windows Linux Pineapple EA builds
Former website (Offline)
Former website (Last Archived Version)[N 1]
~ 54%
1457 out of 2699 reported titles
[N 2]
*
NSEmu Windows git ?
Mephisto Linux macOS git ?
CageTheUnicorn Windows Linux macOS FreeBSD git ?
Mobile / ARM
Sudachi iOS Android 0.0.1.7.6 (ipa)
git (apk)
~ ? ~
suyu Android 0.0.3 ~ ? TBD
yuzu Android EA ($)
Mainline (Google Play)
Mainline (GitHub)
~ ?* *
Ryujinx Android iOS Unreleased ? ? ? ? WIP
Egg NS Android 4.0.5 78%
172 out of 220 reported titles

(stolen yuzu code)
DamonSwitch Android 1.0Preview N/A
(stolen yuzu)

Compatibility layers (...)

Name Platform(s) Latest Version Hardware features
and peripherals
Enhancements Compatibility FLOSS Active Recommended
ARM
Strato Android git ? ? 4%
58 out of 1426 reported titles
~
Skyline Android Edge 69 ? ? ? *

Emulation focused Linux distros (...)

Name Platform(s) Latest Version Hardware features
and peripherals
Enhancements Compatibility FLOSS Active Recommended
ARM
Horizon Linux Linux git ?

Comparisons

Emulators
Ryujinx
An open-source hybrid approach emulator that's programmed in C#. Unlike yuzu, Ryujinx does not 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. Ryujinx also uses an alternative approach to yuzu's NCE for improving performance when emulating on ARM systems.[3]
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 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 of the 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 unfortunately led to their decision to cease all development and official distribution of yuzu and Citra. Fortunately, it is easy to find an archive of the latest version, and it's work is likely to be continued by other developers.
Sudachi
An experimental port of yuzu to iOS/iPadOS by Jarrod Norwell, a newer graphical user interface and versions for Linux and macOS are in the plans. Rebased on latest EA-4176 and it has a separate repository for Windows and Android builds. Requires a paid Apple Developer Account or TrollStore in order to use the com.apple.developer.kernel.increased-memory-limit entitlement.
suyu
A fork of yuzu continues from where that project left off (based on latest EA-4176) on GitLab instead of Github suggested by the community due to potential takedown attempt. However, GitLab still took down the suyu repository due to the use of raw yuzu code. As a result, the Suyu team is now using their own repository. This decision, along with various precautions[4], suggests a desire to avoid legal claims similar to those faced by yuzu. Currently, the team is recruiting programmers to start studying the code. Thus, there's an adaptation period needed to see some serious advancements. In response to concerns about the project's financial motivations, the suyu team has emphasized a strict policy against accepting donations. They assure users that there is no intention to profit from the emulator. There have been inexperienced coding criticisms from some in the community directed at the current developers work.
Egg NS
Similar to DamonPS2, it's 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.
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.
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's 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 ingame 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[5]. The project was then handed over to the other developers.
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.

Hardware features and peripherals

Name Ryujinx suyu Sudachi yuzu Strato
Switch HOME Menu [6] [7] [8] ~[9]
Mii Editor *
NSO emulators ?
Amiibo *
Nintendo Labo ~[10][11][12] ? ? ? ?
Connectivity Nintendo Switch Online
Local Wireless Play / LDN ~ ~ ~ ~
LAN Play
Controllers[N 3] Native Dual Joy-Con Support ~* * ?
Ring-Con * * ?
Keyboard & Mouse ~* * ?
Inputs IR Motion Camera * *
HD Rumble * ~ ~ ~* ?
Motion Controls (Gyro) * * ?
Touchscreen * * ?

Connectivity

Local Wireless Play/LDN
Only works with other users of Ryujinx's LDN builds or yuzu users, NOT with native Switch players. However, Ryujinx also allows for connecting to CFW Switch devices that are using the ldn_mitm submodule. Also, there is a feature tracker for Ryujinx LDN upstreaming.
LAN Play
Not to be confused with Local Wireless Play. This one is similar to XBOX systems System Link feature or PlayStation systems LAN tunneling feature. Please see XLink Kai's setup guides for Ryujinx and yuzu
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 multiplayer titles using revivial private servers.

NSO emulators

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.

Enhancements

Name Ryujinx suyu Sudachi yuzu Strato
Graphics Resizable Internal Resolution *
Ultrawide hack
Widescreen already supported on Nintendo Switch system.
But there is no support by system for render games in other ratios such as ultrawide 21:9 or super ultrawide 32:9.
?
Texture Replacement ~[N2 1] ~ ~ ~*
Ray-tracing
(DXR, VRT and MRT)
Implementing ray-tracing in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future.
However you can try "Screen-Space Ray Traced Global Illumination" shader using ReShade.
(Demonstration)
Pre-rendering AA
(MSAA, SSAA)
Super-resolution techniques
(DLSS, XeSS and FSR 2+)
Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future.
Enhancement request for yuzu.
RTX Remix Implementing RTX Remix technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future.
Besides, yuzu and Ryujinx already supports some of RTX Remix features.
On top of that you can use ReShade for post-processing.
Performance Internal Framerate Hack ?
Frame generation technologies
(LSFG, DLSS-G, ExtraSS and AFMF)
Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, 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 employed, it's recommended to use after applying the "Internal Framerate Hack".
While AFMF or LSFG can be used with yuzu or Ryujinx, please be aware that some visual glitches and artifacts may occur at this time.
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.
[N 4]
Rendering latency reduction technologies
(LatencyFleX, Reflex 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 feasible. This is due to a combination of factors, including potential licensing issues[14] and likely doesn't offer enough benefit to justify the development effort.
Post-Processing Post-rendering AA
(FXAA, TXAA and MLAA/SMAA)
?
Post-rendering scaling
(Sharp bilinear, Lanczos and FSR 1)
?
Filters
AI-powered filter compatible
(Freestyle)
? * ?
Shader Chain
Inverse tone mapping compatible ? * ?
TAS features Macros/Scripts/Lua *
Rewind
Fast-Forward/Turbo Speed ~*
Savestates *
Movie recording/playback
Quality of life Built-in Graphics mod editor/manager * ~[N 5] ~[N 5] ~[N 5]
Built-in Cheat Manager ~[N 5] ~[N 5] ~[N 5]
Built-in Custom resolution/CRTSwitchRes
For using this on Windows OS 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.
Streamable compression format ~[N 6] [N 6] [N 6] [N 6]
Per-Game Profiles * * ?
Command Line Options * * * * ?
On-Screen Display
Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.
* ?
Variable Refresh Rate compatible ?
Big Picture Mode * ?
Controls Mouse Injector Compatible ~*
Input lag-mitigating technique
Misc RetroAchievements
EmuVR support Exclusive to libretro cores. So there is no support at the moment.
Free Look
Free Look is a enhancement feature that allows manipulation of the in-game camera.
~[N2 2] ~[N2 2] ~[N2 2] ~[N2 2] ?
Debug Features *

References

Notes
  1. According to a Progress Report from April 2023, texture replacement, along with all of the Patreon goal features that have been previously met will be finished and delivered. Implement texture replacement support for Ryujinx.
  2. 2.0 2.1 2.2 2.3 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.
  1. Official yuzu downloads have been taken down due to the Nintendo Lawsuit
  2. Obsolete list, there was a ongoing rewrite project, but yuzu is dead anyway.
  3. See PCGamingWiki: Joy-Con page for more information about Joy-Con and PC connectivity/compatibility.
  4. There is no Preload image to RAM implementation for Ryujinx but it has a kinda similar enhancement called "Profiled Persistent Translation Cache"[1][2].
  5. 5.0 5.1 5.2 5.3 5.4 5.5 yuzu or suyu has no dedicated interface like Ryujinx. All of cheats, updates, DLCs and mods in the Title Properties->Add-Ons column. See feature request for this.
  6. 6.0 6.1 6.2 6.3 There is a pull request for adding trimming XCI files feature to Ryujinx. It's 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. See overview of formats here.

Emulation issues

For more information about Nintendo Switch hardware and reverse engineering;