# CEMU detailed changelog for 1.4.2 # Patreon release date: 2016-04-30 ## 1.4.2b ax: Adjusted sample count for AUX callbacks. Previously this could lead to crashes if the sample data was used inside the AUX callback. ax: Fixed a bug that caused DeviceFinalMix callbacks to be skipped. ## 1.4.2 general: FPS counter now updates more frequently CPU: Improved recompiler code generated for DCBZ instruction. h264: Simulate successful video decoding rather than returning errors (proper video decoding is still WIP. The new workaround fixes freezes when a game was waiting for video playback to happen) coreinit: Fixed a bug in OSReadRegister16() and OSReadRegister32Ex() where 0 was returned instead of the actual register value coreinit: Added weak-symbol __gh_FOPEN_MAX coreinit: Added API OSWakeupThread() ax: Added support for AUX bus callbacks (New API: AXRegisterAuxCallback) ax: Added support for voice protection (New API: AXVoiceBegin, AXVoiceEnd, AXVoiceIsProtected) GX2: Added permanent shader cache Everytime a previously unknown shader is loaded, the shader and all related renderstate information is cached in a file. When CEMU boots a game, it will use the cached information to reconstruct all known shaders right away. This significantly can decrease stuttering during emulation but it will also increase boot times. GX2: Added support for GX2WaitTimeStamp() GX2: Added support for swap interval configuration via GX2SetSwapInterval() GX2: Added support for binding depth textures as color targets GX2: Fixed a bug where color or depth buffers were not correctly cleared. GX2: Support for texture depth compare modes 'never' and 'always'. GX2: Reworked texture loader code FS: Added API FSGetMountSource() vpad: Added VPADGetTPCalibratedPointEx() vpad: VPADGetTPCalibratedPoint() now correctly copies the touch flags