# CEMU detailed changelog for 1.4.2# Patreon release date: 2016-04-30general: FPS counter now updates more frequentlyCPU: 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 valuecoreinit: Added weak-symbol __gh_FOPEN_MAXcoreinit: 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 cacheEverytime a previously unknown shader is loaded, the shader and all releated 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 targetsGX2: 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 codeFS: Added API FSGetMountSource()vpad: Added VPADGetTPCalibratedPointEx()vpad: VPADGetTPCalibratedPoint() now correctly copies the touch flags