top of page
loading_reduced.jpg

2.5 (candidate) / 09-12-2024

Cemu

Accuracy

Performance

Features

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

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.

 

Extensions:

   Cemuhook

  • 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


   BetterJoy

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

  • Upscaling and downscaling options in the graphics settings now work correctly on Vulkan. Previously, the hermite and bicubic scaling options would only work on OpenGL and silently fall back to bilinear filtering on Vulkan

  • Graphic pack support for custom scaling shaders has been reworked and is now functional on Vulkan, with fixes carrying over to OpenGL. If you are a graphic pack developer see #1392 for details

  • Cemu will now show an error if the MLC directory is not writeable

  • Added a workaround for graphic driver crashes seen in the eShop versions of Fatal Frame. These are caused by the game shipping with shaders that contain infinite loops. The actual hardware has an escape mechanism for this that we don't yet emulate

  • Added support for connecting Wiimotes via L2CAP on Linux (Details in #1353)

  • Set correct version for MacOS bundle

  • Updated Arabic, German, Russian and Swedish translations



--2.4 candidate--

  • Added emulated Dimensions Toypad

  • Fixed a corruption bug to could occur when reading from titles in .app/.wud/.wux format under rare circumstances

  • Cemu will now validate all reads for .app/.wud/.wux format titles and log any detected errors to log.txt. In the future we will also show these errors on screen

  • Reworked the Wii U error dialog implementation (ErrEula) for better accuracy. This should fix the bug where sometimes the error dialog was unskippable in some games

  • Fixed a bug in the HLE implementation of proc_ui.ProcUIRegisterCallback/ProcUIRegisterBackgroundCallback



--2.3 candidate--

  • Vulkan: Fixed a race condition where uniform data could get corrupted. Most commonly this would cause polygon corruptions in BotW or XCX but in theory could affect every game

  • Vulkan: Changes to how frame display is handled to reduce input latency

  • Input: Fixed a crash that could occur when closing the add controller dialog while a controller search was still active

  • Amiibo: Fixed an issue where Amiibo were not detected in Mario Kart 8

  • Online: SpotPass functionality now respects the proxy_server option in settings.xml

  • Windows: In portable mode shortcut save icons will now be stored to the Cemu directory instead of %appdata%

  • Misc: Fixed a crash that could occur when invalid command line parameters were passed to Cemu



--2.2--

  • Handle null timeout in nsysnet.select. Fixes a crash in Skylanders SuperChargers and Imaginators

  • Fixed an issue where changing the Receive untested updates option would have no effect

  • The Linux appimage version will use the system libstdc++.so.6 if it is newer than the bundled file

  • Updated French, Korean and Simplified Chinese translations



--2.1 stable/final experimental update--

This is the major release of Cemu 2.1 with a cumulative changelog which includes the changes from all 93 experimental releases since Cemu 2.0.


For users that were already using our experimental updates (2.0-x), you can think of this release as the final experimental update. There are no noteworthy additional changes compared to Cemu 2.0-95 other than the new version number.


Starting with this release, Cemu will now only have a single release channel. Instead of experimental releases, there is a new option to control whether Cemu will update immediately to cutting-edge releases, which may contain uncaught bugs, or update with a slight delay. More details on this can be found here


Major new additions

  • Added appimage and flatpak releases for Linux

  • Added an experimental release for macOS. Available for x86-64 only for now but it can be run on ARM macs through Rosetta 2 emulation. MoltenVK is used as the graphics backend

  • Added a tool to emulate the USB portals for Skylanders and Disney Infinity

  • Added NFC/NTAG support. Pokemon Rumble U figures can now be scanned from a file similar to the existing Amiibo scanning

  • Added support for titles stored in .wuhb (Wii U homebrew) and .app (NUS) format

  • Added support for connecting to Pretendo network services

  • Cemu on Windows is now non-portable by default for new installations only. All data and config files will be stored in %appdata%/Cemu. This makes the Windows installation match other platforms. Existing installations will not be affected

  • Added portable mode by placing a directory named portable next to the Cemu executable. Cemu will then store data and config files in this folder. This works on all platforms


General

  • Added Disable screen saver setting

  • Added --title-id command line parameter to launch games by title id

  • Added desktop shortcut creation to game list

  • Added experimental GamePad microphone support

  • Improved unicode character support across the board, including the names and descriptions of graphic packs

  • Cemu will no longer refuse to start when the MLC path is invalid

  • Fixed several GamePad window size issues

  • Fixed a regression causing an infinite loop in the renderer. This would previously cause Tokyo Mirage Sessions and Pokkén Tournament to freeze on boot

  • Fixed a regression causing some games to crash without dumped Mii system files. Known affected games were Sonic Lost World and Super Mario 3D World

  • Initial support for title switchingImproved compatibility with the Wii U menu which can now run and launch games
    Games with launchers, like Ryū ga Gotoku 1 & 2 HD and Steamworld Collection, are now playable
    This feature is still experimental. Once it's stable, the option to quit games without closing Cemu will be added

  • Fixed a crash that could occur when the Title Manager tried to display system data titles

  • Fullscreen mode can now also be toggled with F11

  • The GamePad view will now display the game-specific bootup screen

  • Discord rich presence will use the translated title name that matches the console language, instead of defaulting to English

  • Fixed an issue where error dialogs in a game (erreula) can't be interacted with if the GamePad window is open

  • Updated default game profiles

  • Decreased the latency of the H264 decoder by decoding frames asynchronously


Windows

  • Re-enabled DPI awareness

  • Fixed a crash that would occur when no audio devices are available


Linux

  • Added wayland support

  • Added support for storing MLC and game files on case-sensitive filesystems

  • Added an option to enable GameMode

  • Brought online features on a par with Windows builds

  • Enabled DSU controller support

  • Emulated games can now access HID devices from the host via libusb (e.g. Skylanders portal)

  • Many changes to improve robustness of the Linux build

  • Added debug option to create core dumps on crash

  • Improved diagnostics logging in case of crashes or other exceptions. Cemu is now also shipped with symbols so that stack traces show function names

  • The CPU and memory statistics in the overlay now work on Linux

  • The background colors of the Game List now match the brightness of the window theme instead of always using bright colors

  • Fixed an issue where closing the GamePad window would freeze Cemu

  • Fixed a bug where the GamePad window would not render anything with OpenGL

  • Fixed an issue where some UI dialogs would cause Cemu to crash after closing them

  • Fixed many smaller UI issues specific to WxWidget's wxGTK backend


UI

  • Added Receive untested updates option to general settings. More info here

  • Added Open Cemu folder and Open MLC folder options to the File menu

  • Added new options when right-clicking a game inside the Game ListCopy the title ID, name or icon of a game
    Delete the shader cache of a game

  • Added a location column to the Title Manager

  • Separated icons in the Game List into their own hideable column

  • Fixed empty title names in Title Manager if the console language is set to something other than English

  • Fixed an issue where custom game names would not show in the Game List when it was set to icon mode

  • Fixed an issue where an extra "c" entry would show up in the save import/export dropdown in the Title Manager

  • Fixed an incorrect error message that could occur while installing games due to a mistake in the calculation of free disk space

  • The font size of overlay text will now scale according to the display's DPI

  • Fixed a crash that would occur when clicking on the Format column header in the Title Manager

  • Use the long title names in the Game List instead of the short name. This was changed due to some games which have cut-off short names

  • UI elements for options that cannot be changed at runtime are now grayed out when a game is running

  • Simplified the Getting Started dialog

  • Various smaller tweaks and restructuring of the UI to make Cemu more user-friendly


CPU

  • Improved emulation of PowerPC overflow condition. Improves compatibility with some Unity and DS Virtual Console games


GPU core (Latte)

  • Added support for more shader instructions, some of which are necessary for homebrew shaders compiled with CafeGLSL

  • Optimized output of the shader decompiler which slightly reduces shader compilation times

  • Removed shaderMulAccuracy min option since it has no measurable benefits over the other options

  • Use better hashing for the buffer cache to avoid hash collisions. Fixes a bug in BotW where the weapon trail effect would sometimes render in a solid red color for a single frame

  • Added support for a missing vertex format used by Rabbids Land

  • Corrected calculation of FragCoord.w. Fixes rendering issues in DS Virtual Console games

  • Fixed several issues where the shader decompiler could generate broken GLSL. Fixes rainbow colors on characters in Tekken Tag Tournament 2

  • Various smaller optimizations


OpenGL

  • Removed -legacy command line parameter which has been non-functional for a long time. Originally this would disable some features to fix crashes on pre-2015 Intel GPU drivers

  • Cemu should no longer crash if OpenGL fails to initialize

  • Fixed a regression where Cemu's precompiled shader cache for OpenGL wasn't actually used

  • Lowered latency of texture readback. This fixes severe FPS drops in BotW whenever something is lit on fire


Vulkan

  • The option Async shader compile is now enabled by default

  • Multi-threaded pipeline compilation during the shader cache loading screen is now again enabled on Nvidia drivers which results in much faster pipeline loading

  • Fixed incorrect decoding of R4G4 texture format when VK_FORMAT_R4G4_UNORM_PACK8 is not supported. Fixes invisible rupee counter in Twilight Princess HD

  • Several changes to make Cemu align more with the Vulkan specification

  • Avoid a crash if validation layer is enabled but not installed

  • Improve floating point emulation accuracy in shaders when VK_KHR_SHADER_FLOAT_CONTROLS extension is available. This fixes mobs in Minecraft having misplaced limbs

  • Added support for R32_X8_FLOAT color texture format

  • Allow RGBA16F texture format with SRGB bit. Fixes a crash in Sonic Transformed

  • Fixed stencil front mask using the value of the back mask

  • Enhanced synchronization of draw calls involving textures that are read from and written to simultaneously. Resolves an issue with broken heightmaps in BotW on the Mesa RADV driver

  • Resolved a crash that occurred when the pipeline cache failed to open due to corruption or other issues


Online Functionality

  • Fixed online connectivity for accounts in North America region after Wii U system update 5.5.6

  • Added option to switch between Nintendo, Pretendo or custom server URLs

  • Online mode and server selection can be set per-account instead of only globally

  • The Download Manager will always connect to Nintendo servers even if the current account is set to Pretendo or custom servers. This avoids the hassle of having to switch server settings temporarily to use the Download Manager

  • Fixed SpotPass downloads not working at all on Linux/MacOS and generally improved robustness of SpotPass downloads

  • Correctly set the current app in the friend status so it doesn't show up as "???" to other friends anymore

  • Added rudimentary proxy support (can currently only be configured by editing settings.xml)


Input

  • Added a pairing utility for Wiimotes

  • Added Wiimote support for Linux and MacOS

  • Fixed a crash on Cemu startup caused by DSU initialization that would occur when not connected to any network

  • Added support for analog triggers for DSU API controllers

  • Fixed incorrect CRC calculation in DSU protocol

  • Fixed an issue where the UI would allow to configure more controllers of a particular type than technically supported

  • Always refresh the input settings UI when a different controller profile is selected

  • Loading a controller profile in the input settings, then changing the name and saving it again correctly creates new profile under the new name now

  • Simulate the behavior of the Wii U input driver returning no input data when queried too quickly. Fixes extra controllers not being detected in Affordable Space Adventures

  • Increased frequency of WPAD/KPAD sampling callbacks. This fixes the high latency of controllers in Pokémon Rumble U


Audio

  • Added a default device to the Cubeb device selection


Localization

  • More parts of Cemu are now translatable

  • While some languages have been updated with new translations, most translations remain incomplete. We are looking into streamlining the translation process in the future


Graphic packs and patches

  • The feature to change the pixel format of a texture (overwriteFormat in rules.txt) is now working correctly on Vulkan

  • Fixed an issue in the parser for assembly patches where commas inside strings would be treated as a delimiter

  • Games will now see new files added via graphic packs. Previously when a game iterated a directory, it would only see files matching the names of the original game files and not any of the new files added by graphic packs


Debugging

  • Added GDB stub for attaching external debuggers

  • Added a simplistic PPC profiler to the PPC Threads view

  • Fixed register window not updating in PPC debugger on Linux/MacOS

  • Added logging breakpoints

  • Added support for memory read/write breakpoints on Linux

  • PPC stack traces in log.txt will display function names if they are available

  • Added Invalid API usage log type. This log type is aimed at homebrew developers and will inform about misuse of certain API functions

  • Assigned a name to all of Cemu's threads. The main thread is now called cemu

  • Added a window to view logging output in realtime (Debug -> Open logging window)

  • Various smaller fixes for the PPC debugger


Technical CafeOS and HLE improvements

  • Fixed a bug in nn_save that would prevent a title from accessing the saves of other titles. This is often for bonus content like Captain Toad Treasure Tracker or demo versions of games

  • Fixed an out-of-bounds memory access in sndcore

  • Reworked coreinit API related to thread creation (OSCreateThread, OSCreateThreadType)

  • Added HLE implementions for nfc.rpl, ntag.rpl and proc_ui.rpl

  • Implemented coreinit FSA API which is used by homebrew compiled with WUT 1.3.0 or newer

  • Reworked nsyshid to support different backends (currently the backends are: libusb, Windows HID API and emulated portals)

  • Stubbed drmapp PatchChkIsFinished, AocChkIsFinished, TicketChkIsFinished and nn_sl.GetDefaultWhiteListAccessor to avoid errors and crashes on the Wii U menu

  • Stubbed sysapp.SYSSwitchToEManual to avoid softlocks when accidentally opening the manual in any game

  • Fixed a regression where most OSAtomic functions would return the wrong value

  • Fixed issues where Mii names where handled with the wrong endianness leading to names being displayed as garbled text in some games

  • OSReport and OSConsoleWrite are now thread-safe and calling them in parallel will not cause log corruption or crashes

  • Various improvements to coreinit OSDynLoad API

  • Reworked coreinit memory mapping API (OSAllocVirtAddr, OSMapMemory, etc.)

  • Tweaked coreinit thread scheduler to avoid a deadlock in Just Dance 2019

  • Fixed an issue where emulated PowerPC threads would sometimes immediately end their allotted timeslice

  • Added support for parent directory references ("..") in FS/FSA file paths

  • Fixed an issue where the FS/FSA working directory would be ignored for some filesystem operations

  • Implemented more parts of nn_olv. Mario Kart 8 tournaments and ranking uploads are now functional

  • Fully reworked nn_fp (Friend service) implementation

  • Implemented PPC va_list and va_arg. Additionally reworked functions that rely on these

  • Fixed UTC offset calculation in GetUtcOffset/GetUtcOffsetEx

  • Correctly handle permissions for FSGetMountSource. This fixes One Piece: Unlimited World Red freezing on boot

  • Started work on a new modularized approach of handling HLE modules. This will eventually simplify title switching and is a prerequisite for multi-process emulation

  • Improved accuracy of OSSwitchCoroutine. Fixes a crash in Injustice: Gods Among Us during boot

  • Implemented minimal code for KBDGetKey. Fixes MSX Virtual Console games freezing on boot

  • Correctly treat the target in GX2CopyColorBufferToScanBuffer as a bitmask and not an id

  • Avoid a crash in nsysnet.recvfrom when the peer address is null

  • Added support for SO_TYPE in nsysnet.getsockopt

  • Added support for SO_BIO and SO_ENOTCONN in nsysnet

  • Correctly set wiimote position visibility state in KPADRead. This fixes the wiimote cursor being invisible in Little Inferno

  • Fixed a crash that would happen when KPADGetUnifiedWpadStatus was called while input logging is enabled

  • Improved handling of APIs that should fail gracefully in offline mode (e.g., nn_act.AcquireNexToken)

  • Implemented additional CafeOS API:coreinit: OSIsDebuggerPresent, OSGetForegroundBucketFreeArea, OSGetSystemTick, MCP_GetTitleId
    nsysnet: inet_ntop
    nn_act: GetTransferableId
    nn_acp: ACPGetTitleMetaXml, ACPGetOlvAccesskey
    zlib125: deflateInit_



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

Hotfix 

  • 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



--1.26.2--

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



--1.26.1--

# 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



--1.26.0--

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


Show Previous Changes

--1.25.6--

general: The download manager now has experimental support for downloading DLC
        Online features require dumped system files. See the guide at:
        https://cemu.cfw.guide/online-play

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



--1.25.5--

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



--1.25.4--

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



--1.25.3--

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



--1.25.2--

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 https://cemuhook.sshnuke.net/


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



--1.25.0--

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



--1.24.0--

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



--1.23.1--

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




--1.23.0--

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



--1.22.13--

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



--1.22.12--

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:
             default=true
             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)



