Skip to content
Primary repository for the x360ce library, front-end and tools.
C# C++ TSQL XSLT ASP Smalltalk Other
Branch: master
Clone or download
Latest commit d06ac0f Feb 11, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
MinHook @ 1f8bd27 Upgrade to VS2015 and replaced MinHook with submodule, added all requ… Jul 16, 2016
Mobile Xamarin experiments Jul 22, 2019
x360ce.App.Beta Interface updates. Feb 11, 2020
x360ce.App.WPF Switch application to AnyCPU (one x360ce.exe for 32-bit and 64-bit OS). Jun 30, 2018
x360ce.App Replace 'MethodInvoker' class with 'Action' class for wider compatibi… Jan 14, 2020
x360ce.Data Updates to shared classes. SQL query optimisation. Dec 21, 2019
x360ce.Engine Interface updates. Feb 11, 2020
x360ce.RemoteController No commit message Jul 7, 2019
x360ce.Web Shared log helper classes updated. Jul 3, 2019
x360ce Web tracing helper classes updated. Added note about missing Visual L… Feb 6, 2019
.editorconfig EditorConfig should be set to UTF-8 without BOM. May 2, 2015
.gitattributes Upgrade to VS2015 and replaced MinHook with submodule, added all requ… Jul 16, 2016
.gitignore Upgrade to VS2015 and replaced MinHook with submodule, added all requ… Jul 16, 2016
.gitmodules Upgrade to VS2015 and replaced MinHook with submodule, added all requ… Jul 16, 2016
ClearBuilds.bat Clear build scripts added. Sep 12, 2017
ClearCache.bat Clear build scripts added. Sep 12, 2017
ClearCache_VS.bat Axis mapping fixes. Device clean-up function added for dev purposes. Apr 4, 2018
MinHook_clone_as_SVN.bat Add MinHook SVN checkout script so it can be easily retrieved when SV… Jan 23, 2018
README.MD Update README.MD Apr 11, 2019
x360ce.sln Adding mobile remote controller projects (work in progress) Jul 1, 2019
x360ce.sln.vsspell Prepare to implement alternative force feedback methods for other con… Apr 10, 2018
x360ce_dll.sln Upgrade to VS2015 and replaced MinHook with submodule, added all requ… Jul 16, 2016


"Xbox 360 Controller Emulator" allows your controller (gamepad, joystick, wheel, etc.) to function as an Xbox 360 controller. For example, it lets you play games such as "Grand Theft Auto" (GTA) or "Mafia II" using a Logitech Wheel.


Digitally Signed Application v3.3.6.0 (2018-07-06) and Libraries (2015-08-27)

32-bit Download - - for 32-bit games

64-bit Download - - for 64-bit games

DInput.dll Plugin (required for some games):

32-bit Download - dinput_x86.dll - for 32-bit games

64-bit Download - dinput_x64.dll - for 64-bit games

Reporting Issues

!!! Denuvo protected games are not supported !!!

List of denuvo protected games is here

Report only crashes or other bugs, note that the Issue tracker is not a help desk!


If you have questions about installation or configuration, please go to our forum @NGemu

Guides [OUTDATED!]

x360ce Libraries Tutorial

x360ce Application Tutorial

Various x360ce Guides


Games that work with x360ce can be found on the Compatibility List. If you would like to add to that list or provide updated information place see Reporting Compatibility.

System Requirements

  1. Windows Vista or newer.
  2. .NET 3.5 (also installs 2.0 and 3.0) (included in Windows 7)
  3. .NET 4.0 (link to 4.6, also installs 4.0) (included in Windows 8 and 10)
  4. DirectX End-User Runtime (June 2010) (required regardless of OS)
  5. Visual C++ Redistributable for Visual Studio 2013 (for x64 systems install both x86 and x64 redistributables)
  6. If you upgraded to Windows 10, you must Uninstall and Reinstall the Visual C++ Redistributable


  • Most game's executables are 32-bit and require x86 x360ce and also the x86 redistributable.
  • Vista users can obtain .NET 3.5 from the above link, and Windows 8 users can enable it in Programs and Features - Turn Windows Features on and off.
  • .NET MUST be installed prior to the DirectX webupdate as it checks that .NET 2.0/3.0/3.5 is installed and skips the Managed DirectX framework if it is not.
  • The full DirectX Redistributable will always install the file, however it's best to have .NET 3.5 installed anyhow as quite a few XInput titles utilize .NET for internal dependencies.


