This small 32-bit ASI plugin bypasses the game's obsolete DirectInput
controller detection and registers a native internal PadXenon backed by
XInput.
The controller is created through the game's own PadXenon constructor,
registered with PadProxyPC::AddPad, and selected immediately.
Note
No x360ce files are required.
XInput controller
│
▼
Native PadXenon ──► PadProxyPC::AddPad ──► Active controller
The implementation follows the controller-patch approach used by EaglePatch and Claudia.
Important
Remove any previous controller fix files (like xinput_3.dll and x360ce.ini or similar) before installing this fix.
- Download the latest
acr-xinput-fix.asianddinput8.dllfrom the releases page. - Copy both into the Assassin's Creed Revelations installation directory,
next to
ACRMP.exe. - Launch the game.
Your game directory should contain:
Assassin's Creed Revelations/
├── ACRMP.exe
├── acr-xinput-fix.asi
└── dinput8.dll
The built-in dinput8.dll is a custom minimal ASI loader with zero Direct3D
hooks, unlike the Ultimate ASI Loader which hooks Direct3D internally.
PunkBuster's "Multiple Direct3D loaded A" error was caused by those hooks and
does not occur with this loader.
The plugin creates acr-xinput-fix.log next to the game executable. A
successful controller registration produces a line similar to:
[info] PadXenon registered and selected in slot 5, XInput port 0
- CMake 3.20+
- Visual Studio 2022 with the Desktop development with C++ workload
build.batOutput files land in build\Release\.
Thanks to siohaza and Sergeanur for their controller patches for previous Assassin's Creed games.