1.22.7  / 02-03-2021



Cemu is a closed source emulator which is considered to be in experimental state, yet it's able to play a handful of games quite smoothly. 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

  • New in 1.22.7

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

Previous Update Changes

  • New in 1.22.6c
    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