|Source code:||Closed source|
Cemu is a closed-source, Windows-only Wii U emulator. Currently, the GamePad, Classic, and Pro controllers are emulated. It also requires a high-end PC to run games at full speed, although there are numerous bugs that can crash games due to unimplemented features.
The latest version of Cemu is restricted at first to project donors for a week. It's then followed by a free release with further improvements.
- 1 Downloads
- 2 System requirements
- 3 Playing Games
- 4 Improving Performance
- 5 Increasing Internal Resolution
- 6 Issues
- 7 References
- 8 External links
- OS: Windows 7 (64-bit) or above
- GPU: OpenGL 4.0 or above, Intel iGPUs are not recommended
- RAM: 4 GB minimum, 6 GB or more recommended
If you're on Linux, CEMU can be run using WINE with unexpectedly good results. Compared to performance on Windows, it runs in full speed with no noticeable input lag for instance.
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.
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 servers are poorly secured due to a huge oversight when designing Wii U/3DS software protection. 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.
- Download an NUS downloader such as WiiU USB Helper.
- Paste this URL into WiiU USB helper when prompted for the titlekey database. - https://wiiu.titlekeys.com/
- Select the game you want to download, click get it and then download games.
- This will download the files for the game you chose (the same as the .tik's title). May I suggest that you choose your own region where possible, so the download is quicker (from your regional servers).
- Now we need to convert the game into Loadiine format so that you can load it in Cemu. Simply right click your newly downloaded game, then click "Prepare for Emulation".
- 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.
Use the same process as above to download updates. Once decrypted, simply copy and paste these over the original game's files.
To install updates on Cemu (1.7.3+):
- Play the game at least once
- Open "log.txt" and find "TitleId of launched game" followed by a 16-digit number. Copy down that 16-digit number.
- Go to "CEMUFOLDER/mlc01/usr/title" and create a folder with the first 8 digits of that 16-digit code
- Inside of that folder, create a folder named with the last 8 digits.
- Put in the files of the update into the folder
- To apply DLC create a folder inside of the folder with your update and create a folder named "aoc" and put the DLC files into there and simply run the game.
To add DLC to games:
- Run the game as normal, at least once.
- Check Cemu's log.txt file and look for a line that says "Mounting local storage (AOC): .\mlc01\usr\title\NUMBERS\NUMBERS\aoc\"
- Add (create) folders with the same name as the above (substituting the "NUMBERS" bit with the actual numbers) in your cemu\mlc01\etc. file
- Add any updates (must be added first) and DLC you want to this folder (code, content and meta folders live inside the aoc folder)
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). Here's a recent complete set of the official ones (March 2017) but there's 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 Amiboo support in CEMU is incomplete right now and not all figurines are compatible yet - though incompatibilities may be caused by bad Amiboo dumps as well.
As of 1.7.3d, the Wii U GamePad and the Wii U Classic Controller are emulated, but the Wiimote still isn't emulated yet. You can set up to 8 GamePads in the menu if you want.
Emulated Wii U GamePad features are as follow:
- Touch Controls: Mouse left click.
- Tilting and Gyro Controls: Holding the mouse right-click and dragging. It's lacking Z-axis key binding at the moment.
- Switch Screens between TV and GamePad: "TAB" key, "Ctrl+TAB" to keep focus. TV by default.
- Microphone: Spoofed, a configurable key simulates blowing on the mic.
A menu allows for loading NFC tags from Amiibos. (More details would be appreciated)
As of now, no online features or 3DS/Wii U connectivity features are possible.
Normally, when playing a game in Cemu, a shader cache will be generated as you play. This will cause a lot of stutter and slow the game down the first time you play that level/area/game. Luckily, Cemu allows you to transfer your shader cache, allowing you to download one from a friend (or just someone else on the internet). Reddit seems to be a good place to get these shadercaches. Simply go here and search for the game you want a cache for.
- Note that it is very difficult to generate a 100% complete shadercache for large games and therefore this will not definitely completely eliminate stuttering.
Transferable shader caches may cause slowdowns in some games, on some graphics cards (observed in Geforce 970s). If this is the case, delete both your transferable and precompiled caches as well as the .bin and /toc file in your NVIDIA GLCache found in C:\Users\(You)\AppData\Roaming\NVIDIA\GLCache\(hexstring)\(hexstring). In this case, you will have to generate your own shaders.
- This may get fixed after 1.7.0, who knows?
Changing your NVidia control panel settings to look like this might help with shadercache slowdown issues:
Native H264 Decoder
Lots of Wii U games use high resolution MP4 videos and render them using codecs intended for the Wii U, which can get slow to emulate, and cause display bugs on CEMU. CEMUhook is a hook utility used in conjunction with CEMU from versions 1.7.3 onward to render these cutscenes with a much faster video codec native to Windows. It's not officially supported though.
Getting more performance
Some users have reported that disabling hyperthreading improves performance in Cemu. On Windows with hyperthreaded cores, turn off processor affinity for imaginary cores. This will be every other core in your processor affinity. To do this, go to the cemu.exe process in task manager, right click, set affinity and then turn off every other core:
Increasing Internal Resolution
The so-called "Graphic Packs", not to be confused with Texture Packs (since CEMU can't use them for that functionality yet), allow for upscaling the in-game graphics to higher resolutions than in the original, as well as other basic rendering options (shadow resolution/quality, post-processing effects like bloom, lightning and godrays, custom anti-aliasing). It can affect what resolution the game is rendered as, as well as shaders, and works as a workaround for some emulation bugs. You can even reduce internal resolution to enjoy a slight FPS increase.
Developers plan to add custom texture replacement in the future (hence the name) but that's yet to be seen as of 1.7.6.
The Graphic Packs themselves come as folders under the graphicPacks directory. You can name these folders whatever you want (for example "Bayo_1080p"), which contains just a single "rules.txt" file. A more bare-bones file would look like this:
- titleIds = 0005000010172600,0005000010172700,000500001011b900,000500001014db00,0005000010157e00,0005000010157f00
- name = "Bayonetta 1 + 2 - 1080p"
- width = 1280
- height = 720
- overwriteWidth = 1920
overwriteHeight = 1080
In CEMU, under Options/Graphics Pack, you'll see this particular graphic pack as "Bayonetta 1+2 - 1080p". The name doesn't matter, what matters the most would be that the titleIds (here matching all three US/EU/JP versions of both Bayonetta 1 and 2) match that of the game in question. You can get the titleIds looking at the logs.txt file CEMU generates whenever it loads a new game (and which you can delete safely so that it doesn't get too big to read).
When you enable this graphical pack and then load the game, it will play following this rule which is upscaling a game that runs as 1280x720 so that it runs as 1920x1080. But if the game doesn't have all of its textures originally in that resolution you specified (1280x720), they won't be upscaled and it could look messy as a result. For example, in Bayonetta 2's case, this problem can be seen in some FMVs. That's why some graphical packs add exclusions to the TextureRedefine rule. But this here is a good starting point to create graphical packs for games that no one bothered to do, like Meme Run or Devil's Third among others.
You can (and probably should) get most of the graphics packs made so far from here.
Here's some of the actual issues that directly relate to the end user experience:
- Save states aren't getting implemented any time soon. A lot of this has to do with the complexity of the Wii U memory layout and architecture, as well as the huge file size. As a result, the current developers are not interested in implementing them.
- Frequent stuttering is often experienced when you first start a game, because CEMU is building your shader cache. One solution is to get shader caches available online for your game and use it. They also have been compatible across different versions of the emulators for quite a while.
That aside, there's other issues that stem from the unfinished and unoptimised nature of the emulator, like the lack of native H264 video decoding libraries causing green screens and glitchy videos (which is solved with Cemuhook) among other things.
The restricted Patreon early access builds (behind a $5 donation a month for around two builds), released one week prior to the public release, have some checks in place. Builds that weren't verified online would have some features restricted impacting performance, as well as a ban to the original backer if the build was shared more than how it reasonably should be for personal use.
One particular developer, mudlord, who disagreed with the choices made by the CEMU devs, proceeded to release illegal cracked versions of these early builds on his personal blog, ironically also used to expose people breaching licenses for other emulators. A Cemu piracy subreddit and discord was even started to discuss these builds and how to get them. These builds' illegal nature means you're unlikely to find them anywhere else. This however stopped with 1.7.5 with him announcing he's not interested any longer in continuing this.
Understandably, the official CEMU subreddit advises against downloading these builds, dismissing them as unsafe and malware, with bans for people not heeding this "advice". However it didn't took too long for malware authors to take advantage of this and distribute malicious copies of the early access build according to user reports in the CEMU piracy subreddit. So use them at your own risk.