# CEMU detailed changelog for 1.4.0
# Patreon release date: 2016-03-22
CPU: Added PowerPC JIT recompiler (Currently up to 6x faster in some situations)
Some details:
Multi-stage translation and optimization. PPC -> Intermediate language -> Optimization pass -> x64
Only common PPC Instructions are currently translated. More exotic ones are still todo (e.g. LWARX/STWCX, some forms of PSQ_L/PSQ_ST, a bunch of FPU instructions and others)
Requires CPU extensions SSE2 and SSE3.1, SSE4 LZCNT is optional and will be used if available. In the future we will also utilize AVX and BMI/BMI2 if present.
CPU: Multi-core emulation was removed as it did not provide the benefits we hoped for. It may return in the future but it's unlikely to provide any speed boosts for a majority of games.
To avoid any confusion, this just refers to CPU emulation. CEMU still uses 3 threads in total. One for CPU emulation, one for the GPU command processor and one for the HLE OS.
coreinit: Implemented API MEMFreeToDefaultHeap, OSGetConsoleType
nfp: Added NFP library. New API: SetActivateEvent(), SetDeactivateEvent()
AX2: Added support for ADPCM samplerate converter
AX2: Added support for lowpass and biquad filter
GX2: Improved runtime shader cache. In average the number of shaders that need to be compiled was decreased by around 50-60%, subsequently shader compilation stutter was reduced.
GX2: Cemu will now attempt to use OpenGL's GL_ARB_CLIP_CONTROL if it is available. This will help to fix some texture issues (specifically cubemaps).
If the clip control extension is not available Cemu will still run but there can be texture mapping issues.
GX2: Merged DepthBuffer logic into ColorBuffer/Texture logic. As a result, depth buffers now support 2D texture arrays, 3D textures and cubemaps.
GX2: Added support for texture format R4_G4_UNORM
GX2: Shader instructions that have the clamp flag set now correctly handle floating point INF and -INF
GX2: GX2CopySurface() now correctly handles textures with multiple slices.
GX2: Added support for MULADD_M4 shader instruction.
GX2: Streamout now properly handles instance count > 1.
GX2: Fixed a bug where blend control parameters were not correctly updated.
GX2: Pixel shader imports with non-matching semanticID now default to vec4(0,0,0,1)
GX2: Added a special case to pixel shader depth calculation where 0.999999994 is rounded to 1.0 to behave more like the original hardware
GX2: Added proper support for texture sampler depth compare mode
GX2: Improved handling of command buffers and command buffer submit/retire timestamp (fixes GX2DrawDone())