Cemu hook

What Is Cemuhook?

What this is

  • Deprecated. As of Cemu 2.0 going open-source, there's no need for binary plugins like this anymore. Cemuhook is dead, long live Cemuhook !
  • A nearly complete h264 module for cemu, with an implementation similar to what an official one would be (Cemu 1.15.4 or newer also provides its own alternative)
  • GamePad input source override for cemu, including full motion sensing support (requires additional software, see the guide)
  • Adds code/data patching to your games at load-time, which you can activate and share the same way you do graphic packs!
  • Think of it like a pcsx2 plugin, implementing something not in the core

Why did you do this?

  • Why not improve on an already great emulator by adding some extra features ?
  • I like hacking on software that originally wasn't meant to be extended/changed
  • The Cemu devs don't seem to mind, and in fact have been really supportive (Huge thanks to Exzap!)

How to use

  • You can't use this on Cemu 2.0 or later, please delete it from it's folder.
  • Extract contents of zip into Cemu folder
  • Enjoy


Current versions

All versions



  • - Fixed Cemuhook H264 decoder problems on Cemu 1.26.2
  • - Fixed compatibility with Cemu 1.26.2
  • - Fixed custom affinity and RPL modules list dialogs crashing Cemu
  • - Compatibility update required for Cemu 1.25.1+
  • - Fix rare crash on cemu exit that happens if cemuhook is loaded
  • - Disable wxWidgets asserts, fix H264DECCheckDecunitLength not working properly when H264 AUD are present in stream
  • - Do not replace H264 Decoder functions for Cemu versions >= 1.15.4 (which has native H264 decoding support), option in Debug menu to override
  • - Support patches in v3 graphic packs with Cemu 1.14.0+, allowing profile variables to be used as data constants, and lets packs be activated/deactivated at runtime (even hot-reload of changed patches.txt is possible if you add alwaysReloadPatches=true to [Debug] section of cemuhook.ini).
  • - Fix crash that sometimes happened after shader cache load in dbghelp.dll
  • - Fix audio stuttering during video decoding on Cemu 1.13.1+ by not blocking the PPC CPU thread
  • - Remove redundant Precompiled Shaders menu, respect Cemu translations
  • - Compatibility with 1.12.1 and up (no longer works with earlier versions)
  • - Render cemuhook UI text in the status bar when game list is visible, add some additional log output (checksums for all loaded modules, status of custom timers, precompiled shaders, and fence skip)
  • - Add compatibility with Cemu 1.11.4
  • - Make the previous change user selectable since it doesn't seem to offer benefits only downsides
  • - Compile shaders without GL_PROGRAM_BINARY_RETRIEVABLE_HINT when precompiled shader cache is off
  • - New option in Debug menu - Precompiled shader cache On/Off, in case you want to use GPU vendor's GLCache only
  • - Don't corrupt frames when seeking to another point in video stream
  • - Fix ALL (most?) OF THE H264 DECODING BUGS, add missing dbghelp exports so software relying on them doesn't break
  • - Fix Pokken Tournament (updated version) videos not displaying/softlock, fix Mario Tennis videos being stuttery
  • - Fix MH3U videos softlocking the game, make Mario Tennis videos stuttery by mistake
  • - Fix RPL module list addr lookups not working on Cemu >= 1.9.1, mark cemuhook added menu options with an icon, allow overriding of the stock resize shaders with custom ones (see Resizers sample package for more info)
  • - Fix Custom timers on AMD CPU going backwards/overflowing
  • - Improved stability of Custom timers
  • - Adds 'Custom timer' (which lets you enable replacement, more accurate and faster timer functions and scale the time) as well as 'MM Timer Accuracy' menu if you still use the MM timer (both can be found under the Debug main menu)
  • - Report minimal possible value in H264DECMemoryRequirement so that games can play much larger videos if we want them to
  • - Expands the code patching feature with code caves, allowing for much more complicated patches to be made. Included is a BotW pack that should workaround crashes without any weirdness (like increased blood moons or swapped textures)
  • - Adds code/data patching support at load-time ! Comes with sample zip containing a graphic pack that modifies BotW aspect ratio, but cheats can be done this way too
  • - Add compatibility with Cemu 1.8.2 (and hopefully any newer versions in the future)
  • - Adds workaround that fixes rendering problems in Mario Tennis Ultra Smash, game runs pretty much perfectly now
  • - Shared Fonts are no longer in the zip file, instead you can download them via the GUI if needed (if you've previously only had the bundled CafeStd.ttf you should delete it as the new one is much better), added -nohook command line option
  • - Implements H264DECCheckDecunitLength (fixes softlock before menu on Mario Tennis Ultra Smash, might improve some other games that use raw 264 streams instead of mp4)
  • - Resizable cemu window! (thanks frognik for demonstrating that this is possible), and the 'Keep aspect ratio' option now respects the width/height set in graphics packs (or game profiles, new variable names customARWidth and customARHeight under [Graphics])
  • - Fixed mistake that caused DS4 Gyro deadzones to be unnecessarily high (40deg/sec)
  • - Added alternative GamePad input provider (controller chosen by dropdown menu) with full motion sensor data support ! See the guide on how to set it up
  • - Shared system fonts can now be loaded from ttf files (zip comes with OpenSans-SemiBold, you can supply your own, 4 ttf files in total)
  • - Added much more CPU affinity options that now persist (saved to configuration file)
  • - Added options to force texture uploads for video frames (see included profiles for more info), assigned global hotkeys to hook's menu items
  • - Just a hotfix version to make it compatible with Cemu 1.8.1
  • - Only push out one frame at a time in normal callback, affinity is on by default on non-module CPUs, remove robust context
  • - Slightly more accurate video timestamps, doesn't seem to make any more games run
  • - Fix titlebar crash, make affinity and robust context menu options instead of mandatory
  • - Try fixing Win7 cert-related crash on load, dont use OpenGL robust context anymore since it doesnt do anything
  • - Update for 1.7.4, the GX2SetGPUFence hack menu item now just controls the disableGPUfence option, which has better timing
  • - Fix stutter when some games open videos, another try at fixing Win7 crash on startup
  • - Attempt to correct video timing (HW, Pokken, Sochi 2014 can now get to menus), also fix a bug that crashed some Win7 systems
  • - Add width offset back in because graphics packs cannot otherwise distinguish videos in some games
  • - Remove width offset and actually change 1280 check in Cemu internals (fixes DK:TF, HW, and also softdec games)
  • - Fix MK8, DK:TF, go back to -16 width offset, remove VM check
  • - Fix Cemu stuck on loading dll on Windows 7 systems
  • - Implement GX2SetGPUFence skip hack, set CPU affinity to only physical cores at start, and change h264 output width hack to +16 instead of -16 pixels
  • - Initial release

Donate to rajkosto here!