Difference between revisions of "Cemu"

From Emulation General Wiki
Jump to navigation Jump to search
(Updates and DLC: Remove Redundancy)
(Moving away.)
Line 7: Line 7:
 
|fifth = [http://cemu.info Cemu]
 
|fifth = [http://cemu.info Cemu]
 
|sixth = Closed source}}
 
|sixth = Closed source}}
'''Cemu''' is a closed-source, Windows-only [[Wii U emulators|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.  
+
'''Cemu''' is a closed-source [[Wii U emulators|Wii U emulator]] for Windows. System requirements are pretty high if you want games to run at full speed, although there are numerous bugs that can crash games due to unimplemented features. It emulates the GamePad, Classic, and Pro controllers. A compatibility list can be found [http://docs.google.com/spreadsheets/d/19WV2YQvS2PkiHnQTlYP7cE2eHOPl06Rx4tCvfud_Hpw/edit?pref=2&pli=1#gid=0 here].
  
The latest version of Cemu is restricted at first to project donors for a week.<ref>https://www.patreon.com/cemu</ref> It's then followed by a free release with further improvements.  
+
Before updates are publicly released, they're accessible to backers over at [https://www.patreon.com/cemu their Patreon].
  
 
==Downloads==
 
==Downloads==
* [http://cemu.info/index.html#download Latest free release]
+
* [http://cemu.info/index.html#download Latest public release]
  
 
==System requirements==
 
==System requirements==
* OS: Windows 7 (64-bit) or above
+
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.
* GPU: OpenGL 4.0 or above, Intel iGPUs are not recommended
+
===Minimum===
* RAM: 4 GB minimum, 6 GB or more recommended
+
* Windows 7 (64-bit)
 +
* Graphics Card: Supports at least OpenGL 4.0
 +
* Memory: 4 GB
 +
===Recommended===
 +
* Windows 10 (64-bit)
 +
* Graphics Card: Supports OpenGL 4.0 or newer (avoid integrated graphics)
 +
* Memory: 6 GB or more
  
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.
+
==Setting up==
 +
===Physical dumps===
 +
Cemu's directory needs proper values in the "keys.txt" file. The example line can be deleted.
  
==Playing Games==
+
You need yours to have many lines like this; one for the Wii U Common Key, and one line each for Game Keys. Note that for games that use the Loadiine format, you don't need a Game Key at all, only the latest version of Cemu.
===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 [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.  
+
Formats supported are uncompressed, WUD compressed, and Loadiine ISOs.
  
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].
+
===Amiibo support===
 
+
CEMU can read binary dumps from NFC tags by going to NFC -> Scan NFC Tag from file. Support is incomplete, and not all figurines may be compatible yet due to potentially bad reads.
===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 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 [http://application.wiiuusbhelper.com/Updater.exe 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 and DLC on Cemu (1.7.3+):
 
* Run the game 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 "CEMUFOLDER/mlc01/usr/title" folder.
 
* Add any updates (which must be added first) you want to the "CEMUFOLDER/mlc01/usr/title/NUMBERS/NUMBERS/" folder.
 
* Create a folder named "aoc" and put the DLC files into there. The "code", "content", and "meta" folders of the actual game itself also go in the "aoc" folder.
 
 
 
===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). Here's a recent complete set of the official ones ([https://mega.nz/#F!Z4UWVIYS!HsOvjW4tUMHE40ECIG7sMQ 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.
 
  
 
===Controls===
 
===Controls===
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.
+
The Wiimote still isn't emulated yet, but you can have up to 8 GamePads set in the menu.
  
Emulated Wii U GamePad features are as follow:  
+
Wii U GamePad bindings:
 
* Touch Controls: Mouse left click.
 
* 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.
 
* Tilting and Gyro Controls: Holding the mouse right-click and dragging. It's lacking Z-axis key binding at the moment.
Line 67: Line 45:
 
* Microphone: Spoofed, a configurable key simulates blowing on the mic.
 
* Microphone: Spoofed, a configurable key simulates blowing on the mic.
  
A menu allows for loading NFC tags from Amiibos. (More details would be appreciated)
+
Cemu cannot go online or connect to a real (or emulated) [[Nintendo 3DS emulators|3DS]].
  
As of now, no online features or 3DS/Wii U connectivity features are possible.
+
==Troubleshooting/Speeding up==
 
 
==Improving Performance==
 
 
===Shadercaches===
 
===Shadercaches===
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.
+
Shaders are normally cached as you play the game. This can cause a lot of stutter and slow the game down.
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 [https://www.reddit.com/r/CEMUcaches/ 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.
+
Cemu accepts other shader caches that can be traded online. You can go to [https://www.reddit.com/r/CEMUcaches/ /r/CEMUcaches] and search for the ones you want. It's often very difficult to generate a complete cache for large games, and will not completely eliminate stuttering.
*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:
+
[[File:Shadercachestuff.png|thumb|Some settings in the Nvidia control panel might help.]]
  
[[File:Shadercachestuff.png]]
+
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>.
  
===Native H264 Decoder===
+
===Native H.264 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. [https://sshnuke.net/cemuhook/ 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.
+
MP4 videos are often encoded for Wii U games with the expectation that the hardware plays it back on-the-fly, but because the x86 architecture is not PowerPC, this is resource-intensive for Cemu since it has to run the PowerPC video decoder. An unofficial utility called [https://sshnuke.net/cemuhook/ CEMUhook] bypasses this by playing H.264 video directly from Windows codecs that are programmed for x86.
  
===Getting more performance===
+
===Disable Hyperthreading===
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:
+
Cemu may not be programmed well with hyperthreading. To disable it, go into the Task Manager, right click cemu.exe and then set these affinities:
  
 
[[File:Processor_affinity.png]]
 
[[File:Processor_affinity.png]]
  
==Increasing Internal Resolution==
+
==Graphics Packs==
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.
+
To work around emulation bugs and other problems the way [[Dolphin]] does, "Graphic Packs" are title-specific property sheets which defines 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 godrays, 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.
 
 
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:
+
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:
  
<code>
+
[Definition]
::[Definition]
+
titleIds = 0005000010172600,0005000010172700,000500001011b900,000500001014db00,0005000010157e00,0005000010157f00
::titleIds = 0005000010172600,0005000010172700,000500001011b900,000500001014db00,0005000010157e00,0005000010157f00
+
name = "Bayonetta 1 + 2 - 1080p"
::name = "Bayonetta 1 + 2 - 1080p"
+
::
+
[TextureRedefine]
::[TextureRedefine]
+
width = 1280
::width = 1280
+
height = 720
::height = 720
+
overwriteWidth = 1920
::overwriteWidth = 1920
+
overwriteHeight = 1080
::overwriteHeight = 1080 </code>
 
  
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).  
+
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.
  
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.
+
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.
  
You can (and probably should) get most of the graphics packs made so far [http://slashiee.github.io/cemu_graphic_packs/ from here].
+
See some of the community graphics packs at [http://slashiee.github.io/cemu_graphic_packs/ this page].
  
 
==Issues==
 
==Issues==
Here's some of the actual issues that directly relate to the end user experience:
+
* Save states aren't getting implemented any time soon. This has a lot 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.
 
+
* The emulator is still unfinished and unoptimised, as noted in the lack of efficient and stable H.264 video decoding, causing glitchy videos. This is worked around with Cemuhook entirely, but its approach to video decoding is unlikely to be taken into the emulator.
* 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.
 
 
 
===Unofficial Builds===
 
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.
+
===Piracy===
 +
There are anti-piracy measures on the Patreon early-access builds that are put behind the $5 tier. Backers putting out these builds can get banned if they're caught, and when the program fails verification, it locks down some features that impact performance.
  
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.
+
Until 1.7.5 was released, one developer from Team Cemu, mudlord, spun off the project out of creative differences with the team, and in protest he put out cracked versions of early builds on his personal blog. These were also used to expose people breaching licenses for other emulators. A subreddit and Discord server was made to discuss Cemu piracy.
  
==References==
+
The official subreddit for Cemu advises against downloading unofficial "builds", saying they could be traced with malware, and it is part of their rules not to counterargue. The Cemu piracy subreddit has encountered malware authors taking advantage of this.
{{reflist}}
 
  
 
==External links==
 
==External links==

Revision as of 06:29, 21 August 2017

Cemu-Logo.png
Current version: 2.0
Active: Yes
OS: Windows
Authors: Exzap
Official website: Cemu
Source code: Closed source

Cemu is a closed-source Wii U emulator for Windows. System requirements are pretty high if you want games to run at full speed, although there are numerous bugs that can crash games due to unimplemented features. It emulates the GamePad, Classic, and Pro controllers. A compatibility list can be found here.

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

Downloads

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.0
  • Memory: 4 GB

Recommended

  • Windows 10 (64-bit)
  • Graphics Card: Supports OpenGL 4.0 or newer (avoid integrated graphics)
  • Memory: 6 GB or more

Setting up

Physical dumps

Cemu's directory needs proper values in the "keys.txt" file. The example line can be deleted.

You need yours to have many lines like this; one for the Wii U Common Key, and one line each for Game Keys. Note that for games that use the Loadiine format, you don't need a Game Key at all, only the latest version of Cemu.

Formats supported are uncompressed, WUD compressed, and Loadiine ISOs.

Amiibo support

CEMU can read binary dumps from NFC tags by going to NFC -> Scan NFC Tag from file. Support is incomplete, and not all figurines may be compatible yet due to potentially bad reads.

Controls

The Wiimote still isn't emulated yet, but you can have up to 8 GamePads set in the menu.

Wii U GamePad bindings:

  • 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.

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

Troubleshooting/Speeding up

Shadercaches

Shaders are normally cached as you play the game. This can cause a lot of stutter and slow the game down.

Cemu accepts other shader caches that can be traded online. You can go to /r/CEMUcaches and search for the ones you want. It's often very difficult to generate a complete cache for large games, and will not completely eliminate stuttering.

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).

Native H.264 Decoder

MP4 videos are often encoded for Wii U games with the expectation that the hardware plays it back on-the-fly, but because the x86 architecture is not PowerPC, this is resource-intensive for Cemu since it has to run the PowerPC video decoder. An unofficial utility called CEMUhook bypasses this by playing H.264 video directly from Windows codecs that are programmed for x86.

Disable Hyperthreading

Cemu may not be programmed well with hyperthreading. To disable it, go into the Task Manager, right click cemu.exe and then set these affinities:

Processor affinity.png

Graphics Packs

To work around emulation bugs and other problems the way Dolphin does, "Graphic Packs" are title-specific property sheets which defines 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 godrays, 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.

See some of the community graphics packs at this page.

Issues

  • Save states aren't getting implemented any time soon. This has a lot 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.
  • The emulator is still unfinished and unoptimised, as noted in the lack of efficient and stable H.264 video decoding, causing glitchy videos. This is worked around with Cemuhook entirely, but its approach to video decoding is unlikely to be taken into the emulator.

Piracy

There are anti-piracy measures on the Patreon early-access builds that are put behind the $5 tier. Backers putting out these builds can get banned if they're caught, and when the program fails verification, it locks down some features that impact performance.

Until 1.7.5 was released, one developer from Team Cemu, mudlord, spun off the project out of creative differences with the team, and in protest he put out cracked versions of early builds on his personal blog. These were also used to expose people breaching licenses for other emulators. A subreddit and Discord server was made to discuss Cemu piracy.

The official subreddit for Cemu advises against downloading unofficial "builds", saying they could be traced with malware, and it is part of their rules not to counterargue. The Cemu piracy subreddit has encountered malware authors taking advantage of this.

External links