top of page

2.0-86 Exp / 10-06-2024





average rating is 3.6 out of 5
average rating is 3.7 out of 5
average rating is 3.7 out of 5

Cemu is an open source emulator for WiiU which is considered to be in experimental state. That said, it's able to play quite a few number of games very smoothly without major issues and graphics packs can even be injected into games. Please check compatibility list for more details.




  • GamePad input source override for cemu, including full motion sensing support (requires additional software, see the guide)

  • Adds code/data patching to your games at load-time, which you can activate and share the same way you do graphic packs!

  • Think of it like a pcsx2 plugin, implementing something not in the core

   Cemu Graphics Pack

  • Community Graphic Packs which is used to upscale and change your Wii U games


  • Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with the Cemu Emulator and System-Wide


Windows: 7+

Other requirements

OpenGL 4.1 minimum (4.6 is used, if available)
RAM: 4 GB minimum, 8 GB or more recommended
Microsoft Visual C++ 2017 X64 Redistributable

Most Recent Changes

--2.0-2 to 2.0-86 Experimental--

Commit release changes can be checked here.

  • Now with appimage

  • Important note for users of the ubuntu binaries: Starting with this release, this build is now using system paths instead of portable mode. If you upgrade from a previous ubuntu build you will have to redo your settings or move the files manually to the right locations. The locations are listed in #316. Lots of smaller Linux improvements. We are still working on additional distribution formats (appimage/flatpak)

  • Fixes online play not working for North America accounts since the recent Wii U firmware update

  • Improvements in Vulkan support

  • Many translation improvements and fixes

  • Documentation improvements on the github/wiki

  • Lots of bug fixes and code cleanup

--2.0 Experimental--

  • Cemu is now open-source!

  • Preliminary Linux builds are available on github, but be warned that they are still very rough around the edges

  • Going forward, we simplified the versioning a bit by using shorter version numbers (2.0, 2.1, 2.2, 2.3..)

  • Updated all dependencies. Most notably SDL (input & motion) and wxWidgets (UI)

  • Fixed a crash in the H264 video decoder. Resolves crash on Smash title screen

  • Made nsysnet a little less crash prone. Fixes crash in Call of Duty: Black Ops II

  • Fixed a logging related crash that could occur under very specific circumstances. Seen in Wind Waker if letting the game idle on the title screen for 2 minutes

  • Fixed a crash that could happen when the path to Cemu.exe contained unicode characters

  • Fixed a crash that could happen when loading .elf homebrew

  • The account list in the title manager save exporter is no longer empty

  • Latency for wiimotes should be a bit better now

  • Added symbol/function list to debugger + other small debugger/assembler improvements

  • Implemented API: coreinit.FSOpenFileExAsync (used by some homebrew)

  • Many more under-the-hood changes and fixes

  • Some more work towards a Stop&Restart emulation feature. Not ready yet but we are getting there

--1.27.1 Experimental--

  • The 'Accurate barriers' option for Vulkan is now enabled by default. You can still disable it manually to get extra performance, but be aware that it will cause occasional flickering graphics

  • Fixed several bugs where Cemu sometimes wouldn't be able to locate a title stored in a game path

  • Fixed rumble not working

  • H264 decoder now supports multiple parallel decoding sessions. Fixes menu videos getting stuck or causing crashes in Mario Tennis: Ultra Smash.

  • Improved accuracy of emulated filesystem. Fixes crashing and deadlocks in Yoshi's Woolly World, Xenoblade Chronicles X and Hyrule Warriors

  • Title Manager: Game file integrity check now works for .wua titles

  • Improved accuracy of error code handling for Nintendo system services. Allows for more precise online error codes than the generic "106-0502"

  • Various compatibility improvements for niche titles like The Voice, Jewel Quest, Tiny Galaxy and many more

  • Vulkan: Added support for LINE_LOOP primitive. Mostly used by homebrew or mods

  • Miscellaneous bug fixes

--1.27.0b Experimental--


  • Refresh button in title manager now works correctly. 

  • Fixed an issue where WUA conversion would add extra bytes to the last file. 

  • Fixed potential crash with H264 decoder.

