A group of developers that have made the Wii U emulator titled Cemu v1.8.2 will be released to the public in about a week.
Currently, It is only available for patrons, people who donate money for rewards/perks over at Patreon. Nintendo cannot catch a break with their systems as of recently. Below you will find a short and long summary of the changes alongside pictures.
The short version: The latest release of Cemu consists of performance updates, improved game compatibility, simplifying audio debugging, softdec video support, the ability to resize the Cemu window and several other optimizations.
The long version: Here is the Change-log with the information.
- general: Any .rpl files placed in cafeLibs/ directory will be loaded instead of the internal HLE modules (experimental feature, no real use yet)
- general: Cemu window can now be resized
- CPU/JIT: Fixed a bug in recompiler SRWI instruction
- CPU/JIT: Fixed a bug that could cause the recompiled code to skip an instruction if the thread was switched between the beginning of a loop and an inlined function
- CPU/JIT: Added STBUX instruction to recompiler
- CPU/JIT: Several other optimizations for the recompiler:
Use AVX non-destructive 3-operand instructions to optimize some copy operations away
Delay/Avoid endian-swapping between LWZ/STW if the data is not used for any other operation
Generate shorter code for BCTRL, BL, BLR and other far branches (2 instructions, only 1 for far branches with no LR update)
Replace branches with conditional moves (CMOVcc) if possible
Avoid redundant FPR loads and stores
Better detection for situations where x64 flags can be used instead of testing CR bits
Avoid extra work of thread scheduling checks in tight non-infinite loops
- coreinit: New API OSTryAcquireSpinLockWithTimeout(), OSSwitchFiberEx(), MCP_Open(), MCP_Close()
- coreinit: More accurate emulation of foreground bucket memory and it’s subregions
- coreinit: FSOpenDir() no longer ignores the current working directory
- coreinit: Fixed integer overflow in OSTicksToCalendarTime()
- AX: Added AX voice debugger
- AX: Fixed biquad filter
- AX: New API AXSetVoiceSamplesAddr(), AXSetVoiceLoopOffset()
- GX2: Improved detection of changed data for typical screen-size textures in texture cache (fixes softdec videos)
- GX2: Fixed invalid GLSL code being generated for 3D texture access with offset
- GX2: Fixed bug in indices generation for PRIMITIVE_RECTS
- GX2: Fixed a bug where adding entries to a shader cache .bin archive would sometimes have no effect (causing Cemu to recompile the affected shaders everytime)
- GX2: Various smaller optimizations throughout the graphic backend (performance gain 1-3%)
- GX2: Added support for tileMode filter in graphic packs texture rules (Useful to exclude video frames or other CPU-accessed textures)
- GX2: Aspect ratio calculation now uses effective size of texture (after graphic pack rescaling) rather than original size
Here are a few images to help showcase the changes made.