Difference between pages "Project64" and "Nintendo Switch emulators"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Problems: restored based on wayback machine)
 
(Emulators)
 
Line 1: Line 1:
{{Infobox emulator
+
{{Infobox console
|logo = Project_64_logo.png
+
|title = Nintendo Switch
|logowidth = 93
+
|image = nintendo-switch.png
|version = {{Project64Ver}}
+
|image2 = switchdocked.png
|active = Yes
+
|imagecaption = The Switch in its two forms, portable (above) and docked (below).
|platform = Windows
+
|developer = [[:Nintendo]]
|architecture = x86
+
|type = [[:Category:Hybrid consoles|Hybrid video game console]]
|target = [[Nintendo 64 emulators|Nintendo 64]]
+
|generation = [[:Category:Eighth-generation video game consoles|Eighth generation]]
|orig-developer = zilmar<br/>Jabo
+
|release = 2017
|developer = [https://github.com/project64/project64/graphs/contributors Project64 Team]
+
|predecessor = [[Wii U emulators|Wii U]]
|website = [http://www.pj64-emu.com/ PJ64-emu.com]
+
|emulated = {{✓}}
|support = [https://www.patreon.com/Project64 Patreon]
 
|source = [https://github.com/project64/project64 GitHub]
 
 
}}
 
}}
'''Project64''' is an open source, plugin-based [[Nintendo 64 emulators|Nintendo 64 emulator]].
 
  
==Download==
+
The '''[[wikipedia:Nintendo Switch|Nintendo Switch]]''' is an eighth-generation hybrid gaming console released by Nintendo on March 3, 2017 and retailed for {{Inflation|USD|299.99|2017}}. During its development, the Switch was known as the NX (short for NeXt or Nintendo "Cross") and was widely speculated up until its announcement. Aside from specialized components unique to the console, the hardware is more or less off-the-shelf, being built around a semi-custom variant of Nvidia's Tegra X1 system-on-a-chip which was also used on a number of [[Android emulators|Android devices]]. The Switch contains 4 ARM Cortex-A57 CPUs and 4 ARM Cortex-A53 CPUs running at 1.020 GHz with 4GB of RAM and a proprietary GPU codenamed GM20B.
{| cellpadding="4"
+
 
 +
While Nintendo intended to step up the security of the console, vulnerabilities were still found early on that allowed tons of system files to be dumped, including dumps of games in the form of romfs.istorage archives, an exefs folder, and license files. These game dumps eventually got shared online by scene groups except for their licenses but were missing important files to run and even if they had been completed, there were no custom homebrew apps let alone solutions to load unofficial game dumps for the system. A number of prominent hacking teams (starting with shuffle2 and fail0verflow in collaboration) all came across a new exploit independently of each other that allowed complete control over the system, later officially recognized by Nvidia as CVE-2018-6242.
 +
 
 +
A "debugging emulator" for the Nintendo Switch, CageTheUnicorn (now [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==
 +
{| class="wikitable" style="text-align:center;"
 +
! scope="col"|Name
 +
! scope="col"|Platform(s)
 +
! scope="col"|Latest Version
 +
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 +
! scope="col"|Active
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
|align=center|{{Icon|Win-big}}
+
! colspan="6"|PC / x86
|'''[https://www.pj64-emu.com/public-releases Official Public releases]'''
 
 
|-
 
|-
|align=center|{{Icon|Win-big}}
+
|[[yuzu]]
|'''[https://www.pj64-emu.com/nightly-builds Official Nightly builds]'''
+
|align=left|{{Icon|Windows|Linux}}
 +
|[https://yuzu-emu.org/downloads Nightly][https://github.com/yuzu-emu/yuzu git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|colspan="3"|<hr/>
+
|[[Ryujinx]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://ryujinx.org/#/Build Nightly][https://github.com/Ryujinx/Ryujinx git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 
|-
 
|-
|align=center|{{Icon|Win-big}}
+
|NSEmu
|[http://www.emucr.com/search/label/Project64?&max-results=12 Unofficial dev builds]<br/><small>Compiled by emucr, may contain old/deprecated plugins</small>
+
|align=left|{{Icon|Windows}}
 +
|[https://github.com/RKX1209/nsemu git]
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 
|-
 
|-
|align=center|{{Icon|Win-big}}
+
|Mephisto
|[http://www.mediafire.com/download/61dvb4n9xk25oo6/Project64.rar Unofficial bundle]<br/><small>Includes PJ64 1.6, PJ64 2.1 and various other plugins
+
|align=left|{{Icon|Linux|macOS}}
</small>
+
|[https://github.com/reswitched/Mephisto/releases git]
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|CageTheUnicorn
 +
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 +
|[https://github.com/reswitched/CageTheUnicorn git]
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
!colspan="10"|Mobile / ARM
 +
|-
 +
|[[Skyline]]
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/skyline-emu/skyline/releases git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}<small> (WIP)</small>
 +
|-
 +
|[https://eggns.wordpress.com Egg NS]
 +
|align=left|{{Icon|Android}}
 +
|[https://drive.google.com/file/d/1RygOcWDULuwoGSORDrtCXHHof1KoldKO/view 2.1.6 Beta 5]
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 
|}
 
|}
  
==History==
+
;[[yuzu]] <small class="plainlinks" style="font-weight:normal;">([https://yuzu-emu.org/game compatibility])</small>
It first came out as a purely experimental emulator by developers zilmar and Jabo. It quickly revolutionized the N64 emulation landscape. For many years afterward, it was considered to be the best N64 emulator, with only Mupen64 and [[1964]] posing any real competition. By version 1.6, it was touted as being not only highly compatible but also the most stable of the lot.
+
:An open-source emulator made by many of [[Citra]]'s developers. As it is a hard fork of Citra it shares many of its traits, namely cross-platform support and the use of OpenGL (though unlike Citra it also supports Vulkan). Many 2D games now render graphics properly and at good speeds; many 3D games are playable. This emulator currently offers early access builds to $5/month [[Emulators on Patreon|Patreon]] subscribers which allows them to utilize new features prior to their eventual release on the mainline build. One of yuzu's notable features is its disk-based shader cache for OpenGL, negating the need to compile shaders on the fly on every boot. Resolution scaler was disabled some time ago due to bugs, but in July 2021 work on reimplementing resolution scaler has started.
 
However, upon announcing the development of version 1.7, the project became closed off to most of the public. The only way to keep up with the latest developments was to donate $20 to obtain beta testing privileges. However, there were several development version leaks, most of which turned out to be unstable, prone to crashes, and full of performance and compatibility regressions, which cast doubt upon the competency of the developers. Upon Jabo's departure from the project in 2011, most people came to regard Projec64 as being stuck in development limbo, if not completely dead.
 
 
In 2013, however, zilmar, now the lone developer of Project64, released version 2.0, including its complete source code. Quickly afterward, version 2.1 was released. However, these versions proved to be a mixed bag in comparison to the older, long-standing 1.6 release, and even the leaked 1.7 betas in some respects. Several compatibility issues were fixed, and the interface was cleaned up, but the default plugins were largely inferior to earlier iterations, and even the core itself saw compatibility regressions in some games. And though the source had been made public, there was no public repository for developers to contribute fixes or pull requests, resulting in the project to becoming dormant again.
 
 
In 2015, zilmar created a public Project64 repository on GitHub, at last opening the gates for public contributions. Development picked up at break-neck speed and has yet to cease. Many of the issues with earlier versions of Project64 have now been fixed. It has been mostly ported to 64-bit, and there is even an effort underway to make it more portable and eventually work on non-Windows platforms.
 
 
 
==Problems==
 
===Malware and nagware===
 
[[File:PJ64 fan .jpg|350px|thumb|right|A user complaining on the PJ64 forums after installing bundled malware]]
 
 
Up to version 2.2, the official installer for PJ64 included opt-out malware in the installer. In July of 2016, the malware was removed from both the source code and installers.<ref>https://github.com/project64/project64/issues/468</ref> However, version 2.3 introduced a benign but irritating nagware screen that pops up when launching PJ64 after starting it multiple times, which grows more persistent with successive launches as a forced waiting period is installed. This can be disabled by modifying <code>project64.cfg</code> to appear as follows: <pre>[Support Project64]Run Count=-1</pre> Alternatively, you can type "'''thank you from project64'''" as the notification code.
 
 
 
===Project64 2.4.0.1555 New Support Code Nag Scheme===
 
 
 
UPDATED MARCH 19, 2021 -There is now a per-machine ID that gets generated on the user side and requests a confirmation code associated with it.
 
 
 
-Setting the Run Count to -1 in project64.cfg no longer stops the nag.
 
 
 
-The "thank you from project64" code no longer works (obviously, since they are now unique for every machine).  
 
  
===Windows 10 BSOD===
+
;[[Ryujinx]] <small class="plainlinks" style="font-weight:normal;">([https://github.com/Ryujinx/Ryujinx-Games-List/issues compatibility])</small>
Following the stable release 2.0, Windows 10 users had a high likelihood of encountering a BSOD upon attempting to run Project64.<ref>https://github.com/project64/project64/issues/556</ref> This was fixed before the release of version 2.3, so Windows 10 users are encouraged not to use versions 2.0–2.2.
+
:An open-source emulator that's programmed in C#. Most 2D games are now booting and running at comfortable speeds and many 3D games are playable. It also supports resolution upscaling to 4K and beyond; custom upscaling/downscaling ratios are supported. Ryujinx now has a disk-based shader cache. Unlike yuzu, Ryujinx does not offer packaged early access builds; however work-in-progress features can still be tested by using Appveyor builds or building locally from unmerged pull requests. Separately, Ryujinx has released a closed source LDN-enabled preview build supporting local wireless multiplayer across the internet, as well as LAN mode compatibility on local networks with Switch consoles on supported games. As of August 2021, Vulkan API support has been added.
  
==Plugins==
+
;Skyline
{{Main|Recommended N64 plugins}}
+
:An open-source [[Compatibility layers|compatibility layer]] for ARMv8 [[Android]] devices. For the sake of convenience, the team bills the app as an emulator, but it functionally works like [[Wine]], running almost all of the original code on bare metal except for what interfaces with the rest of the system. At the moment Skyline does not have any graphical output, but some games do boot with audio only.
Project64 still ships with Jabo's video and audio plugins and for many years used them as defaults (along with his input plugin). These plugins are closed-source, haven't been updated since the 1.7 days, and even have regressions compared to Jabo's 1.6.1 versions. However, Project64 now defaults to its own branded video, audio, and input plugins that are a fork of Glide64, a fork of Mupen64Plus's audio, and original respectively. It additionally ships with GLideN64 and N-Rage's input plugin, both of which are recommended over the defaults. Users may still prefer additional plugins for accuracy or feature set, such as Angrylion video, Azimer's audio, and HatCat's RSP interpreter.
 
  
==Netplay==
+
;Egg NS
Uses [http://kaillera.com/ Kaillera] or AQZ.
+
:Similar to DamonPS2, closed-source payware/malware emulator only for Android. '''It can hardly run any games''' and behaves very much like virus software. '''It is best to NOT use this emulator'''.Claimed the first spot in getting games running on Android. 81 titles are purported to work, and the rest are either not working or assumed to fail. There is significant controversy surrounding this emulator for the following reasons: the current version lacks any onscreen buttons and instead requires users to purchase a specific controller; it expects to run on a high-end device within the ballpark of a Qualcomm Snapdragon 855/855+/865/865+; '''it was discovered to have violated GPLv2 licensing requirements by using code from yuzu in a disallowed manner. Made by the Chinese illegal market.'''
  
===Downloads===
+
==See also==
* [https://www.mediafire.com/?6s0khv97k82e5c5 Project64 1.7 AQZ Version]
+
* [[Emulators on Switch]]
* [http://mupen64k.blogspot.com/ mupen64++]
 
 
 
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
 
! colspan=2 width="250"|Review (Kaillera)
 
|-
 
| '''PROS''' ||
 
* Support for up to 4 simultaneous people playing
 
* No fiddling with router settings and port forwarding
 
* Netplay traffic is handled by dedicated central servers as well as other less populated servers
 
* Master server list of all servers. As well as waiting games option of cached games in the master server list
 
* Private game chat support and public chat to speak people outside your game room
 
* Being able to drop out of a game at any time usually without disrupting your teammate(s)
 
* Kicking/banning/muting people from your room
 
* It's a matchmaking service where you can join other people's rooms, too
 
* Has recording and playback for emulation
 
|-
 
| '''CONS''' ||
 
* Disables Transfer, Rumble and Memory Pack emulation (AFAIK, not 100% sure about Memory Pack)
 
* It sometimes fails to properly initialize Glide64 video plugins, giving them a black screen when the game starts
 
* It also seems to hate certain older video plugins,' causing massive FPS drops
 
* It's slightly (significantly still) prone to freezing/crashing/BSOD (in that order)
 
* Random, inconsistent FPS drops due to the server trying to keep everyone synced, sometimes stuttering. It's annoying, but rarely does it make it unplayable
 
* Everyone needs to have the exact same ROM version or netplay won't work (if it somehow does, it'll desync rather quickly)
 
* After 18 minutes you will desync on Kaillera Servers.
 
* You need to constantly switch focus back and forth between chat and emulator window in order to chat.
 
* You will hear no sound while the window is unfocused.
 
|}
 
 
 
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
 
! colspan=2 width="250"|Review (AQZ)
 
|-
 
| '''PROS''' ||
 
* Allows for unlimited connections (4 players only, the rest are spectators)
 
* Unusually low bandwidth usage
 
* Can change latency on the fly to smooth out netplay experience at the expense of input lag
 
* Works very well with 2 to 3 players, even with +200ms
 
* Only the host needs to open a port
 
|-
 
| '''CONS''' ||
 
* Definitely disables Transfer, Rumble and Memory Pack emulation
 
* If a client drops while a game is in session, the entire server stops automatically
 
* The server seems to work reliably smooth with 3 people, but might stutter and lag with 4, regardless of latency
 
* It sometimes fails to properly initialize Glide64 video plugins, giving them a black screen
 
* It also seems to hate certain older video plugins, causing massive FPS drops
 
* It's sometimes troublesome to get it to properly sync during the first few minutes but works flawlessly after you get it working
 
* Randomly freezes the emulator with no warning
 
* Very rarely produces a BSOD
 
|}
 
  
 
==References==
 
==References==
{{reflist}}
+
<references />
 
+
==External Links==
+
{{Nintendo}}
* [https://discordapp.com/invite/sbYbnda Discord]
 
  
[[Category:Emulators]]
+
[[Category:Consoles]]
[[Category:Nintendo 64 emulators]]
+
[[Category:Handheld consoles]]
[[Category:Netplay]]
+
[[Category:Home consoles]]
[[Category:Custom Assets]]
+
[[Category:Hybrid consoles]]
 +
[[Category:Eighth-generation video game consoles]]
 +
[[Category:Nintendo consoles]]
 +
[[Category:Nintendo Switch emulators|*]]

Revision as of 15:25, 7 November 2021

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

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

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

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

Emulators

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

See also

References