CEMU 1.8.1b is now available, fixes full CPU load on one thread & improves overall game compatibility


The team behind the best WiiU emulator, CEMU, has released a new version of it. According to the release notes, CEMU 1.8.1b fixes an issue that caused full CPU load on one thread, and supports even more games than its previous version.

In addition, this new version now supports vertex format 32_32_32_32_FLOAT for primitive RECTS, and handles betterĀ invalid/uncompilable shaders (in order to avoid drawcalls that will lead to errors).

It’s also worth noting that CEMU 1.8.1b avoids shadow samplers on AMD GPUs (and this workaround can be forced on other GPUs via -amdshadows command line parameter).

This new version of CEMU is currently available to all Patreon backers, and will be made available to the public next week.

Below you will find its complete changelog, as well as a video showcasing some of its improvements/features!

# New in 1.8.1b:

general: Fixed a bug causing permanent full CPU load on one thread

# New in 1.8.1:

CPU/JIT: Fixed a bug in ADDME. instruction
CPU/Interpreter: Fixed a bug in PSQ_STX and PSQ_LDX instruction (GQR index parsed incorrectly from opcode)
CPU/Interpreter: Fixed invalid endianness in instruction STHBRX

coreinit: Added ‘errno’ export
coreinit: Added API OSCalendarTimeToTicks(), OSCancelThread(), IM_GetHomeButtonParams(), OSCalendarTimeToTicks(), FSAppendFile(), FSRemove(), SAVEChangeDir()
coreinit: Fixed GHS flock handling. Added __ghs_flock_file() and __ghs_funlock_file()
coreinit: Added support for milliseconds and microseconds in OSTicksToCalendarTime()
coreinit: Fixed bug where FSOpenFile() with mode ‘r+’ would not allow read access
coreinit: Fixed a bug where shared-write file access prevented simultaneous read access from the same file

GX2: Added API GX2GetScissorReg(), GX2GetTargetChannelMasksReg(), GX2SetDefaultState()
GX2: Better handling for invalid/uncompilable shaders (avoid drawcalls that will lead to errors)
GX2: Added support for vertex format 32_32_32_32_FLOAT for primitive RECTS
GX2: MULADD shader instruction will now use correct rules in regards to 0*anything
GX2: Fixed OpenGL error caused by games requesting more mip levels than possible for a texture
GX2: Fixed source mip level parameter for GX2CopySurface()
GX2: Avoid shadow samplers on AMD GPUs. This workaround can be forced on other GPUs via -amdshadows command line parameter

SWKBD: Fixed handling of active state (previously it was tied to the keyboard being visible whereas it should be separate)
SWKBD: Fixed input handling (should no longer clash with wxWidgets, leading to input sometimes being ignored)

RPL: Fixed bug where imports/exports were mapped incorrectly if the internal module name included ‘.rpl’

zlib: Overhauled Cafe OS zLib implementation

nsysnet: Added nsysnet (socket) library

Cemu 1.8.1 (Wii U Emulator) | Improvements Preview