ASI plugin framework that patches game binaries at runtime. All games are built from a single codebase with shared hook infrastructure and per-game specializations. Each game lives in its own directory under games/<series>/<game>/ with its own README, INI and version.
| Game | Plugin | Docs | Releases |
|---|---|---|---|
| Assassin's Creed Rogue | AC.Rogue.PatchFix.asi |
README | ac-rogue/v* |
| Assassin's Creed Syndicate | AC.Syndicate.PatchFix.asi |
README | ac-syndicate/v* |
Releases up to v3.3.0 bundled every game under one tag; later releases are tagged per game.
All games include a built-in diagnostics subsystem:
- Crash reports with stack traces written to the game directory
- Minidump generation for detailed post-mortem analysis
- Crash journal tracking hook installation state at time of failure
- Debugger attach — VMProtect's
ntdll!DbgUiRemoteBreakinkill-stub is restored at startup, so debuggers attach normally instead of terminating the game
If you experience a crash, check the game directory for .log, .journal and .dmp (if present) files and include them in bug reports.
An ASI loader is required. Install one of the following into the game directory:
- Download the latest release for your game (see Supported Games)
- Place the
.asiand.inifiles into<path-to-game>/plugins/ - Edit the INI file to configure the fixes (options are documented in the game's README)
- Launch the game
The plugin version is embedded in the DLL — check the log output or file properties to verify which version is installed.
After installing the ASI loader and patch files, add the following to the game's launch options:
WINEDLLOVERRIDES="version.dll=n,b" %command%Replace version.dll with the actual DLL name used by your ASI loader.
- CMake 3.28+
- Windows: Visual Studio 2026 with ClangCL toolset and C++23 support
- Linux (cross-compile): LLVM 22 (clang-cl, lld-link, llvm-lib, llvm-rc, llvm-mt), Ninja, msvc-wine installed to
~/.msvc
All dependencies are fetched automatically by CMake:
cmake --preset windows-x64-release
cmake --build --preset windows-x64-releasecmake --preset wine-x64
cmake --build --preset wine-x64-releaseOutput: one .asi per game in build/bin/Release/. To build a single game, pass its target, e.g. cmake --build --preset wine-x64-release --target ac-rogue.
-
Create
games/<series>/<game>/withsrc/,include/games/<series>/<game>/, an INI and a README. Optionaltests/*.cppare added to the shared test binary. -
Add a
CMakeLists.txtthere:project(Series.Game LANGUAGES CXX VERSION 1.0.0 ) patchfix_add_game(ARCH x64)
The target is named
<series>-<game>, the plugin<project name>.PatchFix.asi. -
add_subdirectory()it fromgames/<series>/CMakeLists.txt(and the series fromgames/CMakeLists.txt). -
Add
<series>/<game>to thegamechoices in.github/workflows/release.yml.
- @lnx00 — game-patches, source of the Syndicate camera smoothing branch
- @ThirteenAG — Ultimate ASI Loader, Hooking.Patterns
- @cursey — safetyhook
- @metayeti — mINI
- @gabime — spdlog
- @WerWolv — ImHex
- Hex-Rays — IDA Pro
- @NationalSecurityAgency — Ghidra
- x64dbg Contributors — x64dbg