Editing Nintendo Switch emulators
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 12: | Line 12: | ||
}} | }} | ||
− | {{for|emulators that run on | + | {{for|other emulators that run on Switch hardware|Emulators on Switch}} |
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 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 emulators|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. | 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 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 emulators|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. | ||
Line 19: | Line 19: | ||
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''. | 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== | ||
− | <div style=" | + | <div style="max-width:100%; overflow:auto;"> |
− | {| class="wikitable" style="text-align:center; | + | {| class="wikitable" style="text-align:center;" |
! scope="col"|Name | ! scope="col"|Name | ||
! scope="col"|Platform(s) | ! scope="col"|Platform(s) | ||
Line 35: | Line 33: | ||
! scope="col"|[[Recommended Emulators|Recommended]] | ! scope="col"|[[Recommended Emulators|Recommended]] | ||
|- | |- | ||
− | !colspan="9"|x86 | + | !colspan="9"|PC / x86 |
|- | |- | ||
|[[Ryujinx]] | |[[Ryujinx]] | ||
Line 42: | Line 40: | ||
|{{~}} | |{{~}} | ||
|{{~}} | |{{~}} | ||
− | |[https://github.com/Ryujinx/Ryujinx-Games-List/issues 83%<br/><small> | + | |[https://github.com/Ryujinx/Ryujinx-Games-List/issues 83%<br/><small>3543 out of 4273 reported titles</small>] |
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
|- | |- | ||
− | + | |[[yuzu]] | |
− | |||
− | |[ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|align=left|{{Icon|Windows|Linux}} | |align=left|{{Icon|Windows|Linux}} | ||
− | |[https:// | + | |[https://yuzu-emu.org/help/early-access/ EA] ($)<br/>[https://yuzu-emu.org/downloads Mainline] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|{{~}} | |{{~}} | ||
|{{~}} | |{{~}} | ||
− | | | + | |''[https://yuzu-emu.org/game/ 54%<br/><small>1457 out of 2699 reported titles</small>]''<ref group=N>Obsolete list, there is a [https://github.com/yuzu-emu/yuzu/pull/11171 ongoing rewrite] project.</ref> |
− | |||
− | |||
− | |||
|{{✓}} | |{{✓}} | ||
− | |{{ | + | |{{?}}[[History_of_emulation#Lawsuits|*]] |
− | |||
|{{✓}} | |{{✓}} | ||
− | |||
− | |||
|- | |- | ||
|NSEmu | |NSEmu | ||
Line 117: | Line 85: | ||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
− | !colspan="9"|ARM | + | !colspan="9"|Mobile / ARM |
|- | |- | ||
− | |[[ | + | |[[yuzu]] |
− | |align=left|{{Icon| | + | |align=left|{{Icon|Android}} |
− | |[https:// | + | |[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:// | + | |?[https://old.reddit.com/r/yuzu/comments/13xuovh/current_compatibility_list_for_android/ *] |
|{{✓}} | |{{✓}} | ||
+ | |{{?}}[[History_of_emulation#Lawsuits|*]] | ||
+ | |{{~}} | ||
+ | |- | ||
+ | |[[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>] | ||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
+ | |{{~}} | ||
|- | |- | ||
− | |Sudachi | + | |Sudachi |
− | |align=left|{{Icon|iOS | + | |align=left|{{Icon|iOS}} |
− | | | + | |0.0.1.7 |
− | |{{ | + | |{{?}} |
− | |{{ | + | |{{?}} |
|{{?}} | |{{?}} | ||
|{{✓}} | |{{✓}} | ||
Line 139: | Line 117: | ||
|{{~}} | |{{~}} | ||
|- | |- | ||
− | |[[ | + | |[[Ryujinx]] |
− | |align=left|{{Icon|Android}} | + | |align=left|{{Icon|Android|iOS}} |
− | |[https:// | + | |[https://github.com/Ryujinx/Ryujinx/pull/6057 Unreleased] |
− | | | + | |? |
− | | | + | |? |
+ | |? | ||
|? | |? | ||
|{{✓}} | |{{✓}} | ||
− | | | + | |WIP |
− | |||
|- | |- | ||
− | |[[ | + | |[[Skyline]] |
|align=left|{{Icon|Android}} | |align=left|{{Icon|Android}} | ||
− | |[https:// | + | |[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 *] |
− | |||
− | |||
− | |||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
Line 165: | Line 143: | ||
|{{✗}} | |{{✗}} | ||
|[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 | + | |{{✗}}<br/><small>(stolen yuzu)</small> |
|{{✓}} | |{{✓}} | ||
|{{✗}} | |{{✗}} | ||
Line 178: | Line 156: | ||
|{{✗}} | |{{✗}} | ||
|{{✗}} | |{{✗}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|Horizon Linux | |Horizon Linux | ||
Line 242: | Line 167: | ||
|{{✗}} | |{{✗}} | ||
|} | |} | ||
+ | </div> | ||
+ | <references group=N/> | ||
+ | ;[[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. One of Ryujinx's notable feature is it's focusing compatibility and accuracy but has more shader stutters compared to yuzu. Also it has an alternative approach (alternative to yuzu's NCE) for emulation on ARM systems for improving performance.[https://blog.ryujinx.org/progress-report-january-2024/] | ||
− | + | ;[[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. Also offers early access pre-compiled builds to its $5/month [[Emulators on Patreon|Patreon]] supporters, these builds allow supporters to try out new features before they're released in the main version. However, if you have experience building and compiling, you can build your own version. Alternatively, some users create and share unofficial early access builds. One of yuzu's notable feature is its performance and has less shader stutters compared to Ryujinx, so it's ideal for weaker PCs. Yuzu also has free and paid Android versions which greatly improved recently thanks to the support for [https://github.com/yuzu-emu/yuzu/pull/12074 Native Code Execution (NCE)] and other improvements. Recent [https://github.com/yuzu-emu/yuzu/pull/12579 Device Mapping & SMMU] implementation further helps reducing memory footprint, allowing future optimizations and more. Also there are even more optimizations exclusive to the Linux-x86 and Android platforms thanks to the "[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. The yuzu's [https://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/ January 2024 progress report] highlights ongoing work on "multiprocess" and "services". This progress is crucial for emulating applets and enabling emulating system functions like the [[#Hardware_features_and_peripherals|QLaunch HOME Menu]], but further development is required before these features are fully implemented. '''The [[History_of_emulation#Lawsuits|recent lawsuit filed by Nintendo]] against the Yuzu emulator (including Citra) has led to the unfortunate decision to cease official distribution of Yuzu'''. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | :; Sudachi | |
− | :: | + | ::An experimental port of Yuzu to iOS/iPadOS by Jarrod Norwell. Requires a paid Apple Developer Account or TrollStore in order to use the <code>com.apple.developer.kernel.increased-memory-limit</code> entitlement. |
− | + | ;[[Skyline]] | |
+ | :The predecessor to the Strato project. 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 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. |
− | + | ;[[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. | |
− | + | ; 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== | ||
− | + | {| class="wikitable" style="text-align:center; vertical-align:middle;" | |
− | {| class="wikitable" style="text-align:center;vertical-align:middle; | ||
|- style="font-weight:bold;" | |- style="font-weight:bold;" | ||
! colspan=2 | Name | ! colspan=2 | Name | ||
! Ryujinx | ! Ryujinx | ||
− | ! | + | ! 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://yuzu-emu.org/entry/yuzu-progress-report-jan-2024/#future-projects WIP] |
− | |||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
| 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] | ||
|{{✓}} | |{{✓}} | ||
− | + | |{{✓}}[https://github.com/yuzu-emu/yuzu/pull/11569 *] | |
− | |{{✓}}[ | ||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
| colspan=2 | [[#NSO_emulators|NSO emulators]] | | colspan=2 | [[#NSO_emulators|NSO emulators]] | ||
|{{✓}} | |{{✓}} | ||
− | |{{ | + | |{{~}} |
− | |||
|? | |? | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| rowspan=3 | [[#Connectivity|Connectivity]] | | rowspan=3 | [[#Connectivity|Connectivity]] | ||
|Nintendo Switch Online | |Nintendo Switch Online | ||
− | |||
|{{✗}} | |{{✗}} | ||
|{{✗}} | |{{✗}} | ||
Line 332: | Line 223: | ||
|- | |- | ||
|Local Wireless Play / LDN | |Local Wireless Play / LDN | ||
− | |||
|{{~}} | |{{~}} | ||
|{{~}} | |{{~}} | ||
Line 338: | Line 228: | ||
|- | |- | ||
|LAN Play | |LAN Play | ||
− | |||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
− | | rowspan= | + | | rowspan=3 | Controllers<ref group=N2>Also see [https://www.pcgamingwiki.com/wiki/Controller:Joy-Con PCGamingWiki: Joy-Con] page for more information about Joy-Con and PC connectivity/compatibility.</ref> |
| 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}}[https://twitter.com/yuzuemu/status/1392967822402277376 *] |
− | |||
|? | |? | ||
|- | |- | ||
| [https://switchbrew.org/wiki/Ring-Con Ring-Con] | | [https://switchbrew.org/wiki/Ring-Con Ring-Con] | ||
− | |{{ | + | |{{N}}[https://github.com/Ryujinx/Ryujinx/issues/1713 *] |
− | |{{ | + | |{{Y}}[https://github.com/yuzu-emu/yuzu/issues/8489 *] |
− | | | + | |? |
+ | |- | ||
+ | | [https://www.destructoid.com/which-switch-games-have-mouse-and-keyboard-support-list/ Keyboard & Mouse] | ||
+ | |{{~}}[https://github.com/Ryujinx/Ryujinx/issues/3156 *] | ||
+ | |? | ||
|? | |? | ||
|- | |- | ||
− | | [https:// | + | | rowspan=4 | Inputs |
− | |{{ | + | | [https://www.nintendo.co.uk/Support/Nintendo-Switch/How-to-Check-the-IR-Motion-Camera-Functionality-1547323.html IR Motion Camera] |
+ | |{{N}} | ||
+ | |{{Y}}[https://yuzu-emu.org/entry/yuzu-progress-report-jul-2022/#input-improvements *] | ||
+ | |{{N}} | ||
+ | |- | ||
+ | | [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/yuzu-emu/yuzu/issues/4958#issuecomment-1235894977 *] | ||
|? | |? | ||
− | |{{ | + | |- |
+ | | Motion Controls (Gyro) | ||
+ | | {{Y}}[https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#motion-controls *] | ||
+ | | {{Y}}[https://twitter.com/yuzuemu/status/1392967822402277376 *] | ||
|? | |? | ||
|- | |- | ||
− | | | + | | Touchscreen |
− | |{{ | + | |{{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4574 *] |
− | |{{ | + | |{{Y}}[https://github.com/yuzu-emu/yuzu/issues/10065 *] |
− | |||
|? | |? | ||
|- | |- | ||
− | | | + | | colspan=2 | [[Amiibo]] |
− | | [[ | + | |{{✓}} |
− | |{{ | ||
|{{✓}} | |{{✓}} | ||
− | |||
|{{✗}} | |{{✗}} | ||
|- | |- | ||
− | | | + | | colspan=2 | Nintendo Labo |
− | |||
− | |||
− | |||
|? | |? | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|? | |? | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|? | |? | ||
|} | |} | ||
− | </ | + | <references group=N2/> |
+ | |||
===Connectivity=== | ===Connectivity=== | ||
− | + | ;Local Wireless Play/LDN: Only works with other users of [https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide Ryujinx's LDN builds] or [https://yuzu-emu.org/entry/ldn-is-here/ yuzu] users, NOT with native Switch players. However, Ryujinx also allows for connecting to [https://blog.ryujinx.org/introducing-ldn3/ CFW Switch devices that are using the ldn_mitm submodule]. Also, there is a feature tracker for Ryujinx [https://github.com/Ryujinx/Ryujinx/issues/4716 LDN upstreaming]. | |
− | + | ;LAN Play: Not to be confused with Local Wireless Play. This one is similar to [[:Category:Microsoft_consoles|XBOX systems]] System Link feature or [[:Category:Sony_consoles|PlayStation systems]] LAN tunneling feature. Please see XLink Kai's setup guides for [https://www.teamxlink.co.uk/wiki/Ryujinx_XLink_Kai_Setup Ryujinx] and [https://www.teamxlink.co.uk/wiki/Yuzu_XLink_Kai_Setup yuzu] | |
− | + | ;Nintendo Switch Online{{Main|Nintendo Switch Online}} | |
− | |||
− | ;Local Wireless Play/LDN: | ||
− | |||
− | |||
− | : | ||
− | |||
− | + | *yuzu: [https://yuzu-emu.org/entry/ldn-is-here/#compatibility compatibility list for connectivity] | |
− | + | *Ryujinx: [https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#animal-crossing-new-horizons LDN compatibility list] and [https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#lan-mode-games LAN Play compatibility list]. Also, you can play Super Mario Bros. 35 multiplayer using [https://smb35server.com/ special Ryujinx LDN build and smb35 revivial private server]. | |
− | + | *For more information about other revive projects see [[Preservation_projects|Preservation projects]] page. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | For more information about other revive projects see [[Preservation_projects|Preservation projects]] page | ||
===NSO emulators=== | ===NSO emulators=== | ||
Line 424: | Line 297: | ||
:*Ryujinx compatibility for NSO emulators: [https://github.com/Ryujinx/Ryujinx-Games-List/issues/3751 NSO N64], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/67 NSO NES], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/197 NSO SNES], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/3852 NSO Genesis], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/4407 NSO GameBoy], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/4409 NSO GameBoy Advance]. [https://github.com/Ryujinx/Ryujinx/pull/2959 This PR] change allows the JIT service, required by the NSO N64 emulator and Super Mario 3D All Stars (for Super Mario 64) to run. | :*Ryujinx compatibility for NSO emulators: [https://github.com/Ryujinx/Ryujinx-Games-List/issues/3751 NSO N64], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/67 NSO NES], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/197 NSO SNES], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/3852 NSO Genesis], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/4407 NSO GameBoy], [https://github.com/Ryujinx/Ryujinx-Games-List/issues/4409 NSO GameBoy Advance]. [https://github.com/Ryujinx/Ryujinx/pull/2959 This PR] change allows the JIT service, required by the NSO N64 emulator and Super Mario 3D All Stars (for Super Mario 64) to run. | ||
− | :*yuzu compatibility for NSO emulators: [ | + | :*yuzu compatibility for NSO emulators: [https://yuzu-emu.org/game/nintendo-64-nintendo-switch-online/ NSO N64], [https://yuzu-emu.org/game/nintendo-entertainment-system-nintendo-switch-online/ NSO NES], [https://yuzu-emu.org/game/super-nintendo-entertainment-system-nintendo-switch-online/ NSO SNES], [https://yuzu-emu.org/game/sega-genesis-nintendo-switch-online/ NSO Genesis]. |
==Enhancements== | ==Enhancements== | ||
− | + | {|class="wikitable" style="text-align:center; vertical-align:middle;" | |
− | {|class="wikitable" style="text-align:center;vertical-align:middle; | ||
|- style="font-weight:bold;" | |- style="font-weight:bold;" | ||
! colspan=2 | Name | ! colspan=2 | Name | ||
! Ryujinx | ! Ryujinx | ||
− | |||
! yuzu | ! yuzu | ||
! Strato | ! Strato | ||
Line 438: | Line 309: | ||
| rowspan=7 | Graphics | | rowspan=7 | Graphics | ||
| [[Resolution|Resizable Internal Resolution]] | | [[Resolution|Resizable Internal Resolution]] | ||
− | | {{ | + | | {{Y}} |
− | | {{ | + | | {{Y}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| [[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}} |
− | |||
| ? | | ? | ||
|- | |- | ||
| [[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://yuzu-emu.org/help/feature/game-modding/ *] | |
− | | {{~}}[ | + | | {{N}} |
− | | {{ | ||
|- | |- | ||
− | | Ray-tracing | + | | Ray-tracing |
− | | colspan= | + | | colspan=3 | <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}} |
− | |||
|- | |- | ||
− | | Super-resolution techniques<br/><small>([https://github.com/ | + | | Super-resolution techniques<br/><small>([https://github.com/NVIDIAGameWorks/Streamline/blob/main/docs/ProgrammingGuideDLSS.md DLSS], XeSS and FSR 2+)</small> |
− | | colspan= | + | | colspan=3 | <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] | ||
− | | colspan= | + | | colspan=9 | <small>Implementing RTX Remix technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future.<br/>Besides, yuzu and Ryujinx already supports some of RTX Remix features.<br/>On top of that you can use ReShade for post-processing.</small> |
|- | |- | ||
| 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}} |
− | |||
| ? | | ? | ||
|- | |- | ||
| [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= | + | | 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. |
|- | |- | ||
| [[Overclocking|Overclock]] | | [[Overclocking|Overclock]] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
− | | Preload [[Wikipedia: | + | | Preload [[Wikipedia:Template:Disk_images|optical disc 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 disc 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}} |
− | + | | {{N}} | |
− | | {{ | + | | {{N}} |
− | | {{ | ||
|- | |- | ||
| 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= | + | | 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> |
|- | |- | ||
− | | rowspan= | + | | rowspan=4 | 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}} |
− | |||
| {{?}} | | {{?}} | ||
|- | |- | ||
− | | [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and | + | | [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and FSR 1)</small> |
− | | {{ | + | | {{Y}} |
− | + | | {{Y}} | |
− | | {{ | ||
| {{?}} | | {{?}} | ||
|- | |- | ||
− | | [[Shaders_and_filters|Filters]] | + | | [[Shaders_and_filters|Filters]]<br/><small>[[Shaders_and_filters#NTSC_Filters|NTSC filters]], [[Shaders_and_filters#Tonemapping|HDR tonemapping]] etc.</small> |
− | + | | {{N}} | |
− | + | | {{N}} | |
− | + | | {{N}} | |
− | |||
− | |||
− | |[[Shaders_and_filters# | ||
− | | {{ | ||
− | |||
− | | {{ | ||
− | | {{ | ||
|- | |- | ||
| [[Shader_Presets|Shader Chain]] | | [[Shader_Presets|Shader Chain]] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}}[https://github.com/yuzu-emu/yuzu/issues/12655 *] |
− | + | | {{N}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | {{ | ||
|- | |- | ||
| rowspan=5 | [https://tasvideos.org/Emulatorresources/Features TAS features] | | rowspan=5 | [https://tasvideos.org/Emulatorresources/Features TAS features] | ||
| [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua] | | [[Wikipedia:Macro_(computer_science)|Macros/Scripts]]/[https://tasvideos.org/LuaScripting Lua] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{Y}}[https://yuzu-emu.org/help/feature/tas/ *] |
− | + | | {{N}} | |
− | | {{ | ||
|- | |- | ||
| Rewind | | Rewind | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| Fast-Forward/Turbo Speed | | Fast-Forward/Turbo Speed | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| Savestates | | Savestates | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}}[https://github.com/yuzu-emu/yuzu/issues/5049 *] |
− | + | | {{N}} | |
− | | {{ | ||
|- | |- | ||
| [https://tasvideos.org/Movies Movie recording/playback] | | [https://tasvideos.org/Movies Movie recording/playback] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
− | | rowspan= | + | | rowspan=8 | Quality of life |
| 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 *] |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| Built-in [[Cheats_and_patches|Cheat Manager]] | | Built-in [[Cheats_and_patches|Cheat Manager]] | ||
− | | {{ | + | | {{Y}} |
− | | {{ | + | | {{N}}[https://github.com/yuzu-emu/yuzu/issues/10202 *] |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| Built-in [http://forum.arcadecontrols.com/index.php/topic,106405 Custom resolution/CRTSwitchRes]<br/><small>For using this on Windows OS you need [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver].<br/>Another option is using EDID editor tool such as "Custom Resolution Utility".</small> | | Built-in [http://forum.arcadecontrols.com/index.php/topic,106405 Custom resolution/CRTSwitchRes]<br/><small>For using this on Windows OS you need [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver].<br/>Another option is using EDID editor tool such as "Custom Resolution Utility".</small> | ||
− | | colspan= | + | | colspan=7 | N/A<br/><small>Eighth gen home consoles and beyond only have digital video output anyway.</small> |
|- | |- | ||
| [[Save_disk_space_for_ISOs#Switch|Streamable compression format]] | | [[Save_disk_space_for_ISOs#Switch|Streamable compression format]] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
| 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://yuzu-emu.org/entry/yuzu-progress-report-dec-2023/#android-specific-ui-and-miscellaneous-changes *] |
− | |||
| {{?}} | | {{?}} | ||
|- | |- | ||
| Command Line Options | | Command Line Options | ||
− | | {{ | + | | {{Y}}[https://github.com/Ryujinx/Ryujinx/issues/4981#issuecomment-1550751066 *] |
− | | {{ | + | | {{Y}}[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}}[https://github.com/yuzu-emu/yuzu/issues/6812 *] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| {{?}} | | {{?}} | ||
|- | |- | ||
| [[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}} |
− | |||
| {{?}} | | {{?}} | ||
|- | |- | ||
Line 618: | Line 448: | ||
| [[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}} |
− | |||
|- | |- | ||
| [[Input_lag|Input lag-mitigating technique]] | | [[Input_lag|Input lag-mitigating technique]] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|- | |- | ||
− | | rowspan= | + | | rowspan=3 | Misc |
| [https://retroachievements.org/game/8988 RetroAchievements] | | [https://retroachievements.org/game/8988 RetroAchievements] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 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> | ||
| {{?}} | | {{?}} | ||
|- | |- | ||
| [[Wikipedia:Category:Debugging|Debug Features]] | | [[Wikipedia:Category:Debugging|Debug Features]] | ||
− | | {{ | + | | {{N}}[https://github.com/Ryujinx/Ryujinx/issues/5486 *] |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<references group=N2/> | <references group=N2/> | ||
− | |||
==Emulation issues== | ==Emulation issues== | ||
Line 665: | Line 478: | ||
* MVG: [https://www.youtube.com/watch?v=xQmN-cxg21M How the Nintendo Switch Security was defeated] | * MVG: [https://www.youtube.com/watch?v=xQmN-cxg21M How the Nintendo Switch Security was defeated] | ||
* Ryujinx: [https://blog.ryujinx.org/ Blog], [https://discord.gg/ryujinx Discord] | * Ryujinx: [https://blog.ryujinx.org/ Blog], [https://discord.gg/ryujinx Discord] | ||
− | * Yuzu: [ | + | * Yuzu: [https://yuzu-emu.org/entry/ Blog], [https://discord.gg/yuzu-emu 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] | ||
* [https://reswitched.github.io/awesome/ ReSwitched - Awesome Switch: resources] | * [https://reswitched.github.io/awesome/ ReSwitched - Awesome Switch: resources] | ||
+ | |||
+ | ==References== | ||
+ | <references /> | ||
{{Nintendo}} | {{Nintendo}} |