Difference between pages "Recommended N64 plugins" and "Cemu"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(RetroArch)
 
m (Lot's of outdated info, I can't fix everything right now.)
 
Line 1: Line 1:
 +
{{Infobox emulator
 +
|logo = Cemu-Logo.png
 +
|version = {{CemuVer}}
 +
|active = Yes
 +
|platform = [[Emulators on Windows|Windows]]
 +
|architecture = x86_64
 +
|target = [[Wii U emulators|Wii U]]
 +
|developer = Exzap, Petergov
 +
|website = [http://cemu.info Cemu]
 +
|license = Closed-source freeware
 +
|compatibility = [https://compat.cemu.info Compatibility list]
 +
|support = [https://www.patreon.com/cemu Patreon]
 +
|bios = [[Emulator_Files#Wii_U|Optional]]
 +
}}
 
{{Outdated}}
 
{{Outdated}}
 +
'''[[wikipedia:Cemu|Cemu]]''' is a closed-source [[Wii U emulators|Wii U emulator]] for Windows. Its development was started circa 2015 and it's known to be the very first Wii U emulator ever that can boot games.
  
The N64 emulation scene had previously been described as a broken mess, the very definition of plugin hell. With recent developments in the scene, however, the situation has markedly improved, and it is no longer considered necessary to have multiple emulators and plugins on hand to get most games to work. This page will outline the best plugins currently available for the benefit of both the casual and enthusiast looking to get their N64 emulation fix.
+
Before updates are publicly released, they're accessible to backers over at [https://www.patreon.com/cemu their Patreon].
  
==The Plugin Specs==
+
==Download==
To understand the current plugin situation, and why there are several competing emulators that all appear to use the same plugins but said plugins are not compatible across emulators, a bit of history is in order.
+
{| cellpadding="4"
 +
|-
 +
|align=center|{{Icon|Win-big}}
 +
|'''[http://cemu.info/index.html#download Latest public release]'''<br/><small>Available one week after the Patreon builds release</small>
 +
|-
 +
|}
  
Historically, the majority of N64 emulators all shared the same plugin spec (known as the zilmar spec, after the creator of Project64, the first emulator to use it), and could therefore all use the same plugins, meaning you could take a plugin DLL file, use it on one emulator, then take that DLL and use it on another, and it would also work there. Of these, the big three emulators were Project64, 1964 and Mupen64. Each had advantages and disadvantages, and some games worked well in one only to not work in another, even when using the same plugin configuration. This necessitated having all of these emulators and sometimes even older or modified versions of them, along with a great many plugins, to be able to play most of the N64 library with the least amount of issues possible - though admittedly a good amount of games (particularly the most popular ones) were playable with just the best few of them. To illustrate the point, [http://bhemuhelp.unaux.com/n64mgcl/N64ConfigList.html here] is a site that, as late as 2012, was dedicated to documenting the exact emulator, plugin and settings combination necessary to get each and every game to at least a playable state, if at all possible.
+
==System requirements==
 +
You will also need enough storage for the [[Wii U emulators|Wii U]] games. Running Cemu on [[Wine]] has been reported to work just as well as Windows.
 +
===Minimum===
 +
* Windows 7 (64-bit)
 +
* Graphics Card: Supports at least OpenGL 4.5 or Vulkan 1.1
 +
* Memory: 4 GB
 +
===Recommended===
 +
* Windows 10 (64-bit)
 +
* Graphics Card: Supports OpenGL 4.6 (Vulkan 1.1 for AMD or Intel)
 +
* Memory: 8 GB or more
  
However, as time went on, things began to change, slowly at first. 1964's development eventually ceased, and it completely fell off the radar. Mupen64 was forked into Mupen64Plus and developed its own plugin spec that was incompatible with the older zilmar spec, making it unable to use existing plugins unless they were specifically ported to it. This left only Project64 as the only relevant and active emulator still using the zilmar spec. For some time, then, this left the fledgling Mupen64Plus missing out on most cutting-edge plugin development, as most people were still using Project64.
+
==Game formats and needed files==
 +
===Physical dumps===
 +
You'll first need to fill in the "keys.txt" file in Cemu's directory. It has a sample line with a bogus key and a comment, which you may as well delete.  
  
A semblance of parity began to come about as a result of several major developments: first, Mupen64Plus itself was forked by the libretro team, which made many improvements to the core emulator, and integrated its plugins into the core itself. Second, gonetz, the developer of Glide64, unveiled his newest plugin, GLideN64, which would officially support both the zilmar and Mupen64Plus specs from the beginning. Third, the Angrylion plugin, which is the most accurate and compatible (and slowest) plugin there is, began to be ported both for use with standard Mupen64Plus and the libretro fork. Finally, Themaister, one of the creators of libretro and RetroArch, began developing a unique plugin initially exclusive to libretro known as ParaLLEl-RDP, essentially Angrylion running on the GPU through Vulkan compute shaders, enabling near-perfect N64 graphics emulation at actually playable speeds. Add to this the fact that most PCs and many mobile devices are now more than capable enough of running the most advanced plugins, and the plugin situation, once considered a labyrinth, has been greatly simplified to just needing a few for the vast majority of use cases.
+
Your file must have many lines like this, one for the Wii U Common Key (D7B00402659BA2ABD2CB0DB27FA2B656), and one line for the Game Key of each game. Sharing these keys isn't exactly safe legally, but ROM sites at least share [http://pastebin.com/GWApZVLa the Game ones]. Note that for games using the Loadiine format, you won't need a Game Key at all, but those will need Cemu versions from 1.4.0 onward.
  
All that said, the issue is that there are now three plugin standards to account for:
+
Your ISO must be either uncompressed, compressed using WUD format, or in Loadiine format (only possible for versions 1.4.0 onward) to boot in Cemu. Here's a [http://docs.google.com/spreadsheets/d/19WV2YQvS2PkiHnQTlYP7cE2eHOPl06Rx4tCvfud_Hpw/edit?pref=2&pli=1#gid=0 compatibility list]. Dump your discs using [https://gbatemp.net/threads/wudump-dump-raw-images-from-a-wiiu-game-disc.451736/ Wudump].
  
*The zilmar spec - Utilized by Project64 and most other legacy emulators; only Project64 still uses it today.
+
===Digital copies===
 +
Cemu supports either physical games dumps in WUD, or compressed WUX format, as well as game dumps converted to the Loadiine format. Loadiine games come as multiple directories with game files and a .rpx file.
  
*The Mupen64Plus spec - Utilized by Mupen64Plus and most of its forks.
+
Nintendo's CDN for Wii U and 3DS digital games is rather poorly secured, due to a huge oversight when designing the software protection for these consoles. As such, with tickets proving you bought the game (but which you can get through less legit ways), there are downloader utilities like NUSGrabber, FunKiiU, UWizard, or jnus among others, and decryption tools like UWizard and CDecrypt, to obtain a functional copy. The process of how to exactly acquire those files is detailed elsewhere on this wiki.
  
*The libretro spec - Not really a spec per se, as the plugins are integrated directly into the core, so there's no DLL files to download or add.
+
Load the .rpx file from [Your gamelocation]/code/[yourgame].rpx with Cemu.
  
As of right now, not all plugins are readily available on all three. Consult the table below for reference:
+
===Updates and DLC===
 +
Prior to 1.7.3, only updates were supported though pasting update files on the main game's folders (keeping in mind the main game is in Loadiine format) and overwriting any files. DLC wouldn't work at all through this method, though with some specific games there were workarounds and some could play DLC tracks in Mario Kart 8 through swapping of specific files. From 1.7.3 onwards, proper support for DLC and updates was included in Cemu.
  
{| class="wikitable" style="text-align:center;"
+
The Update installation method has been reworked since 1.11.0 simplifying the installation method a lot.
! scope="col"|Name
+
To install updates and DLC on Cemu on (1.11.0)+ versions you need to follow theses steps :
! scope="col"|Latest Version
+
 
! scope="col"|Project64
+
*On Cemu interface, select File -> Install game update or DLC
! scope="col"|Mupen64Plus
+
*Select the meta.xml in the meta folder of the update or DLC
! scope="col"|Libretro
+
*Run the game to update the UI and show the update and/or DLC version
! scope="col"|HLE
+
 
! scope="col"|LLE
+
===Amiibo support===
! scope="col"|Recommended]
+
[[Amiibo]] are hard-to-find figurines unlocking various on-disc content in select 3DS and Wii U games. They use the NFC technology. Nintendo Amiibo data is distributed online as NFC tags (.bin files). There's a regularly updated complete set of the official ones but there are also unofficial spoofed packs on various other sites.
|-
+
 
!colspan="13"|Video Plugins
+
Recent versions of Cemu include Amiibo support. Simply go to NFC / Scan NFC Tag from file, and load the relevant .bin file. Keep in mind Amiibo support in Cemu is incomplete right now and not all figurines are compatible yet - though incompatibilities may be caused by bad Amiibo dumps as well.
|-
+
 
|ParaLLEl-RDP
+
==Setting up Cemu==
|[https://github.com/Themaister/parallel-rdp git]
+
===Controls===
|{{✓}}
+
Cemu added native support for Wii Remote controllers as of 1.12.0.
|{{✓}}
+
 
|{{✓}}
+
Cemu cannot connect to a real (or emulated) [[Nintendo 3DS emulators|3DS]].
|{{✗}}
+
 
|{{✓}}
+
===Cemuhook===
|{{✓}}
+
Using this is completely optional but highly recommended. Without Cemuhook, some games won't have texts, have laggy cutscenes and display numerous other bugs.
|-
+
 
|GLideN64
+
Download [http://sshnuke.net/cemuhook/ the latest version] compatible with your Cemu version, unpack it to the same directory as cemu.exe and right-click on dbghelp.dll, check Proprieties, Digital Signatures tab, select a signature and press Details. This should make it no longer crash at start-up. Make sure you also have the latest GPU driver installed, as well as both x86 and x64 versions of the [https://aka.ms/vs/15/release/vc_redist.x64.exe Microsoft Visual C++ 2017 X64 Redistributable].
|[https://github.com/gonetz/GLideN64/releases/tag/github-actions github-actions]
+
 
|{{✓}}
+
After the first boot of Cemu with cemuhook installed, accept to download the missing shared fonts to make the text in some games (Super Mario Maker among others) display correctly.
|{{✓}}
+
Whenever you boot Cemu now, this cemuhook tool is enabled by default and offers various additions for better motion control emulation or some graphical hacks that greatly enhance Zelda BOTW in particular.
|{{✓}}
+
Various way to take advantages of the cemuhook motion control emulation are listed [http://compat.cemu.info/wiki/Motion_Sensing#Full-motion_Solutions here].
|{{✓}}
+
 
|{{✓}}
+
Enabling "GX2SetGPUFenceSkip (HACK)" enhances graphical emulation in BOTW in particular. A pre-installed Graphical Pack that comes with recent versions of Cemuhook, "LWZX Crash Workaround", as well as the "GX2DrawDone()" option under Experimental, should help with some general crashes specific to BOTW.
|{{✓}}
+
 
|-
+
As of version 1.18.0, cemuhook is no longer considered required to run the emulator, as all major functions previously provided by cemuhook have been implemented into the emulator itself.
|Angrylion RDP Plus
+
 
|[https://github.com/ata4/angrylion-rdp-plus/releases/tag/v1.6 1.6]
+
===Shader caches===
|{{✓}}
+
When your game is loaded, check for its ID on the title bar in front of "SaveDir:" and note it down. The directory where transferable shader caches are stored is <code>.\Cemu\shaderCache\transferable</code>. They're generated the first time you play through a game and at that time cause noticeable stuttering. You can download a complete cache from places like [http://www.reddit.com/r/Cemucaches/comments/7bv7el/complete_shader_cache_collection_1110c_v2/ here] and rename them to match your game version's ID to spare yourself most of that unpleasant experience. Just keep in mind that shader caches from versions older than 1.8.0 are incompatible with later versions of Cemu.
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|Glide64
 
|Final
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{~}}
 
|-
 
|Jabo's Direct3D8
 
|1.7.0.57-ver5
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|-
 
|Rice Video
 
|0.4.4
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|glN64
 
|0.4.1
 
|{{✓}}
 
|{{✗}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|-
 
|z64gl
 
|R17
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✗}}
 
|-
 
|Angrylion (Official)
 
|r114
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✓}}
 
|{{✗}}
 
|}
 
  
==Video==
+
At startup, Cemu will prepare a compiled version of that cache under <code>.\Cemu\shaderCache\precompiled</code> and that one depends on your GPU driver, so you might want to erase it if any problems or crashes when compiling shaders at startup occur.
===Currently Recommended Plugins===
 
The following are the current best video plugins for use on modern PCs and devices.
 
  
[[File:SuperMario64-Comparison.png|thumb|right|Jabo's Direct3D8 (left) compared with angrylion's RDP with OpenGL (right), while playing ''Super Mario 64''.]]
+
==Troubleshooting/speeding up==
*[https://github.com/Themaister/parallel-rdp ParaLLEl-RDP] - An LLE video plugin based on Angrylion's RDP plugin, ported to run on the GPU through the use of the Vulkan API's compute shaders. Currently considered the best video plugin by most measures. It is just as accurate and compatible as Angrylion's RDP, but much faster. Like most Angrylion forks, it allows disabling of VI features such as anti-aliasing and blur. Unlike the software-rendered Angrylion, however, it also allows a number of enhancements, including hi-res upscaling, resulting in a sharp, high-definition picture while simultaneously retaining accuracy, essentially what the N64 output would look like if the original console could render in HD. It has higher system requirements than the other plugins, however. It requires a GPU with Vulkan support (most GPUs from 2014 onwards are covered) and up-to-date drivers, and upscaling increases the GPU requirements even further, far more than GLideN64. At native resolution, however, a modest PC with Vulkan support can handle it without much issue, even on integrated graphics. Due to its LLE nature, it does not support widescreen hacks or high-res textures - try GLideN64 if you seek to use such features.
+
===Shader caches===
*[https://github.com/gonetz/GLideN64/ GLideN64] - A hybrid HLE/LLE plugin developed by the maker of Glide64, though its code is actually originally based on gln64 (with combiner hacks from Glide64 and LLE code from z64gl). This is the best HLE plugin by far. The plugin currently supports mip-mapping, emulation of low-level triangles, microcode of every game, gamma correction, flat and prim shading, VI emulation, and LLE graphics (though defaults to HLE). It is the only plugin that has [[Nintendo_64_emulators#High-level_vs._low-level_graphics|implemented HLE support]] of microcodes for every N64 game (including the infamous Factor 5 and BOSS games) to enable fast performance and graphical enhancements. It currently fixes numerous long-standing issues in games and is capable of smoothly emulating advanced framebuffer effects in hardware that Glide64 and Jabo could not. It also supports several enhancements, such as hi-res custom [[Texture_Packs|texture support]], AA and AF, a [[Widescreen_Hack|widescreen hack]], and even some shaders. There is support for an "[[Overscan]]" feature that helps the users to [[Widescreen_Hack#Nintendo_64|remove black borders around a game's visual output]]. It requires at least OpenGL 3.3 in the latest versions to run, and OpenGL 4.x for some advanced functions, making this plugin more demanding than the plugins that came before it, though modern GPUs should be ok, even on mobile. It is not without its share of issues to this day, however. There are still several HLE bugs left to resolve, and its LLE mode, while much improved over z64gl's, is still not quite as developed as its HLE mode, and some of the plugin's enhancement features are disabled in this mode. Since it is hardware-rendered even in LLE, there are issues that may never be quite resolved due to inherent differences between the N64 hardware and the OpenGL API. It is advisable to use this over ParaLLEl-RDP only if you are unable to run the latter in HD at full speed or if further enhancements such as widescreen hacks and hi-res textures are desired.
+
Shaders are normally cached as you play the game. This can cause a lot of stutters and slow the game down. However, as of version 1.19.0, Cemu added support for Asynchronous Shader Compiling on their Vulkan API which can make shader compiling near instantaneous on modern hardware, so try enabling that before hunting for shader caches.
*[https://github.com/ata4/angrylion-rdp-plus/releases Angrylion RDP Plus] - This is a fork of Angrylion's RDP that supports multithreading. It now uses OpenGL 3.3 and also supports Linux. The multi-threading helps boost performance significantly, but some games are still not full speed even on a Core i7-8700K. This fork has at least one accuracy regression, compared to the official version of Angrylion. It also allows you to disable VI filters. Since it is a CPU-bound, software-rendered plugin, it has no enhancement options of any kind - what you see is what you get, exactly like on a real N64. Use this only if running a relatively fast CPU and ParaLLEl-RDP does not work with your GPU for whatever reason.
 
*Glide64 - The former best general-use plugin. While it is no longer updated and is far less accurate and compatible than the newer offerings, it still has a few use cases, such as better support for older ROM hacks. It works relatively well for many (most?) games, has support for hi-res textures, and it is also faster than the newer plugins, which makes it suitable for slower devices such as the older Raspberry Pis. Otherwise, stick to either ParaLLEl-RDP or GLideN64. Note that the version included with Project64 has been renamed to Project64 Video.
 
  
===Deprecated Plugins===
+
Cemu accepts other shader caches that can be traded online. It's often very difficult to generate a complete cache for large games, and will not completely eliminate stuttering, which is why using Asynchronous Shader Compiling is recommended instead.
The following video plugins are old and deprecated, and should not be used or considered unless you have a VERY old device that cannot handle the recommended plugins, or there's a very specific use case not covered by modern implementations.
 
  
*Jabo's Direct3D8 - Comes with Project64, and was once its default video plugin. Very speedy, has built-in AA and AF options, and includes a [[Widescreen_Hack|widescreen hack]]. The version included with the most recent versions of Project64 (1.7.0.57-ver5) is somewhat buggy and has regressions, however. [http://www.jabosoft.com/articles/114 Jabo's 1.6.1 patch] is better, though version 1.7 can run in LLE mode, which can help with a few games. Sadly, it will likely never see another update again, and though it is still included in Project64 to this day, it is no longer the default, and should not be used unless you have a very old PC.
+
[[File:Shadercachestuff.png|thumb|Some settings in the Nvidia control panel might help.]]
*[http://www.emutalk.net/threads/54166-Rice-Video-Community-version Rice Video] - A fast, highly configurable video plugin once famous for its ability to load [[Texture_Packs|hi-res textures]], making it a popular plugin within the N64 emulation community. The 1964 team at one point annexed it as its official video plugin, renaming it 1964Video. There are many versions and forks of it floating around, either to fix issues or add features. It eventually lost favor to Glide64, which can also load hi-res textures, and its compatibility as a whole is subpar even for an HLE plugin. As such, none of its variations are recommended for general use unless there's a very specific fringe case (such as some really old texture packs or ROM hacks) or you're using a very, very old toaster.
 
*[http://www.emutalk.net/threads/40640-Z64-a-LLE-graphics-plugin z64gl] - A hardware-rendered, low-level plugin developed by ziggy, derived from MAME's N64 driver. It was once notable for being one of the only plugins that could play games without an HLE microcode implementation such as Rogue Squadron. However, it was rather glitchy, had higher system requirements than the HLE plugins, needed an LLE RSP plugin to work (such as the bundled z64 RSP or Project64's RSP plugin set to LLE graphics), and configuration required editing the config file directly. A [https://github.com/purplemarshmallow/z64/tree/angrylion-integration fork] cropped up that aimed at improving it, but it did not go very far. Nowadays, it's obsolete, as GLideN64 can now play every game through HLE (thus subverting z64gl's only selling point), and its LLE has been surpassed by Angrylion-derived plugins and even GLideN64's LLE mode.
 
*[https://sourceforge.net/p/angrylions-stuff/code/HEAD/tree/ Official Angrylion RDP] - A software-rendered, hardware-accurate plugin, developed by angrylion (though derived from MAME, much like z64gl). This is the most accurate N64 video plugin in existence, emulating every facet of the N64's RDP precisely and thus making it capable of playing almost every single game in the N64 library with no issues, fixing even notorious cases such as the ''Pokémon Snap'' red dot and the ''Body Harvest'' bridge. This, however, comes at the cost of insane CPU requirements while making games look like, well, N64 games running on real hardware, which means native resolution, no widescreen, no hi-res textures - just the N64 in its full, vaseline-covered glory. Since this particular version is single-threaded, uses DirectDraw and is Windows only, it is recommended to use Angrylion RDP Plus or ParaLLEl-RDP instead, which offer much more reasonable performance. Only try it out if you have a tricked-out rig and want to test your CPU's mettle, or if you can compile it from source and need it for testing/debugging purposes, as the latest updates are always made to this version first.
 
*[http://www.emutalk.net/threads/55481-angrylion-s-Per-Pixel-RDP-with-OpenGL HatCat/angrylion's Pixel-Accurate N64 Plugin] - This is a fork of Angrylion's RDP, done by HatCat. It has some optimizations not present in the official code, but is outdated and lacking some accuracy improvements and optimizations written by Angrylion. It has the option to disable the VI filters (which gives a speed boost), as well as the ability to set custom resolutions. Also, this version uses OpenGL 1.x instead of Direct Draw and supports Linux. Obsoleted by newer forks such as Angrylion RDP Plus.
 
  
==Audio==
+
Some games' transferable caches may cause slowdowns on some graphics cards like the GeForce GTX 970. If this is the case, you will have to generate your own shaders and delete the ones you downloaded. In the case of the GeForce, also consider deleting the .bin and .toc file in your GLCache at <code>%APPDATA%\NVIDIA\GLCache\(hexstring)\(hexstring)</code>.
This section will only cover the zilmar spec plugins, as Mupen64Plus does not have any alternative audio plugins besides the default, and neither do the libretro forks.
 
  
*Project64 Audio - The default audio plugin for Project64, apparently loosely based off of code from Mupen64Plus's HLE RSP. Very barebones, with no options to speak off.
+
==Graphic Packs==
*Jabo's DirectSound - Comes with Project64. It works fine for the most part, but some games may not play nice with it. It is a low-level plugin, so it needs an accompanying LLE RSP plugin. Will probably never be updated again.
+
To work around emulation bugs and other problems the way [[Dolphin]] does, "Graphic Packs" are title-specific property sheets which define advanced settings you might not be able to change in the interface. Basic rendering options including shadow resolution and quality, post-processing effects like bloom, lighting and god rays, custom anti-aliasing, and such can be applied here. You can even use them to ''reduce'' the internal resolution for an increase in the framerate. This is not to be confused with '''Texture Packs''', which are replacement textures; Cemu doesn't support that, but it is planned.
*[http://www.emutalk.net/threads/27610-Audio-v0-56-WIP2-Download-Feedback Azimer's HLE Audio] - This popular HLE audio plugin boasts high compatibility. Version 0.56WIP2 is old as hell, but it is the tried and true standard to which audio plugins are compared against. Recently, [https://github.com/Azimer/AziAudio Azimer open sourced his plugin], and there are plans to integrate it into Project64 and eventually replace Jabo's as its official audio plugin. The latest development versions have a few issues, however.
 
*[http://forum.pj64-emu.com/showthread.php?t=3644 Shunyuan's HLE Audio] - An audio plugin, apparently based on 1964Audio and HatCat's RSP plugin. Can run in both LLE and HLE modes despite the name, though the HLE mode just makes it run a baked-in version of HatCat's RSP, which makes it not a true HLE plugin. Has been abandoned after charges of just taking others' code without revealing a source. If games run at a weird speed using this plugin, go to the ROM's Game Settings, and disable Fixed Audio Timing and Sync using Audio. Despite its Frankenstein nature, it actually works surprisingly well, although modern development versions of Project64 no longer work with it, apparently due to it depending on a bug that has now been fixed.
 
  
==Input==
+
The "Graphic Packs" themselves are folders under the <code>graphicPacks</code> directory. They can be named anything, but they should contain the "<code>rules.txt</code>" file. A bare-bones example of a "Graphics Pack", called "Bayo_1080p", would look like this:
*Jabo's DirectInput - Comes with Project64, but now removed in favor of NRage Input. It isn't too bad, but it may have some compatibility problems with some controllers. Should work just fine with the keyboard if you're one of those masochists who emulates without a controller. Only standard controller emulation with nothing attached to it. As usual, do not expect any updates.
 
*[https://sourceforge.net/projects/nragev20/ NRage Input] - Also comes with Project64 as of version 2.2. Hands down the best input plugin as it is more feature complete than Jabo's DirectInput. Has a ton of options and great controller compatibility, including XInput support for use with Xbox 360 controllers. It can't emulate the microphone that is required by ''Hey You, Pikachu'' or the printer required for the ''Pokémon Snap Station''. It has the ability to emulate Controller Pak (''Mario Kart 64'''s ghost saves), Rumble Pak (''Star Fox 64''), and Transfer Pak (''Pokémon Stadium'' series) functionality fairly well. Version 2.3 of Project64 introduced a version of the plug-in that can emulate the N64's mouse accessory designed for the 64DD to coincide with Project64's newest ability to emulate the 64DD accessory. Surprisingly, ''Mario Artist: Paint Studio'' can use the Japanese ''Game Boy Camera'' (called ''Pocket Camera'') in Transfer Pak mode, but the camera function doesn't work as it displays static, although importing captured images still works technically.
 
*[https://www.raphnet-tech.com/products/raphnetraw/index.php/ Raphnetraw] - This open source plugin allows streamlined use of N64 controller(s) via raphnet [https://www.raphnet-tech.com/products/n64_usb_adapter_gen3/index.php N64-to-USB v3+ adapters]. It supports rumble and is available for Project64 and mupen64plus. Also contains various DLLs for special port arrangements [https://www.raphnet.net/programmation/mupen64plus-input-raphnetraw/index_en.php#4 (link)].
 
  
==RSP==
+
[Definition]
*Zilmar's RSP - Comes with Project64. Very accurate, quite fast in Recompiler mode, and will work fine for every game. The version included in Project64 2.x can work with both LLE and HLE plugins by toggling the relevant options in the Plugins settings menu.
+
titleIds = 0005000010172600,0005000010172700,000500001011b900,000500001014db00,0005000010157e00,0005000010157f00
*Mupen64 HLE RSP - Comes with Mupen64. A very fast and compatible HLE RSP plugin. Written by Hacktarux and Azimer. Has issues with some games, particularly those using MusyX microcode. MusyX support was later added to the Mupen64Plus version, but those changes have yet to be backported to the zilmar-spec version.
+
name = "Bayonetta 1 + 2 - 1080p"
*z64 RSP plugin pack - Largely deprecated. This set of RSP plugins comes with the z64 video plugin, each with their own purpose:
+
**Ziggy-z64RSP - This RSP is based on the MAME/MESS RSP code. It is slower but more accurate.
+
[TextureRedefine]
**Ziggy-PJ64 - Based on the Project64 1.4 RSP, this plugin is much faster.
+
width = 1280
**angrylion - This RSP is a simple Interpreter, and is required for a few games like World Driver Championship to work correctly with z64gl.
+
height = 720
*[http://www.emutalk.net/threads/56919-quot-Static-quot-RSP-Interpreter-Plugin "Static" RSP Interpreter] - Made by HatCat and originally released in [http://forum.pj64-emu.com/showthread.php?t=3618 Project64 Forum]. as of the most recent release version, it is not only one of the most accurate RSP plugins, but also one of the fastest if using the SSSE3 version, though zilmar's RSP in Recompiler mode trumps it in speed. It also comes in SSE2 and non-SSE variations in case your PC does not support those instruction sets. It is capable of working with both HLE and LLE audio and video plugins via the following settings:
+
overwriteWidth = 1920
**Send display lists to the graphics plugin - Check if using an HLE graphics plugin, uncheck if using LLE
+
overwriteHeight = 1080
**Send audio lists to the audio plugin - Check if using an HLE audio plugin, uncheck if using LLE
 
**Force CPU-RSP signals synchronization - Check if playing Gauntlet Legends, World Driver Championship, or Stunt Race 64. Only works with Project64 2.x.
 
**Support CPU-RSP semaphore lock - Check to fix issues with Mario no Photopie. Only works with Project64 2.x.
 
*Parallel RSP - A fast and accurate RSP based on the work of [https://github.com/Themaister/parallel-rsp Themaister] and is a RSP option mainly used in the [https://www.libretro.com/index.php/parallel-n64-with-parallel-rsp-dynarec-release-fast-and-accurate-n64-emulation/ Parallel N64 Libretro core] however it is also possible to use it with [[M64p]] and [[RMG]] as a plugin.
 
  
==Recommended N64 Setups==
+
Whenever the titleId matches the current one, Cemu will show the Graphics Pack under Options -> Graphics Pack. If you don't know what the titleId of the game you want is, check the <code>logs.txt</code> file. You can safely delete it in the event that it gets too big for a text editor to parse.
  
===Project64 and Others===
+
The overwriteWidth and overwriteHeight properties used in this example will upscale the game from 720p to 1080p. But if the game doesn't have all of its textures in the specified resolution, they won't be upscaled and could look messy as a result. In this case, this problem is seen in some FMVs in the game. This is the purpose of the TextureRedefine rule.
*'''General Use'''
 
**Glide64 2.0.0.1
 
**Shunyuan's HLE Audio (set to LLE)
 
**"Static" RSP Interpreter or Zilmar's RSP
 
**Either of the RSP plugins should be fine for most games. HatCat's RSP is slightly more accurate. However, zilmar's is much faster. Keep in mind that Glide64 2.0.0.1 is the same as Glide64 Final. Glide64 2.0.0.1 is just a merge of Glide64, GlideHQ, and Glitch64 (which of course the final version has) to be one file, but limits you to certain settings that cannot be changed with the emulator.
 
*'''Best Performance'''
 
**Glide64 Final
 
**Azimer's HLE Audio
 
**Zilmar's RSP
 
**Make sure you configure the graphics plugin to show texture enhancement options. Then you'll have an extra tab to change more options. Goto the texture enhancement tab and click on the button that gives the best performance and it should improve framerate once you saved the settings. There's also another button for best texture quality. There's no need to touch the other plugins. Recommended for most emulators.
 
*'''Accuracy'''
 
**angrylion's Pixel-Accurate N64 Plugin (RDP Plus)
 
**Azimer's Audio NEW
 
**"Static" RSP Interpreter
 
**If you have a decent quad-core CPU, you can run many N64 games with pixel-perfect graphics at full speed, thanks to the new multithreaded version of angrylion's software plugin. The new Azimer's plugin (still WIP) works good in LLE. Since there's almost no visual difference, you may as well use PJ64's RSP to get better performance.
 
  
===Mupen64Plus===
+
Since 1.13.0, the graphic packs system and interface was overhauled for better use and many bugs when using multiples graphic packs were fixed.
[[Mupen64Plus]] has its own set of plugins which are incompatible with plugins used in other emulators. Here is an overview of recommended setups.
+
For 1.15.1 and now on, users can download the community's graphics packs linked below directly from Cemu user interface and just check the graphics packs they want to enable. That update completly removed the need to manage files for the user.
*'''General Use'''
 
**Video: Glide64mk2
 
**RSP: cxd4-ssse3 or Parallel RSP
 
**Glide64mk2 is just Glide64 with additional tweaks and enhancements for use with Mupen64Plus. cxd4 is one of HatCat's many names. The cxd4 plugin is a port of his RSP for zilmar-spec emulators. This appears to be the best combination for use with most games, though toasters may have performance issues.
 
*'''Best Performance'''
 
**Video: Rice
 
**RSP: rsp-hle
 
**These are Mupen64Plus's default plugins. Rice's Video is a plugin used on other N64 emulators, most known for its support for hi-res [[Texture_Packs|texture packs]], now enhanced for Mupen64plus. It is not quite up to Glide64's level, but it does well enough for many games and is quite fast. The default RSP plugin appears to be just an enhanced port of vanilla Mupen64's RSP. Use this combination if you have a lower end PC and can't handle the Commonly Used setup.
 
*'''Accuracy/Rogue Squadron'''
 
**Video: z64 or angrylion's Per-Pixel RDP with OpenGL
 
**RSP: cxd4-ssse3 or Parallel RSP
 
**z64 is a port of z64gl, a low-level emulation video plugin for N64 emulators. It comes with its own accompanying z64 RSP, but cxd4 (a port of HatCat's RSP Interpreter plugin) appears to be more accurate and very well optimized. This setup is capable of playing difficult games like Rogue Squadron with very few graphical glitches and faster than on Project64 to boot.
 
  
Note: In some cases the cfg file may not appear, in which case you may do this:
+
See some of the community graphics packs at [http://slashiee.github.io/cemu_graphic_packs/ this page].
*Open terminal in emulator folder on in its respective directory
 
*''mupen64plus --configdir'' /directory/where/you/want/it/to/be
 
  
===Libretro===
+
==External links==
There are two N64 libretro emulator cores for use on libretro frontends such as [[RetroArch]]: Mupen64Plus-Next and ParaLLEl-N64. The former is up-to-date and is recommended for most use cases, while the latter is no longer updated and is only around for performance reasons. Note that GLideN64 is only available in Mupen64Plus-Next, while glN64, Rice and Glide64 are now only available in ParaLLEl-N64. Both can use Angrylion Plus and ParaLLEl-RDP, however.
+
* [https://wiki.cemu.info/wiki/Main_Page Wiki]
*'''General Use (LLE)'''
+
* [https://discord.gg/5psYsup Discord]
**Core: Mupen64Plus-Next
 
**Video: ParaLLEl-RDP
 
**RSP: ParaLLEl-RSP
 
*'''General Use (HLE)'''
 
**Core: Mupen64Plus-Next
 
**Video: GLideN64
 
**RSP: HLE
 
*'''Best Performance'''
 
**Core: ParaLLEl-N64
 
**Video: Glide64
 
**RSP: HLE
 
**If further speed is desired or needed, you may try glN64 or Rice, but using them comes at a steep cost in compatibility and accuracy, and the majority of low-end devices in use today ought to be able to handle Glide64 just fine.
 
*'''Accuracy'''
 
**Core: Mupen64Plus-Next
 
**Video: Angrylion
 
**RSP: CXD4
 
  
[[Category:Recommendations]]
+
<references/>
 +
 +
[[Category:Emulators]]
 +
[[Category:Console emulators]]
 +
[[Category:Home console emulators]]
 +
[[Category:Wii U emulators]]
 +
[[Category:Windows emulation software]]
 +
[[Category:Closed-source emulators]]

Revision as of 04:07, 14 December 2021

Cemu
Cemu-Logo.png
Developer(s) Exzap, Petergov
Latest version 2.0-78
Active Yes
Platform(s) Windows
Architecture(s) x86_64
Emulates Wii U
Compatibility Compatibility list
Website Cemu
Support ($) Patreon
License Closed-source freeware
BIOS/Keys Optional

Cemu is a closed-source Wii U emulator for Windows. Its development was started circa 2015 and it's known to be the very first Wii U emulator ever that can boot games.

Before updates are publicly released, they're accessible to backers over at their Patreon.

Download

Windows Latest public release
Available one week after the Patreon builds release

System requirements

You will also need enough storage for the Wii U games. Running Cemu on Wine has been reported to work just as well as Windows.

Minimum

  • Windows 7 (64-bit)
  • Graphics Card: Supports at least OpenGL 4.5 or Vulkan 1.1
  • Memory: 4 GB

Recommended

  • Windows 10 (64-bit)
  • Graphics Card: Supports OpenGL 4.6 (Vulkan 1.1 for AMD or Intel)
  • Memory: 8 GB or more

Game formats and needed files

Physical dumps

You'll first need to fill in the "keys.txt" file in Cemu's directory. It has a sample line with a bogus key and a comment, which you may as well delete.

Your file must have many lines like this, one for the Wii U Common Key (D7B00402659BA2ABD2CB0DB27FA2B656), and one line for the Game Key of each game. Sharing these keys isn't exactly safe legally, but ROM sites at least share the Game ones. Note that for games using the Loadiine format, you won't need a Game Key at all, but those will need Cemu versions from 1.4.0 onward.

Your ISO must be either uncompressed, compressed using WUD format, or in Loadiine format (only possible for versions 1.4.0 onward) to boot in Cemu. Here's a compatibility list. Dump your discs using Wudump.

Digital copies

Cemu supports either physical games dumps in WUD, or compressed WUX format, as well as game dumps converted to the Loadiine format. Loadiine games come as multiple directories with game files and a .rpx file.

Nintendo's CDN for Wii U and 3DS digital games is rather poorly secured, due to a huge oversight when designing the software protection for these consoles. As such, with tickets proving you bought the game (but which you can get through less legit ways), there are downloader utilities like NUSGrabber, FunKiiU, UWizard, or jnus among others, and decryption tools like UWizard and CDecrypt, to obtain a functional copy. The process of how to exactly acquire those files is detailed elsewhere on this wiki.

Load the .rpx file from [Your gamelocation]/code/[yourgame].rpx with Cemu.

Updates and DLC

Prior to 1.7.3, only updates were supported though pasting update files on the main game's folders (keeping in mind the main game is in Loadiine format) and overwriting any files. DLC wouldn't work at all through this method, though with some specific games there were workarounds and some could play DLC tracks in Mario Kart 8 through swapping of specific files. From 1.7.3 onwards, proper support for DLC and updates was included in Cemu.

The Update installation method has been reworked since 1.11.0 simplifying the installation method a lot. To install updates and DLC on Cemu on (1.11.0)+ versions you need to follow theses steps :

  • On Cemu interface, select File -> Install game update or DLC
  • Select the meta.xml in the meta folder of the update or DLC
  • Run the game to update the UI and show the update and/or DLC version

Amiibo support

Amiibo are hard-to-find figurines unlocking various on-disc content in select 3DS and Wii U games. They use the NFC technology. Nintendo Amiibo data is distributed online as NFC tags (.bin files). There's a regularly updated complete set of the official ones but there are also unofficial spoofed packs on various other sites.

Recent versions of Cemu include Amiibo support. Simply go to NFC / Scan NFC Tag from file, and load the relevant .bin file. Keep in mind Amiibo support in Cemu is incomplete right now and not all figurines are compatible yet - though incompatibilities may be caused by bad Amiibo dumps as well.

Setting up Cemu

Controls

Cemu added native support for Wii Remote controllers as of 1.12.0.

Cemu cannot connect to a real (or emulated) 3DS.

Cemuhook

Using this is completely optional but highly recommended. Without Cemuhook, some games won't have texts, have laggy cutscenes and display numerous other bugs.

Download the latest version compatible with your Cemu version, unpack it to the same directory as cemu.exe and right-click on dbghelp.dll, check Proprieties, Digital Signatures tab, select a signature and press Details. This should make it no longer crash at start-up. Make sure you also have the latest GPU driver installed, as well as both x86 and x64 versions of the Microsoft Visual C++ 2017 X64 Redistributable.

After the first boot of Cemu with cemuhook installed, accept to download the missing shared fonts to make the text in some games (Super Mario Maker among others) display correctly. Whenever you boot Cemu now, this cemuhook tool is enabled by default and offers various additions for better motion control emulation or some graphical hacks that greatly enhance Zelda BOTW in particular. Various way to take advantages of the cemuhook motion control emulation are listed here.

Enabling "GX2SetGPUFenceSkip (HACK)" enhances graphical emulation in BOTW in particular. A pre-installed Graphical Pack that comes with recent versions of Cemuhook, "LWZX Crash Workaround", as well as the "GX2DrawDone()" option under Experimental, should help with some general crashes specific to BOTW.

As of version 1.18.0, cemuhook is no longer considered required to run the emulator, as all major functions previously provided by cemuhook have been implemented into the emulator itself.

Shader caches

When your game is loaded, check for its ID on the title bar in front of "SaveDir:" and note it down. The directory where transferable shader caches are stored is .\Cemu\shaderCache\transferable. They're generated the first time you play through a game and at that time cause noticeable stuttering. You can download a complete cache from places like here and rename them to match your game version's ID to spare yourself most of that unpleasant experience. Just keep in mind that shader caches from versions older than 1.8.0 are incompatible with later versions of Cemu.

At startup, Cemu will prepare a compiled version of that cache under .\Cemu\shaderCache\precompiled and that one depends on your GPU driver, so you might want to erase it if any problems or crashes when compiling shaders at startup occur.

Troubleshooting/speeding up

Shader caches

Shaders are normally cached as you play the game. This can cause a lot of stutters and slow the game down. However, as of version 1.19.0, Cemu added support for Asynchronous Shader Compiling on their Vulkan API which can make shader compiling near instantaneous on modern hardware, so try enabling that before hunting for shader caches.

Cemu accepts other shader caches that can be traded online. It's often very difficult to generate a complete cache for large games, and will not completely eliminate stuttering, which is why using Asynchronous Shader Compiling is recommended instead.

Some settings in the Nvidia control panel might help.

Some games' transferable caches may cause slowdowns on some graphics cards like the GeForce GTX 970. If this is the case, you will have to generate your own shaders and delete the ones you downloaded. In the case of the GeForce, also consider deleting the .bin and .toc file in your GLCache at %APPDATA%\NVIDIA\GLCache\(hexstring)\(hexstring).

Graphic Packs

To work around emulation bugs and other problems the way Dolphin does, "Graphic Packs" are title-specific property sheets which define advanced settings you might not be able to change in the interface. Basic rendering options including shadow resolution and quality, post-processing effects like bloom, lighting and god rays, custom anti-aliasing, and such can be applied here. You can even use them to reduce the internal resolution for an increase in the framerate. This is not to be confused with Texture Packs, which are replacement textures; Cemu doesn't support that, but it is planned.

The "Graphic Packs" themselves are folders under the graphicPacks directory. They can be named anything, but they should contain the "rules.txt" file. A bare-bones example of a "Graphics Pack", called "Bayo_1080p", would look like this:

[Definition]
titleIds = 0005000010172600,0005000010172700,000500001011b900,000500001014db00,0005000010157e00,0005000010157f00
name = "Bayonetta 1 + 2 - 1080p"

[TextureRedefine]
width = 1280
height = 720
overwriteWidth = 1920
overwriteHeight = 1080

Whenever the titleId matches the current one, Cemu will show the Graphics Pack under Options -> Graphics Pack. If you don't know what the titleId of the game you want is, check the logs.txt file. You can safely delete it in the event that it gets too big for a text editor to parse.

The overwriteWidth and overwriteHeight properties used in this example will upscale the game from 720p to 1080p. But if the game doesn't have all of its textures in the specified resolution, they won't be upscaled and could look messy as a result. In this case, this problem is seen in some FMVs in the game. This is the purpose of the TextureRedefine rule.

Since 1.13.0, the graphic packs system and interface was overhauled for better use and many bugs when using multiples graphic packs were fixed. For 1.15.1 and now on, users can download the community's graphics packs linked below directly from Cemu user interface and just check the graphics packs they want to enable. That update completly removed the need to manage files for the user.

See some of the community graphics packs at this page.

External links