xinput1_3.dll (Wrapper Library) - Translates XInput calls to DirectInput calls - supports old, non-XInput compatible GamePads.
x360ce.exe - (Application) - Allows for editing and testing of Library settings.
x360ce.ini - (Configuration) - Contain Library settings (button, axis, slider maps).
x360ce.gdb - (Game Database) Includes required hookmasks for various games).
Dinput8.dll - (DirectInput 8 spoof/wrapping file to improve x360ce compatibility in rare cases).


Run this program from the same directory as the game executable. XInput library files exist with several different names and some games require a change in its name. Known names:

  • xinput1_4.dll (Windows 8 / metro apps only)
  • xinput1_3.dll
  • xinput1_2.dll
  • xinput1_1.dll
  • xinput9_1_0.dll

Game Database (GDB) and Configuration (INI) files can be copied to %ALLUSERSPROFILE%\X360CE on NT6 (Vista/7/8) or %ALLUSERSPROFILE%\Application Data\X360CE on NT5.1 (XP), or be left in the same directory as the game's executable (.EXE)


  • In most cases games based on the Source engine have the DLL placed inside the /Bin/ sub folder, as it is loaded by inputsystem.dll instead of the game executable.
  • The DLL is not currently fully supported by the App, recent versions incorporate HookMasks and fully remove HookModes, and requires placing Version=1 under [options] in the x360ce.ini to quieten a warning about incorrect version.


Delete x360ce.exe, x360ce.ini and all XInput DLLs from the game's executable directory.


Some games have control issues when Dead Zone is reduced to 0%.

You may need to increase the Anti-Dead Zone value if there is gap between the moment when you start to push the axis-related button and the reaction in game.

Wheel doesn't work in the game, but it works inside x360ce Application.

Some controllers will only operate in game if they are set as "GamePad". Try to:

  1. Run x360ce.exe
  2. Select the [Controller #] tab page corresponding to your controller.
  3. Open [Advanced] tab page.
  4. Set "Device Type" drop down list value to: GamePad.
  5. Click [Save] button.
  6. Close x360ce.exe.
  7. Run the game.

Only one controller, mapped to PAD1, may work correctly in some games. Try to:

  1. Run x360ce.exe
  2. Select the [Controller #] tab page corresponding to your controller.
  3. Open the [Direct Input Device] tab page (visible when the controller is connected).
  4. Set "Map To" drop down list value to: 1.
  5. Set "Map To" drop down list values (repeat steps 2. to 4.) for other controllers, if you have them, to: 2, 3 or 4.
  6. Click [Save] button.
  7. Close x360ce.exe.
  8. Run the game.

To use more than one controller in game, you may need to combine them. Try to:

  1. Run x360ce.exe
  2. Select the [Controller #] tab page corresponding to your additional controller.
  3. Open the [Advanced] tab page.
  4. Set "Combine Into" drop down list value to: One.
  5. Select [Options] tab page.
  6. Check "Enable Combining" check-box. (Note: Uncheck "Enable Combining" check-box when you want to configure the controller.)
  7. Click [Save] button.
  8. Close x360ce.exe.
  9. Run the game.

Do I need to run x360ce Application during the game?

The x360ce.exe application can be closed before launching the game; the game doesn't need it and it uses your computer's resources. The x360ce.exe application is just a GUI for editing x360ce.ini and testing your controller.

Warning - Configuration file version does not match x360ce version.

This occurs because the current version of the application is not completely compatible with the DLL just yet. You can resolve this by adding Version=1 under the [Options] section in x360ce.ini

Controller tab won't turn green / Red light on Controller 1, 2 etc.

This can occur for a number of reasons:

  1. The configuration utility DOES NOT work with the 64-bit library, it will only work with the 32-bit version, This is the case regardless of whether your Windows is 32-bit or 64-bit.
  2. The DInput state of the controller might be incorrect due to an application crashing previously and not unloading the controller or some other reason. Opening up Joy.cpl (Set Up USB Game Controllers) and clicking the Advanced button, and then Okaying out of the window that appears can fix it.
  3. The controller profile loaded may match the name of the controller but not actually be for the controller you own - in this case you might see button numbers or axes mapped that do not appear in the Joy.cpl test page.
  4. The controller profile might have PassThrough set. A growing number of profiles have been uploaded that do this, I have no idea why as it disables x360ce and just bloats the list of available profiles.
  5. There just might not be a profile for your control at all - The light should turn green at least once the 2 sticks, triggers and D-pad are assigned. Sometimes the application needs to be restarted after assigning these for the light to turn green.


You can’t perform that action at this time.