--1.22.11--

  • 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: https://account.nintendo.net)
            --ecs-url <url>   (default: https://ecs.wup.shop.nintendo.net/ecs/services/ECommerceSOAP)

    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




--1.22.10b--

  • 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



--1.22.9d--

  • 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
    Note:
    (#xx) refers to resolved bug tracker issues. See http://bugs.cemu.info/projects/cemu/



--1.22.8--

  • 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



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



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



--1.22.6--

  • Compatibility improvements

  • Lots of crash and bug fixes



--1.22.5--

  • Performance improvements

  • Compatibility improvements

  • Graphic fixes



--1.22.4--

  • Compatibility improvements

  • Graphic fixes and optimizations



--1.22.3--

  • New graphic pack features

  • Various fixes



--1.22.2--

  • Stability improvements

  • Improved debugger tool



--1.22.1--

  • Stability improvements

  • UI tweaks



--1.22.0--

  • Threading rework



--1.21.5--

  • Compatibility fixes

  • Misc improvements



--1.21.4--

  • Updated memory searcher tool

  • Graphics fixes

  • Compatibility improvements



--1.21.3--

  • Anisotropic filtering can now be controlled via graphic packs

  • Re-Added texture dumping support

  • Graphics fixes



--1.21.2--

  • Vulkan fixes

  • Various smaller optimizations



--1.21.1--

  • Vulkan fixes

  • UI improvements



--1.21.0--

  • Added game file verification to title manager

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

  • Misc fixes



--1.20.2--

  • Graphic fixes

  • Stability improvements

  • Improved support for homebrew



--1.20.1--

  • Fixed several graphic bugs

  • Fixed audio bugs

  • Misc smaller fixes



--1.20.0--

  • New GPU buffer cache

  • Option to import/export saves

  • Misc improvements



--1.19.3--

  • Vulkan and OpenGL graphic fixes

  • Minor performance improvements



--1.19.2--

  • Audio improvements

  • Title manager improvements

  • Vulkan/OpenGL fixes

  • Misc smaller improvements



--1.19.1--

  • Added title manager tool

  • Graphic fixes

  • Misc minor improvements



--1.19.0--

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

  • Vulkan fixes

  • Minor compatibility improvements

  • Misc minor improvements



--1.18.2--

  • Vulkan improvements

  • Amiibo improvements

  • Misc smaller changes



--1.18.1--

  • Vulkan and OpenGL fixes

  • Input improvements

  • Misc smaller changes



--1.18.0--

  • 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



--1.17.4--

  • Added emulated SD card

  • Vulkan stability improvements

  • Minor compatibility improvements



--1.17.3--

  • JIT code translation is now asynchronous

  • Gamelist improvements

  • OpenGL & Vulkan crash fixes

  • Misc bug fixes and smaller changes



--1.17.2--

  • Stability improvements for multi-core recompiler modes

  • Stability improvements for Vulkan

  • Compatibility improvements

  • UI clean up

  • Miscellaneous bug fixes and smaller new features



--1.17.1--

  • Vulkan improvements

  • Misc smaller new features and bug fixes



--1.17.0--

  • 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



--1.16.1--

  • Vulkan performance improvements

  • Various smaller changes and fixes



--1.16.0--

  • Added Vulkan renderer

  • Miscellaneous improvements



--1.15.20--

  • Minor compatibility improvements

  • Various smaller changes



--1.15.19--

  • Added account management (aka separate save slots)

  • Bug fixes and misc smaller features



--1.15.18--

  • Improved game list

  • Faster startup time

  • Misc minor bug fixes



--1.15.17--

  • Improved Amiibo support

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

  • Game list improvements

  • Misc bug fixes



--1.15.16--

  • Bug fixes

  • Small usability improvements



--1.15.15--

  • Surround sound support

  • Minor improvements and bug fixes



--1.15.14--

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

  • Bug fixes



--1.15.13--

  • Minor compatibility improvements

  • Bug fixes



--1.15.12--

  • Bug fixes & minor tweaks



--1.15.11--

  • Improved handling of updates and DLC

  • Debugger improvements

  • Internal shader changes

  • Bug fixes



--1.15.10--

  • Added auto-updater

  • Screenshots are now automatically saved to a folder

  • Niche optimizations

  • Bug fixes & minor improvements



--1.15.9--

  • UI improvements

  • Compatibility improvements

  • Bug and crash fixes



--1.15.8--

  • Overlay enhancements and new notification system

  • Improved accuracy of streamout cache

  • Graphic fixes

  • Bug and crash fixes



--1.15.7--

  • Controller information added to overlay

  • Faster JIT recompilation

  • Bug and crash fixes



--1.15.6--

  • Added UI editor for game profiles

  • Per-game controller configuration

  • Removed deprecated settings/UI

  • Improved support for Lego and Skylanders USB portals



--1.15.5--

  • Recompiler accuracy improvements

  • Further reduced micro-stuttering

  • Bug fixes & miscellaneous improvements



--1.15.4--

  • Added h264 video decoding support

  • Added more SpotPass functionality

  • Bug fixes & miscellaneous improvements



--1.15.3--

  • Reduced micro-stuttering

  • Shader screen now displays game boot image

  • Added debug tools: Frame profiler + WUD filesystem dumper

  • Crash and input fixes



--1.15.2--

  • GamePad audio support

  • Optimizations for 'High' GPU buffer cache accuracy

  • Upscaling filters reworked

  • Recompiler improvements

  • Vsync fixed

  • Bug fixes & misc smaller improvements



--1.15.1--

  • Wiimote improvements

  • Audio improvements

  • Added button to download community graphic packs

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

  • Compatibility & miscellaneous improvements



--1.15.0--

  • Added PowerPC Debugger

  • Added configurable graphical overlay

  • Added file replacement (mod) support via graphic packs

  • Compatibility & miscellaneous improvements



--1.14.0--

  • New texture system & graphic fixes

  • Small audio improvements

  • Bug fixes & miscellaneous improvements



--1.13.2--

  • Usability improvements and new UI options

  • Slightly improved performance

  • Bug fixes & miscellaneous improvements



--1.13.1--

  • Improved audio emulation

  • Added XAudio2 support

  • Bug fixes & miscellaneous improvements



--1.13.0--

  • Overhauled graphic pack system and interface

  • New settings window

  • Added Discord Rich Presence support

  • Added .elf support (homebrew)

  • Bug fixes & miscellaneous improvements



--1.12.2--

  • Added UI localization

  • Optimizations

  • Bug fixes & miscellaneous improvements



--1.12.1--

  • General controller and native wiimote improvements

  • Added support for USB devices (via passthrough)

  • Minor compatibility improvements

  • Tons of bug fixes & miscellaneous improvements



--1.12.0--

  • Added friend list support

  • Added native wiimote support

  • Improved game list

  • Bug fixes & various smaller improvements



--1.11.6--

  • 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



--1.11.4--

  • Compatibility improvements

  • Reduced overall memory usage

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

  • Minor other fixes and improvements



--1.11.3--

  • Added multi-core PowerPC emulation

  • SpotPass support (auto-download BOSS files)

  • Small optimizations

  • Misc smaller changes and bugfixes



--1.11.2--

  • Improved compatibility

  • Graphic bugfixes

  • Improved Amiibo support

  • Various smaller tweaks and new features



--1.11.1--

  • Improved PPC recompiler

  • Improved online support

  • Fixed graphic bugs

  • Compatibility improvements

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

  • Misc bug fixes



--1.11.0--

  • Added support for native online play

  • Overhauled account and save handling

  • Graphic and input fixes

  • Improved compatibility

  • Tons of bug fixes and smaller tweaks



--1.10.0--

  • New audio backend

  • Customizable path for mlc01 directory

  • RDTSC timer (smoother gameplay, better audio)

  • Bug fixes



--1.9.1--

  • Added second window which displays the GamePad screen

  • Improved texture readback

  • Bug fixes (audio, recompiler and input)

  • Optimizations for the texture decoder



--1.9.0--

  • 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



--1.8.2--

  • Recompiler performance improvements

  • Audio improvements

  • Better support for softdec videos

  • Minor compatibility improvements

  • Misc smaller changes and new features



--1.8.1--

  • Improved compatibility

  • Improved graphics

  • Added support for socket API (nsysnet)

  • Improved Software Keyboard

  • Bugfixes



--1.8.0--

  • Separable shaders

  • Added memory scanner

  • Graphic improvements

  • Minor optimizations



--1.7.5--

  • More accurate FPU emulation

  • Optimizations

  • Bugfixes



--1.7.4--

  • Graphic improvements

  • Minor optimizations

  • Shader cache compilation is now multi-threaded

  • Graphic packs can modify texture formats

  • Bugfixes & minor new features



--1.7.3--

  • Patch and DLC support

  • Improved compatibility

  • Graphic improvements

  • Bugfixes & minor adjustments



--1.7.2--

  • Optimizations

  • Improved compatibility

  • Graphic improvements

  • Bugfixes & minor adjustments



--1.7.1--

  • Recompiler optimizations (Faster CPU emulation)

  • Improved compatibility

  • Reduced VRAM usage

  • Tons of bugs and crashes fixed



--1.7.0--

  • Added 'Graphic packs' (graphic modding support)

  • Extended shader cache, now transferable and forward compatible



--1.6.4--

  • Graphic improvements & Bicubic upscale filter

  • Compatibility improvements

  • Minor audio improvements

  • Minor optimizations

  • Bugfixes & misc small changes



--1.6.3--

  • Graphic improvements

  • Rewritten audio core

  • Bugfixes



--1.6.2--

  • Hardware acceleration for Streamout

  • Recompiler improvements

  • Optimized file operations + AES-NI support

  • Minor bugfixes, graphic and compatibility improvements



--1.6.1--

  • New universal GPU buffer cache (replaces vertex cache)

  • NFC support

  • Small graphic improvements

  • Minor changes and bugfixes



--1.6.0--

  • New texture cache/manager

  • Huge compatibility improvements

  • Graphic improvements

  • Audio improvements

  • Many all-around changes and bugfixes



--1.5.6--

  • Audio improvements

  • Reduced RAM usage (up to 1.5GB lower)

  • More crashes fixed



--1.5.5--

  • 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



--1.5.4--

  • Overall improved compatibility

  • Graphical improvements

  • Improved robustness of interpreter and recompiler

  • Added VSync option



--1.5.3--

  • 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



--1.5.2--

  • Added support for mip-mapping

  • Added support for cubemap texture arrays

  • Various smaller improvements to the graphics backend

  • Slightly better compatibility and misc changes



--1.5.1--

  • Improved recompiler (Now utilizes AVX and BMI extension)

  • Better controller support

  • Improved sound emulation

  • Graphic bugfixes

  • Other changes and bugfixes



--1.5.0--

  • New enhanced controller configuration menu and emulation

  • Improved shader emulation and graphic bugfixes

  • Improved sound emulation

  • Reduced VRAM usage

  • Small bugfixes and changes



--1.4.2--

  • 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



--1.4.1--

  • 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


--1.4.0c--

  • 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



--1.3.3--

  • 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



--1.3.2--

  • 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



--1.3.1--

  • 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



--1.3.0--

  • 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



--1.2.0--

  • Added basic audio support

  • Added support for GX2 stencil buffers

  • Improved controller options

  • Miscellaneous bug fixes and small improvements



--1.1.2b--

  • Fixed rendering issues on AMD graphic cards

  • Minor changes and bug fixes



--1.1.2--

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



--1.1.1--

  • Improved shader emulation

  • Added support for 3D textures

  • Lots of bugfixes



--1.1.0--

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



--1.0.2--

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



--1.0.1--

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



--1.0.0--

  • Initial cemu release.

bottom of page