# Cemu detailed changelog for 1.7.1# Patreon release date: 2017-02-02general: Fixed a crashbug that could occur due to invalid syntax in graphic pack rules.txtCPU/JIT: Threads can now continue execution inside recompiled code immediately after a context switch.Previously threads would default back to the interpreter for a short timeAs a result of this change performance in games with high amount of context switches is drastically improvedCPU/JIT: Fixed a bug in LSWI/STSWI instruction when nb = 2CPU/JIT: Improved performance of SRAW instructionCPU/JIT: Implemented conditional BL instructionsCPU/JIT: Improved handling for very large functions (PPC code size above 128KB)CPU/JIT: Fixed a bug in the generated code for the MFTBL instructionCPU/JIT: Fixed a bug where the CR0 result was calculated incorrectly after AND instructionsCPU: Implemented ADDME instructionCPU: Implemented OE versions of MULLW, ADD and NEG instruction in interpretercoreinit: Fixed a bug in BlockHeap block allocation that eventually could lead to memory corruptioncoreinit: Implemented FS working directory supportcoreinit: New API: IMGetTimeBeforeDimming(), OSSetAlarm(), FSChangeDir()coreinit: Fixed incorrect size alignment in DCZeroRange()Input: Fixed a bug that caused slowdowns due to inactive controllersVPAD: Changed internal raw touch coordinate bias and scale to match a real Wii U GamePadRPL: Better TLS supportRPL: Added support for relocation types 251 and 253H264: New API H264DECSetParam_OUTPUT_PER_FRAME()AX: Fixed voice loop counter not correctly incrementing for PCM16 or PCM8 voicesGX2: Reverted change from 1.6.3, R10_G10_B10_A2_SNORM GX2 format is represented using GL_RGBA16_SNORM againGX2: Fixed a graphic pack related crash bug that could occur due to upscaled depth texturesGX2: Fixed a bug that caused textures to be overwritten with outdated data after a clear operationGX2: BC4 textures now correctly duplicate the color to all channels instead of just the red channelGX2: Cemu will now free unused textures to conserve VRAM