--1.27.0 Experimental--

  • Reworked title management from the ground up

  • Scanning for titles should be a lot faster. Very noticable if you have a large library

  • Updates and DLC no longer need to be installed. Cemu can now detect and load them directly from the game path folders

  • The title manager window no longer is restricted to showing only one entry per title id, making it easier to manage duplicates

  • Introducing support for a new file format for games which we dubbed Wii U archive (.wua):

  • Supports multiple titles in a single file (e.g. a game combined with it's update and DLC)

  • Cemu can play them directly and display them in the game list

  • Uses compression, resulting in a smaller size than WUX or extracted folder format

  • Lossless, can be converted back to the original files

  • You can easily convert any of your games into .wua format via the Title Manager

  • A standalone tool, including source code, for packing/unpacking is available here

  • Added Cubeb audio backend (see our roadmap for details)

  • Added a workaround for sampler rounding behavior differences between Wii U and OpenGL/Vulkan. This fixes invisible effects in some Wayforward games

  • Opening the GamePad view will no longer blank out the main window on OpenGL

  • Fixed Ctrl + Tab hotkey not toggling between TV and GamePad view

  • General debugger improvements. Added breakpoints will now be remembered across sessions

  • Reworked PDM (Play Diary Manager) service to be a bit more accurate. If you use a full mlc dump, Cemu will show the playtime stats from your console in the game list.

  • Implemented nn_ac API GetAssignedAddress() and GetAssignedSubnet()

  • Improved texture cache heuristics. Should save a bit of VRAM and avoid some unnecessary texture copies

  • Reworked GX2R API and fixed some bugs in the process. Transformers Prime should no longer crash on boot

  • Fixed an issue in the RPL loader where it would generate the wrong branch type. Fixes Your Shape: Fitness Evolved crashing on boot

  • Fixed a crash that could occur when a game tried to access the GamePad camera

  • Added a way to specify IP and port before selecting a DSU controller

  • Tons of under the hood changes. Including:

  • Almost fully migrated to CMake

  • Upgraded from C++17 to C++20

  • Reworked internal string handling to use UTF8 almost everywhere

  • Reworked path handling to be more robust. Relative paths and network storage locations should work now.

  • Reworked emulated system libraries: coreinit atomic, coreinit FS, nn_aoc


  • UI: The game list will now refresh automatically after setting a path during the Getting Started dialog


# Lots of Input fixes

  • Improved keyboard handling (Shift and other special keys can be mapped and used again)

  • Better handling for controller connect/disconnect. The UI will now update accordingly

  • Improved rumble for Gamecube controller API (#596)

  • Fixed an issue where the currently active controller profile file (controller<Index>.xml) would be deleted when the game profile set a different profile

  • Restored DirectInput under Wine

  • Fixed threading issues causing random crashes, usually these would occur when interacting with the input settings in some way

  • Fixed an issue where a rumble strength setting of 0 wouldn't completely disable rumble on some input APIs


  • input: Reworked input system from the ground up, fixed bugs and added new features

Show Previous Changes


general: The download manager now has experimental support for downloading DLC
        Online features require dumped system files. See the guide at:

Vulkan: Fixed an issue where asynchronous GPU operations could get stuck indefinitely
       Lego Batman 3 should no longer softlock on Vulkan (#495)

Vulkan: Reworked command buffer scheduling to decrease latency between CPU and GPU
       This can improve performance on some systems

GX2: Correctly emulate timestamp submission in GX2DirectCallDisplayList()
    Some games, like Bayonetta 1, rely on this behavior and should run much more stable now

UI: Fixed an issue where the game list would not track play time


New in 1.25.5b
Vulkan: Partially reverted new synchronization model due to worse performance on some drivers
       Also fixed a general synchronization issue that could lead to flickering graphics and various other defects

UI: Tracking of play time should work correctly again

gfxPacks: Fixed two regressions related to label processing in assembly patches (#574)

New in 1.25.5:

CPU: Added option to control the speed of the emulated CPU timer, similar to the functionality offered by Cemuhook's custom timers

Vulkan: Reworked internal synchronization
       This fixes some pixel flickering artefacts. Known occurrences:
       Some waterfalls had tiling artefacts in Breath of the Wild
       Shadows would flicker in Pac-man and the Ghostly Adventures

AX: Implemented audio AUX bus mixing correctly
   Some games use this feature for reverb or similar audio post-processing effects

The changes below are mainly of interest to graphic pack developers:

gfxPacks: Fixed various issues related to assembly patches
         Alignment behavior is now consistent across all gfx pack versions
         Automatic alignment. Cemu will automatically insert padding to keep the alignment intact (.align directive no longer required in most situations)
         Fixed wrong encoding of CR operand in cmpw/cmplw instruction

debugger: Double clicking an entry in the debugger module window will jump to its base address
debugger: The debugger register view window will now correctly show the state of the CR register fields


Vulkan: Avoid internal hash collision related to pipeline lookup
       This fixes a bug where, under very rare circumstances, draw operations would render with the wrong parameters
       Seen in Minecraft where the block highlighting lines would render as broken triangles, other games are possibly affected as well

Vulkan: Optimized data uploads to GPU
       On systems with unified memory (integrated GPUs) we will use cached shared memory which has very low overhead
       Data uploads are generally not a bottleneck in Cemu but this optimization might still help with performance on low-end systems

OpenGL/Vulkan: Fixed a regression from 1.25.3 where textures would show incorrectly or garbled

UI: The graphic pack preset selection is now more robust and consistent
   Previously it was possible that the active presets would differ from the ones shown as active in the UI

UI: Fixed an issue in the texture cache viewer window where the overwrite resolution column would not show the correct value


New in 1.25.3b:
Vulkan/OpenGL: Fixed graphic bugs introduced by one of the optimizations in 1.25.3

Vulkan: We had to disable multi-threaded pipeline loading for Nvidia GPUs due to driver crashes
       The exact cause is still being investigated. We plan to reenable this feature for Nvidia GPUs once a solution has been found

New in 1.25.3:
Vulkan/OpenGL: Several smaller performance optimizations to decrease CPU load of the GPU emulation thread

Vulkan/OpenGL: Fixed performance regression introduced in 1.25.2

Vulkan: Pipeline cache loading is now multi-threaded and thus should be much faster

Vulkan: Fixed a severe memory leak during pipeline cache loading

GX2: Minor optimizations to various GX2 API functions

UI: Input window improvements
   Slightly altered profile load/save buttons for better clarity. Making it easier to distinguish if a profile is created, updated or loaded
   Show a warning if no GamePad has been configured as most games require one to be at least connected

logging: Cemu will now no longer overwrite the log file immediately on start. Instead it will only write it once a game has been launched or an error occurred
        This is to prevent users from accidentally resetting log.txt merely by reopening Cemu


New in 1.25.1d

syshid: Various tweaks and fixes to the emulated HID driver (#545)
       Fixes USB portal device randomly disconnecting in Skylanders Swap Force
       Fixes high latency (up to half a minute) on some portal devices

Vulkan: Ignore invalid mips for MSAA textures
       Fixes Snoopy's Grand Adventure (US) crashing on boot (#355)
       The EU version still gets stuck at the language selection screen. A workaround for this is to use a save file with the language already set

Vulkan: Added support for little-endian encoded vertex indices
       Fixes broken 3D geometry in Neko entertainment games (or anything that uses NGDK2 engine)

VPAD: Corrected behavior of touch-screen coordinates when in non-touching state
     Fixes unclickable buttons in Neko entertainment games

AX:   Implemented API AXSetVoiceOffsetsEx
     F1 Racing should no longer crash on launch

UI: When launching Cemu with the -g option skip loading and displaying the game list

UI: More descriptive error messages when launching a game fails (e.g. due to moving game files but not updating the paths)

UI: Fixed an issue where changes to graphic packs settings would not save

nsysnet: Fixed a crash in getsockopt()
        Seen in Skylanders Swap Force with online mode enabled

coreinit: Implemented API FSTruncateFile/FSTruncateFileAsync
         Adventure of Pip will no longer freeze when saving

coreinit: Correctly handle the mirrored affinity bits in OSThread context
         Fixes Othello softlocking on the titlescreen--1.25.1--

New in 1.25.1c
UI: Cemu will inform the user about the available Cemuhook update if an outdated Cemuhook installation is detected

New in 1.25.1b
general: A side effect of upgrading wxWidgets was that it broke compatibility with Cemuhook
        This hotfix prevents outdated Cemuhook from crashing Cemu
        You can get an updated version of Cemuhook for 1.25.1 on

New in 1.25.1:
general: We now ship with Cemuhook's shared fonts as the default system fonts
        Our previous placeholder font was incomplete and lacked some special characters as well as many non-latin characters
        Credits go to rajkosto for creating the fonts and hand-drawing the Nintendo specific glyphs

general: Fixed an issue where Cemu would create the mlc directory at the default location before the user set a location in the 'Getting started' window

general: Improved robustness of title/update installer. It should no longer crash when encountering unexpected errors

AX: Fixed behavior of AXGetVoiceLoopCount()
   Resolves an issue where animations would reset or skip ahead in Splatoon and Super Mario Maker (#15)
   This change may also positively affect games that are prone to random sound corruptions (e.g. Paper Mario Color Splash)

GX2: GX2ResetGPU() will no longer softlock Cemu
    Games occasionally call this API if they believe the emulated GPU is stuck (e.g. due to excessive shader compilation stutter)
    Seen in Xenoblade Chronicles X, Mario Tennis and Darksiders 2

UI: Removed precompiled shaders option from UI as it had no effect on Vulkan. There was also no reason to set it to anything but the default (auto) on OpenGL
   This is just a UI change, none of the actual shader caching mechanics were changed

UI: Clicking the download graphic packs button in the 'Getting started' window will correctly open and show the graphic packs window
   Previously the gfx pack window would either not open at all or show up empty

misc: Upgraded wxWidgets (GUI library) to version 3.1.5
     This may resolve crashes that some users have been experience when accessing any file or folder selection dialog


New in 1.25.0b:
Vulkan: We further optimized pipeline caches to have a smaller file size

OpenGL/Vulkan: New shader cache format
              50-70% smaller file size compared to the old format
              Internally, it uses our modernized GPU state representation that we also use in the new pipeline cache files

Vulkan: Fixed a regression from 1.25.0 which could cause various random graphic bugs

New in 1.25.0:
Vulkan: Added a permanent cache for Vulkan pipelines
       Unlike the Vulkan-native cache that Cemu used before, this cache does never reset
       Additionally the new cache is independent of hardware and drivers and can therefore be transferred between different PCs

       Technical info:
       Pipeline caching works by capturing the state of the Wii U's GPU at the time of pipeline creation
       During the pipeline loading screen Cemu can then play back those captured states to recreate the pipelines

       Pipelines are directly tied to your shader cache. You need both caches to restore pipelines
       Pipeline cache location: shaderCache/transferable/<titleId>_vkpipeline.bin (new)
       Shader cache location:   shaderCache/transferable/<titleId>_shaders.bin (new, updated with 1.25.0b)

       Known issues:
       The pipeline cache doesn't cover all edge cases yet and a very small fraction of pipelines can't be cached
       It affects less than 0.1% of pipelines but we are looking to bring that number down to zero within the next 1-2 Cemu releases

coreinit: Fixed a recent regression which caused Pokken Tournament to crash or softlock on launch

general: Updated language files


New in 1.24.0b:
input: Minor internal tweaks to improve controller detection on SDL2
input: Fixed an issue where controller profiles could not be saved on a particular controller slot under very rare circumstances

New in 1.24.0:
input: Added SDL2 GamePad as a new input API (#514)
      Offers native support for many controllers that would normally require external software (BetterJoy, DS4Windows, Steam)
      Includes motion support for GamePad emulation (if motion data is provided by the controller)
      SDL2 also acts as a wrapper for XInput, making it an convenient all-in-one solution

input: As part of introducing SDL2 we also reworked our motion handling (#329)
      You should now have a much better experience using motion with both DSU but also the new SDL2 controllers

nlibcurl: Made server certificate checks more permissive to match new behavior in Wii U firmware 5.5.5
         This fixes a bug where it was no longer possible to connect to Super Mario Maker course world

OpenGL/Vulkan: Tweaked buffer cache invalidation
              Fixes corrupted graphics in Kung Fu Panda: Showdown of Legendary Legends


New in 1.23.1b
general: Fixed various regressions introduced by an internal optimization in 1.23.1

New in 1.23.1
UI: Download Manager now displays a progress indicator for verifying/installing stage

CPU/JIT: Added some missing instructions to recompiler
        Should boost performance in Minecraft, specifically when there are a lot of active sound effects (e.g. during rain)
        May also boost performance in other games

GX2: Corrected behavior of GX2GetSurfaceFormatBits() for compressed formats
    Resolves corrupted textures and random crashes in Sonic & All-Stars Racing Transformed (#527)

GX2: Fixed a bug where GX2GetLastFrame() would not setup the frame texture correctly
    Resolves Hyrule Historia crashing on boot (#402)

coreinit: Reworked OSFastMutex
         Paper Mario Color Splash should not longer have massively degraded performance in multi-core mode (#525)

Vulkan: Fixed unpacking of quads into triangles
       Resolves graphics bugs in Hyrule Historia


New in 1.23.0c
general: The game list will now automatically detect demos and system titles installed to MLC
        It will also detect demos stored in game paths

general: Improvements to the download manager
        - Fixed system titles getting installed to usr/title/ instead of sys/title/
        - Fixed a bug where multiple updates would be displayed for a single title
        - Installed updates are no longer always hidden and instead there is now a checkbox to hide installed entries
        - Fixed a bug where content files with unusual size would fail to verify and cause the download to get stuck (e.g. Nintendo Land update)
        - The game list should now update after installing any title or update

New in 1.23.0b
general: Improved robustness of download manager and fixed a few bugs that could occur during the installation step

New in 1.23.0
general: It is now possible to download purchased Wii U eShop games, system titles and updates via our new Download Manager!
        Like other online functionality, it requires dumped online files from a Wii U
        You can access the new Download Manager window under Tools -> Download Manager
        Currently supported features:
          - Downloading purchased eShop games and demos (owned games will be shared between your Wii U and Cemu)
          - Buying games on eShop using the eShop Wii U application and downloading them via Cemu's interface. No game dumping required
          - Downloading the latest updates for your owned titles
          - Downloading some system titles (Friend list, eShop)

        Note that DLC downloading is not yet supported but will be added very soon.

general: New FST reader (FST is the filesystem used for WUD, WUX and .app files)
        Internal support for NUS content (.app) which ties into the Download Manager
        Much higher read throughput than the previous implementation, may boost loading times on
        lower end CPUs where FST processing sometimes became be a bottleneck
coreinit: Fixed thread cancelling not working correctly
         This resolves an issue where browser based applications would softlock when trying to load any page


New in 1.22.13b

  • general: Fixed an issue where some installed DLC would not be detected
    Vulkan: Fixed a rare crash that could happen randomly during gameplay

New in 1.22.13

  • OpenGL/Vulkan: Better detection of cache invalidation for compressed textures
                  This fixes multiple issues where textures would sometimes not update correctly. Examples:
                  - Emblems in Mario Kart 8 (#501)
                  - Character portaits in Hyrule Warriors (#174)
                  - Level preview images in Pokken Tournament

    Vulkan: Added support for Latte GPU special state 5 (fast depth to color conversion)
           Shadows in Tokyo Mirage Sessions #FE and Pokkén Tournament render correctly now

    coreinit: Added API MEMDestroyFrmHeap
             This resolves Color Splash crashing during some loading screens

    coreinit: Further improved stability of TaskQueue API
             This should resolve some softlocks in Tokyo Mirage Sessions


New in 1.22.12c

  • Vulkan: Fixed regression introduced with 1.22.12b that caused broken graphics on some GPUs/drivers

New in 1.22.12b

  • general: Fixed a crash that could occur when opening the general settings window
    input: Fixed an issue where WGI would not show up in the input APIs

New in 1.22.12

  • Vulkan: Async shader and pipeline compilation is now multi-threaded
           This speeds up background compilation and shortens the duration of missing visuals

    mmu: Emulate the scratch memory region at the end of the address space (0xFFFFFFE0 - 0xFFFFFFFF)
        Fixes a crash that would occur during some loading screens in Fatal Frame 5 (#347)

    input: Fixed an issue where WGI (Windows.Gaming.Input) would sometimes cause Cemu to not close properly
    input: Generally improved robustness of WGI
    input: Improved performance when using GC controller API (#513)

    gfxPacks: Added a new option to rules.txt:
             If specified, the graphic pack will be enabled by default
             This is intended to be used for workaround packs when there are no side-effects

    logging: There is now a logging option to toggle log output for coreinit logging (OSReport, OSConsoleWrite and similar)


  • New in 1.22.11c
    internal: Reworked internal code that handles file paths to improve robustness when paths include unicode characters

  • New in 1.22.11b
    general: Fixed regression where some operations would use broken file paths by omitting the slash between mlc path and the subfolder

  • New in 1.22.11
    general: Added a warning message when launching Cemu through steam. This is to inform the user that
            Steam's shader pre-caching is known to cause broken graphics in combination with our async Vulkan shader compiler

    general: Added command line options to overwrite web service URLs
            --act-url <url>   (default:
            --ecs-url <url>   (default:

    nn_boss:  Correctly handle HTTP errors when downloading SpotPass files
             This fixes a crash when trying to play the 100 Mario challenge in Super Mario Maker

    OpenGL: Avoid a crash that could occur when clearing depth textures
           Fixes Smash 4 crashing under OpenGL

    input: Improved stick axis handling when the resting state is slightly off-center
          Resolves an issue where sticks sometimes couldn't reach the edge at default range multiplier
    input: Fixed an issue where DirectInput would not detect all buttons (#47)
    input: Show more sensible button names for disconnected DirectInput controllers (now displaying actual names instead of numbers)

    logging: When using Vulkan write the exact driver version to log
    logging: Keep up to 3 previous log files


  • general: Fixed a crash caused by the separate GamePad view

New in 1.22.10

  • general: Vulkan is now the default render API
    general: Added game profile option to overwrite the render API (#238)
    general: Games installed via the file menu will now appear in the game list automatically (previously it was necessary to manually refresh it)
    general: Fixed 'meta.xml missing' error that could occur when trying to install games/updates/dlc

    gfxPack: Fixed a bug where graphic pack logging output would be garbled

    Vulkan: Reduced number of Vulkan image views created by roughly 50%
           Prevents crashes on drivers that have a low image view limit

    coreinit: Tweaked behavior of MPWaitTaskQ() to prevent it from starving other threads of all CPU time
             This fixes random softlocks in Yoshi's Woolly World (#474)

    debugger: Fixed incorrect encoding of CR register with non-zero index in compare instructions
    debugger: Graphic pack codecaves now show up in the module list
    debugger: Added condition registers to the register view


  • general: Internal tweaks to Windows.Gaming.Input
    UI: Minor improvements to graphic pack window

New in 1.22.9c

  • UI: Fixed cut off dropdowns in the graphic pack window

New in 1.22.9b

  • general: Fixed a regression where the mlc path would be processed incorrectly, leading to Cemu not being able to load some mlc files

New in 1.22.9

  • input: Added support for Windows.Gaming.Input (Available only for Windows 10 or above)
          Two new API options:
          WGI GamePad        Mirrors XInput but without the 4 controller limit
          WGI RawController  Mirrors DirectInput
          Both of these usually have more stable drivers and should be preferred over regular XInput/DirectInput

    input: Various smaller improvements to input settings
          Stick preview now has a circle to indicate where 100% range of the emulated controller is

    general: Fixed a crash that would occur when refreshing the game list when it contains WUD images without keys

    coreinit: Implemented API OSIsHomeButtonMenuEnabled() and OSEnableHomeButtonMenu()
             Fixes Disney Infinity 2.0 crashing on launch. It relies on specific behavior for correct initialization

    OpenGL/Vulkan: Resolved an issue where depth buffer clears would use incorrect clear values
                  Fixes rendering bugs in Mario vs Donkey Kong: Tipping Stars
                  Fixes invisible UI in Dragon Quest X

    OpenGL/Vulkan: Improved tracking and synchronization of overlapping memory in texture cache
                  Fixes black screen issue in CoD: Black Ops 2

    OpenGL/Vulkan: Implemented support for shader instruction SAMPLE_C_L
                  Fixes missing lighting in CoD: Black Ops 2

    nsysnet: Resolved an issue where recv() would starve other threads of CPU time
            Fixes a rare softlock that could happen in various third party games
    (#xx) refers to resolved bug tracker issues. See


  • general: Fixed a recent regression where -mlc command line parameter would be parsed incorrectly

    UI: Display a scrollbar if a graphic pack has more options than can fit into the window

    HLE: Prevent Wind Waker HD from softlocking when using single-core recompiler

    HLE: Prevent dynamic resolution scaling in Super Mario 3D World
        This fixes a long standing issue where mirror effects in Level 1-5 would
        cause the texture cache to be flooded, leading to stutter and sometimes even crashes if
        not enough VRAM is available

    coreinit: Optimized niche cases in Cafe OS synchronization primitives
             This should improve performance in Paper Mario Color Splash when using multicore recompiler
             The issue has not been entirely solved yet and further improvements are planned

    Vulkan: Fixed a crash that could occur when a game supplied invalid texture sampler parameters
           Resolves a crash in Super Meat Boy (#479)

    GX2: Corrected a bug in the calculation of texture pitch for the tiling aperature
        Fixes corrupted textures in Super Meat Boy (#479)

    GX2: Improved robustness of OSScreen API and made it compatible with GX2
        Previously drawing any frames with GX2 would disable OSScreen output permanently
        Required by some homebrew applications which mix OSScreen and GX2

    coreinit: Implemented API MEMRecordStateForFrmHeap, MEMFreeByStateToFrmHeap
             Used by WUT homebrew


  • general: The default vsync frequency (emulated refresh rate) is now 59.94 to match the actual console
            Graphic packs can still set it to a flat 60

    general: Fixed various small memory leaks

    Vulkan: Revised internal swapchain management and fixed some synchronization bugs in the process
           Double-buffered vsync should no longer cause graphical artifacts

    Vulkan: Added a new experimental vsync mode
           If enabled, Cemu will match the vblank event timing of the emulated display to the physical monitor on which Cemu is displayed
           This reduces latency and avoids tearing by piggybacking on the emulated game's vsync implementation
           For *perfect* results, the vsync rate in Cemu should be equal or slightly higher than the monitor refresh rate
           As an example: When playing BotW on a 60 Hz monitor you want to set FPS++ to either 60 FPS or the next higher option. This is assuming stable 60 FPS can be maintained.
           Alternatively, any integer ratio (1:2, 1:3, 1:4...) should give good results as well. E.g. 30 FPS on 60 Hz, 36/72 FPS on 144 Hz

           Even for non-integer ratios (30 FPS on 144 Hz) this mode of vsync should perform at least as well as the Vulkan-native double buffered vsync mode
           While this is only available for Vulkan right now, we plan on adding this to OpenGL in the near future

    Vulkan: Cemu's internal shaders no longer show up in the overlay statistic ('Compiled x shaders'). Unlike game shaders they do not get cached and also do not cause any stutter

    H264/DXVA2: Fixed incorrect handling of mismatching frame pitch
               This should fix broken video playback in Mario Party 10 and Pikmin 3 on some GPUs

    GX2: Fetch shaders with a size of zero won't cause a crash anymore (regression introduced with 1.22.6)
        Resolves Minecraft crashing on launch

       general: Made command line parameter parsing more robust
        Short name option for fullscreen (-f) should work again

  • New in 1.22.6b
    GX2: Fixed a graphic regression that was introduced by the fetch shader rewrite

  • New in 1.22.6
    coreinit: More potential fixes for a mystery crash related to file operations and callbacks
             The crash can most often be observed when loading saves in BotW but also can happen randomly during gameplay

    coreinit: Avoid a race condition in thread deallocators
             Fixes random crashes in various games

    coreinit: Added a safeguard to prevent a state corruption when a game uses MPTaskQ improperly
             Fixes Tokyo Mirage Sessions freezing or crashing shortly after launch (#472)

    coreinit: Fixed a race condition in spinlock implementation
             Improves stability of Tokyo Mirage Sessions and likely some other games

    coreinit: Fixed OSScreenClearBufferEx() clearing a much larger data area than it should
             This change should fix flickering and random crashes due to memory corruption in some homebrew titles

    coreinit: Fixed an issue where the priority of default core threads was too high, leading to CPU starvation of other threads
             Fixes random softlocks in Yoshi's Woolly World

    GX2: Reworked GX2 event queue implementation to match behavior of actual console more closely
        This resolves random softlocks in games that rely on GX2 events

    GX2: Reworked fetch shader generation (GX2InitFetchShaderEx) to match behavior of actual console more closely
        Improves compatibility with games that are picky about correct shader size. E.g. The Fall is now playable and no longer crashes on boot
        Shader caches and graphic packs are not affected by this change

    OpenGL/Vulkan: Fixed generation of invalid shader code when accessing integer texture samplers with certain parameters
                  Fixes an issue where the game screen was invisible in Virtual Console DS titles

    debugging: wxWidgets errors are now written to log.txt instead of showing an error message box
    debugging: Added --force-interpreter command line parameter to always force interpreter regardless of any game profile settings


  • Compatibility improvements

  • Lots of crash and bug fixes


  • Performance improvements

  • Compatibility improvements

  • Graphic fixes


  • Compatibility improvements

  • Graphic fixes and optimizations


  • New graphic pack features

  • Various fixes


  • Stability improvements

  • Improved debugger tool


  • Stability improvements

  • UI tweaks


  • Threading rework


  • Compatibility fixes

  • Misc improvements


  • Updated memory searcher tool

  • Graphics fixes

  • Compatibility improvements


  • Anisotropic filtering can now be controlled via graphic packs

  • Re-Added texture dumping support

  • Graphics fixes


  • Vulkan fixes

  • Various smaller optimizations


  • Vulkan fixes

  • UI improvements


  • Added game file verification to title manager

  • Graphic packs can now extend the amount of RAM available to games

  • Misc fixes


  • Graphic fixes

  • Stability improvements

  • Improved support for homebrew


  • Fixed several graphic bugs

  • Fixed audio bugs

  • Misc smaller fixes


  • New GPU buffer cache

  • Option to import/export saves

  • Misc improvements


  • Vulkan and OpenGL graphic fixes

  • Minor performance improvements


  • Audio improvements

  • Title manager improvements

  • Vulkan/OpenGL fixes

  • Misc smaller improvements


  • Added title manager tool

  • Graphic fixes

  • Misc minor improvements


  • Added option to allow async shader & pipeline compilation (Vulkan only)

  • Vulkan fixes

  • Minor compatibility improvements

  • Misc minor improvements


  • Vulkan improvements

  • Amiibo improvements

  • Misc smaller changes


  • Vulkan and OpenGL fixes

  • Input improvements

  • Misc smaller changes


  • Added support for DSU client as input API (Cemuhook motion provider protocol)

  • Added quick start assistant for new users

  • Debugger & patch format improvements

  • Optimizations for titles that use dynamic code generation


  • Added emulated SD card

  • Vulkan stability improvements

  • Minor compatibility improvements


  • JIT code translation is now asynchronous

  • Gamelist improvements

  • OpenGL & Vulkan crash fixes

  • Misc bug fixes and smaller changes


  • Stability improvements for multi-core recompiler modes

  • Stability improvements for Vulkan

  • Compatibility improvements

  • UI clean up

  • Miscellaneous bug fixes and smaller new features


  • Vulkan improvements

  • Misc smaller new features and bug fixes


  • New graphic pack features (UI and internally)

  • Native support for Cemuhook patches + our own patch format

  • Gamelist fixes

  • Vulkan improvements

  • Tons of smaller bug fixes and improvements


  • Vulkan performance improvements

  • Various smaller changes and fixes


  • Added Vulkan renderer

  • Miscellaneous improvements


  • Minor compatibility improvements

  • Various smaller changes


  • Added account management (aka separate save slots)

  • Bug fixes and misc smaller features


  • Improved game list

  • Faster startup time

  • Misc minor bug fixes


  • Improved Amiibo support

  • Support for Gamecube controllers running in Wii U mode (with zadig drivers)

  • Game list improvements

  • Misc bug fixes


  • Bug fixes

  • Small usability improvements


  • Surround sound support

  • Minor improvements and bug fixes


  • Software keyboard and Wii U message box (ErrEula) improvements

  • Bug fixes


  • Minor compatibility improvements

  • Bug fixes


  • Bug fixes & minor tweaks


  • Improved handling of updates and DLC

  • Debugger improvements

  • Internal shader changes

  • Bug fixes


  • Added auto-updater

  • Screenshots are now automatically saved to a folder

  • Niche optimizations

  • Bug fixes & minor improvements


  • UI improvements

  • Compatibility improvements

  • Bug and crash fixes


  • Overlay enhancements and new notification system

  • Improved accuracy of streamout cache

  • Graphic fixes

  • Bug and crash fixes


  • Controller information added to overlay

  • Faster JIT recompilation

  • Bug and crash fixes


  • Added UI editor for game profiles

  • Per-game controller configuration

  • Removed deprecated settings/UI

  • Improved support for Lego and Skylanders USB portals


  • Recompiler accuracy improvements

  • Further reduced micro-stuttering

  • Bug fixes & miscellaneous improvements


  • Added h264 video decoding support

  • Added more SpotPass functionality

  • Bug fixes & miscellaneous improvements


  • Reduced micro-stuttering

  • Shader screen now displays game boot image

  • Added debug tools: Frame profiler + WUD filesystem dumper

  • Crash and input fixes


  • GamePad audio support

  • Optimizations for 'High' GPU buffer cache accuracy

  • Upscaling filters reworked

  • Recompiler improvements

  • Vsync fixed

  • Bug fixes & misc smaller improvements


  • Wiimote improvements

  • Audio improvements

  • Added button to download community graphic packs

  • 'No legacy' mode for Intel GPUs is now the default

  • Compatibility & miscellaneous improvements


  • Added PowerPC Debugger

  • Added configurable graphical overlay

  • Added file replacement (mod) support via graphic packs

  • Compatibility & miscellaneous improvements


  • New texture system & graphic fixes

  • Small audio improvements

  • Bug fixes & miscellaneous improvements


  • Usability improvements and new UI options

  • Slightly improved performance

  • Bug fixes & miscellaneous improvements


  • Improved audio emulation

  • Added XAudio2 support

  • Bug fixes & miscellaneous improvements


  • Overhauled graphic pack system and interface

  • New settings window

  • Added Discord Rich Presence support

  • Added .elf support (homebrew)

  • Bug fixes & miscellaneous improvements


  • Added UI localization

  • Optimizations

  • Bug fixes & miscellaneous improvements


  • General controller and native wiimote improvements

  • Added support for USB devices (via passthrough)

  • Minor compatibility improvements

  • Tons of bug fixes & miscellaneous improvements


  • Added friend list support

  • Added native wiimote support

  • Improved game list

  • Bug fixes & various smaller improvements


  • Added game list

  • Added option to toggle between conventional and separable shaders

  • Added new game profile options

  • Updated gameprofiles

  • Bug fixes & various smaller improvements

--1.11.5 --

  • Audio improvements

  • Added wiimote to list of emulated controllers

  • Added unicode support for software keyboard

  • Bug fixes & various smaller improvements


  • Compatibility improvements

  • Reduced overall memory usage

  • Added -nolegacy option for Intel GPUs (disables Intel-specific workarounds)

  • Minor other fixes and improvements


  • Added multi-core PowerPC emulation

  • SpotPass support (auto-download BOSS files)

  • Small optimizations

  • Misc smaller changes and bugfixes


  • Improved compatibility

  • Graphic bugfixes

  • Improved Amiibo support

  • Various smaller tweaks and new features


  • Improved PPC recompiler

  • Improved online support

  • Fixed graphic bugs

  • Compatibility improvements

  • ErrEula implementation (Wii U's message box system)

  • Misc bug fixes


  • Added support for native online play

  • Overhauled account and save handling

  • Graphic and input fixes

  • Improved compatibility

  • Tons of bug fixes and smaller tweaks


  • New audio backend

  • Customizable path for mlc01 directory

  • RDTSC timer (smoother gameplay, better audio)

  • Bug fixes


  • Added second window which displays the GamePad screen

  • Improved texture readback

  • Bug fixes (audio, recompiler and input)

  • Optimizations for the texture decoder


  • New controller configuration UI and profile system

  • Added support for XInput

  • Better implementation of VPAD and Padscore API

  • Improved gyro control via mouse

  • Misc bug fixes


  • Recompiler performance improvements

  • Audio improvements

  • Better support for softdec videos

  • Minor compatibility improvements

  • Misc smaller changes and new features


  • Improved compatibility

  • Improved graphics

  • Added support for socket API (nsysnet)

  • Improved Software Keyboard

  • Bugfixes


  • Separable shaders

  • Added memory scanner

  • Graphic improvements

  • Minor optimizations


  • More accurate FPU emulation

  • Optimizations

  • Bugfixes


  • Graphic improvements

  • Minor optimizations

  • Shader cache compilation is now multi-threaded

  • Graphic packs can modify texture formats

  • Bugfixes & minor new features


  • Patch and DLC support

  • Improved compatibility

  • Graphic improvements

  • Bugfixes & minor adjustments


  • Optimizations

  • Improved compatibility

  • Graphic improvements

  • Bugfixes & minor adjustments


  • Recompiler optimizations (Faster CPU emulation)

  • Improved compatibility

  • Reduced VRAM usage

  • Tons of bugs and crashes fixed


  • Added 'Graphic packs' (graphic modding support)

  • Extended shader cache, now transferable and forward compatible


  • Graphic improvements & Bicubic upscale filter

  • Compatibility improvements

  • Minor audio improvements

  • Minor optimizations

  • Bugfixes & misc small changes


  • Graphic improvements

  • Rewritten audio core

  • Bugfixes


  • Hardware acceleration for Streamout

  • Recompiler improvements

  • Optimized file operations + AES-NI support

  • Minor bugfixes, graphic and compatibility improvements


  • New universal GPU buffer cache (replaces vertex cache)

  • NFC support

  • Small graphic improvements

  • Minor changes and bugfixes


  • New texture cache/manager

  • Huge compatibility improvements

  • Graphic improvements

  • Audio improvements

  • Many all-around changes and bugfixes


  • Audio improvements

  • Reduced RAM usage (up to 1.5GB lower)

  • More crashes fixed


  • Added game profiles (manage settings per game)

  • Automatic region detection

  • Minor graphical improvements

  • Performance improvements

  • Added hotkey to toggle between TV and GamePad screen (Ctrl + Tab)

  • Fixed several bugs and crashes


  • Overall improved compatibility

  • Graphical improvements

  • Improved robustness of interpreter and recompiler

  • Added VSync option


  • Added support for anisotropic filtering

  • Added support for sRGB color space

  • Added button mapping to simulate 'Microphone blow'

  • Improved recompiler robustness

  • Fixed some bugs/crashes


  • Added support for mip-mapping

  • Added support for cubemap texture arrays

  • Various smaller improvements to the graphics backend

  • Slightly better compatibility and misc changes


  • Improved recompiler (Now utilizes AVX and BMI extension)

  • Better controller support

  • Improved sound emulation

  • Graphic bugfixes

  • Other changes and bugfixes


  • New enhanced controller configuration menu and emulation

  • Improved shader emulation and graphic bugfixes

  • Improved sound emulation

  • Reduced VRAM usage

  • Small bugfixes and changes


  • Added shader cache (reduces stutter after repeated sessions)

  • New texture loader (reduces stutter)

  • Added region and language selection

  • Generally improved compatibility in multiple ways

  • Various smaller changes


  • Recompiler improvements (up to 50-100% faster CPU emulation)

  • Increased compatibility

  • Fixed a few issues that occurred on AMD GPUs.

  • Added experimental vertex data cache

  • Smaller bugfixes


  • Added PowerPC JIT recompiler (up to 5-6 times faster CPU emulation)

  • Decreased shader compilation stutter

  • Improved audio emulation

  • Large improvements to graphics emulation

  • Tons and tons of smaller changes and bugfixes


  • Added support for Software Keyboard

  • Can now hold TAB key to show GamePad screen

  • Added initial support for GX2 Streamout

  • Implemented coreinit Block Heap API

  • Several smaller improvements to graphics emulation

  • Misc bugfixes


  • Added multi-core support for CPU emulation (Disabled by default, not recommended at this stage)

  • Added support for polygon offset (fixes some shadows and surface flicker)

  • Optimized GPU cpu thread by offloading work to GPU (Improves performance in graphic intensive games)

  • Added support for GX2 Occlusion Query API

  • Improved support for texture samplers and fixed other texture issues

  • Added debug option to view active PPC threads

  • Fixed a crash that could occur when loading .rpx


  • Added fullscreen support

  • Added support for running extracted applications (.rpx with external files)

  • Added support for launching games via command line parameter

  • Vastly improved graphics

  • Improved accuracy and stability of filesystem code

  • Many smaller changes to various parts of the emulator


  • Added support for GPU7 geometry shaders

  • Improved support for 2D texture arrays and cubemaps

  • Generally improved shader emulation

  • New debug option: Dump textures and shaders


  • Added basic audio support

  • Added support for GX2 stencil buffers

  • Improved controller options

  • Miscellaneous bug fixes and small improvements


  • Fixed rendering issues on AMD graphic cards

  • Minor changes and bug fixes


  • Added controller options

  • Added support for OSCoroutine API

  • Improved shader emulation

  • Improved texture/depth/color buffer management

  • Improved CPU timing and thread synchronization

  • Synchronous file operations no longer block CPU execution (reduces frame stutter)


  • Improved shader emulation

  • Added support for 3D textures

  • Lots of bugfixes


  • New future-proof GPU7 shader assembly to GLSL decompiler (work-in-progress)

  • Fixed a few bugs in color and depth buffer emulation.

  • Added more system functions, leading to higher compatibility.

  • Added hacky support for DRC rotation. Right click on the render window & drag to change the orientation

  • Implemented some background logic for audio emulation. No audio output yet.


  • Improved accuracy of shader emulation (again).

  • Improved the emulation of color and depth buffers.

  • Implemented support for: Vertex shader textures, depth samplers and instanced rendering.

  • Fixed a bug causing texture unit updates to be ignored

  • Some attempts to get the emulator running on AMD graphic cards (but we are not quite there yet)

  • If GLSL shader compilation fails the error is now logged to log.txt

  • Lots of other small changes and bugfixes.


  • Improved accuracy of shader emulation.

  • Implemented many system functions leading to higher compatibility.

  • Added support for statically loading and linking multiple RPX/RPL files (WUD only for now).


  • Initial cemu release.

bottom of page