Cemu v2.0-28 released
A new experimental update has been released for Cemu , the Wii U console emulator continues to evolve while also receiving a number of fixes and optimizations.
Experimental updates are frequently released within the repository in a semi-automatic way, while the changelog is not compiled, it is still possible to view them through the commit history .
To switch to these versions, download Cemu version 2.0 and enable automatic updating (this only works on Windows). Alternatively, you can download it manually from the github repo .
Since revision 2.0-26 there have been 79 documented files changed within 10 commits.
For C/C++ developers who want to contribute
If you are interested in contributing or just want to ask questions about Cemu ‘s codebase , you can visit the Discord channel .
The update aims to fix numerous crashes while now Discord ‘s Rich Presence feature works again with games installed within the directory .MLC
Requirements
- OpenGL 4.5 or Vulkan 1.1.
- Operating System: Windows 7 (or higher) 64-bit.
- RAM: 4GB minimum, and 8GB or more recommended.
- Microsoft Visual C++ 2017 X64 Redistributable: vc_redist.x64.exe
Characteristics
- Mount encrypted Wii U images (WUD).
- Internal resolution at 1920×1080 (if supported by the game).
- Does not contain any optimizations at the moment. Expect slow framerates and long loading times.
- For Windows x64 only (other platforms will be supported later).
- Requires OpenGL v4.1 or higher.
Graphics card compatibility
- Tested on NVIDIA GPUs: Works well with the latest drivers.
- Tested on AMD GPUs: Runs as expected most of the time with updated drivers, may crash occasionally.
- Tested on Intel GPU: Not officially supported with heavy visual glitches.
FAQs
What game controllers are supported? Currently it is possible to emulate the GamePad (DRC), Pro Controller and Classic Controller, which can be mapped to the keyboard or any USB controller. Cemu currently supports DirectInput and XInput.
How can I see the GamePad screen (DRC)? The GamePad Screen (DRC) appears in the Cemu main window while you hold down the TAB key on your keyboard or map it to a controller button. You can also switch between screens by pressing CTRL + TAB. Also, you can view the GamePad in a second window.
Does the sound work? Yes, partially. But be careful, many sound effects and filters are not yet supported and there may be some sudden loud noises.
Is there support for the online feature? Online support is almost non-existent and only works in certain applications that rely only on basic network functionality and do not require server authentication. At the moment this only includes the Wii U’s web browser and possibly some homebrew applications.
Will other platforms besides Windows be supported? The project will go multi-platform, many of the development decisions are in favor (such as choosing to use OpenGL over DirectX for rendering), however there are thousands of other small fixes to address first.
Why is Cemu so slow? will it improve in the future? At this point Cemu can already be considered highly optimized and possible future optimizations will come only in small and gradual steps. Please note that emulation always requires a higher performance system than the emulated system. For Cemu, single core CPU performance (and extension RAM speed) is the most important factor for Fullspeed emulation.
Want to add a DX12/Vulkan graphics backend? It would improve the speed! DirectX 12 or Vulkan doesn’t allow us to increase the execution speed of the emulator, performance isn’t really an issue as OpenGL is much faster when used correctly. The GPU architecture on Wii U adds some constraints that almost nullify any optimization potential given by DX12/Vulkan. However, a Vulkan backend is planned for the distant future.
What are the best settings? How should I configure Cemu? At the moment Cemu doesn’t provide the best experience and some tweaks are almost needed. For best performance: set GPU buffer cache accuracy to low (but increase it if you get flickering graphics), CPU timer to ‘host based’ and CPU mode to ‘recompiler’. Game-specific modifications may be required, so it is advisable to consult google or the wiki for recommended options.
What are Game Profiles? Game profiles are text files that can be used to set up specific game configurations in Cemu. You can find game profiles in Cemu’s ‘gameProfiles’ folder. There is also a file example.ini
which explains the available options and how to configure them. Note that some “expert options” are only available via game profiles, but not via the Cemu GUI.
Is there a roadmap? We abandoned the idea of a detailed roadmap early on after realizing that future planning doesn’t sit well with the unpredictability of emulator development. We still have long-term goals, but in general the roadmap can be simplified to one sentence: improve the emulator in every respect. What exactly to work on is decided from version to version or sometimes even on a daily basis.
Do you want to make a 32-bit version of Cemu? No, Cemu often exceeds the usage of more than 4GB of RAM and therefore cannot run on 32-bit systems.
I’m trying to run a game in Cemu and it crashes? Cemu isn’t perfect yet and it’s not uncommon for some games to fail. You can check the Compatibility page or wiki for more information on issues with certain games.
Are debugging tools planned? Yes, debugging tools are planned and in fact have already been worked on. However, since they are quite low priority, they won’t be ready for a while.
Changelog
- coreinit: Correctly return success code in
FSRemove
. - GameList: Fixed hidden last column.
- Code cleanup + using utf8 paths instead of wstring.
- Added note about ‘span’ not found in
BUILD.md
.- Also rearrange things so that all of the “step 3” troubleshooting is grouped together.
- Separate imgui contexts for TV and Pad windows.
- It does what the title says and also removes some duplicate codes from the cache loading screen.
- Added missing flag to keep background image in background.
- Added GDB stub for debugging.
- It can be enabled using the option
--enable-gdbstub
(and debugger GUI, although it hasn’t been tested) which will pause any game launched on startup. It will start at the port1337
although it will eventually be editable by the user. The code is sort of oddly sorted and just needs a general cleanup, so expect that eventually as well. And it uses the Egyptian braces but the formatting was easier to do in the end so it’s also something to do. - For now it’s been tested with IDA Pro, Clion and the standalone interface, but I’m going to write some instructions in the PR for people who want to use it to follow. Memory breakpoints are not possible yet, only execution breakpoints.
- It can be enabled using the option
- debugger: Disable Linux read/write breakpoints for now.
- There seems to be some differences for some distros, so until a suitable fix is found, disable it for now.
- Latte: Added shader instruction support
MIN_DX10
. - coreinit: Fixed thread scheduler not resetting quantum.
- When a thread was forcibly rescheduled (e.g. via
OSYieldThread
) the next time it was resumed, it would not reset the time slice duration (remainingCycles
) toppcThreadQuantum
. As a result, threads were often rescheduled immediately and only on the next shift would they get their share of full time. - In addition to (very slightly) improving performance, this also fixes the warning spam
OSDisableInterrupts
in the registry forTPHD
.
- When a thread was forcibly rescheduled (e.g. via
Download: Cemu v2.0-28 (MacOS-12-x64)
Download: Cemu v2.0-28 (Ubuntu-20.04)
Download: Cemu v2.0-28 (Windows)
Download: Cemu v2.0-28 (AppImage)
Download: Cemu source code v2.0-28
Source: github.com