Skip to content
x360cePublic

About

Primary repository for the x360ce library, front-end and tools.

Resources

Security policy

Stars

2.9k stars

Watchers

101 watching

Forks

Latest commit

 

History

2,599 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"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.

IMPORTANT: Please download and run digitally signed files only! If someone asks to disable antivirus or exclude X360CE app from anti-virus - DON'T! Report any suspicion in Issues and we will try to resolve any false positive with anti-virus developers.

Every signed build is published on the Releases page.

For AI assistants and agents. Both programs describe themselves; read these rather than guessing: docs/ui-tree-v4.md and docs/ui-tree-v3.md are every control with its purpose, written by each program (regenerate with x360ce.exe /ExportUi=docs); docs/Help.v4.md and docs/Help.v3.md are the help each program shows; AGENTS.md holds the rules for working on the code. To operate a running copy, register x360ce.exe /Mcp as an MCP server or call x360ce.exe /Ai=<tool>; both need AI assistant access switched on in the program's Options, where it is off by default.

Download v4.x

Digitally Signed Application v4.24.60.0 and Virtual Gamepad Emulation Bus 1.21.442.0 on Windows 10 and later, or 1.16.112.0 on older Windows

Download x360ce.zip from the latest v4 release - for All games

Note: version 4.x use Virtual Gamepad Emulation. Instructions can be found here: https://github.com/x360ce/x360ce/wiki/Beta-Testing

Mapping formulas (v4.x)

A mapping row can hold a formula instead of a single control. Press the small fx button beside the row and type one, starting with =.

=a5*2        double the trigger, so it reaches full at a half press
=a1*0.5      halve the stick, for aiming through a scope
=a1*abs(a1)  fine control near the centre, full speed at the edge
=max(a1,0)   use only one half of a pedal axis

Sources are written the way mappings are stored: a1 is axis 1, b2 is button 2, s1 is slider 1. An axis reads from -1 to 1 when it drives a stick and from 0 to 1 when it drives a trigger, matching what the row already did. now reads the milliseconds since the program started; divide it by 1000 for seconds or by 60000 for minutes.

The formula takes effect as it is typed, so a number can be adjusted and the difference felt at once. The fx button says whether it works: green while the formula is understood and driving the row, red while it is written down and not. Point at a red one to read what is wrong with it.

A formula replaces the dead zone, anti dead zone and sensitivity for its row rather than being applied on top of them.

A formula is limited to 128 characters, which is the width a mapping is stored in.

The Help page lists every operator, function and source.

Where settings are kept (v4.x)

Settings live in C:\ProgramData\X360CE\Settings. Anyone may create a file there, but only the account that created it may change it afterwards, so on a shared computer a second user can find the settings read-only.

Open Options then Settings to see the folder in use and to choose another one. Your own user folder, %LOCALAPPDATA%\Jocys.com\X360 Controller Emulator, belongs to you alone and cannot be locked by another account. The settings you already have can be moved with it: every file is copied and checked against the original, and nothing is removed unless all of them match.

If saving ever fails, the program says so and offers to try again or to move to your own folder.

Force feedback pass through (v4.x)

An Xbox controller offers its motors through XInput and nowhere else, so a game's rumble cannot be sent back to it the way it is sent to other controllers. Force Feedback Pass Through, on the Force Feedback tab, hands the rumble to a real controller instead.

Leave the destination on Auto (Real) to use the real controller behind the mapping, or choose XInput 1 to 4 to name one yourself.

The Test sliders drive the same path a game does, pass through included, so the destination can be checked without starting a game.

Putting controllers in order (v4.x)

The XInput Devices page can move a controller to a different place, for games that read only the first one. Switching a real controller off and on again needs Administrator, so the program starts one elevated copy for that step and closes it again. Anything it switches off is written down first, so a run that is interrupted is undone at the next start.

Download v3.x

Digitally Signed Application v3.4.39.0 and Libraries 3.4.1

Download x360ce_x86.zip from the latest v3 release - for 32-bit games

Download x360ce_x64.zip from the latest v3 release - for 64-bit games

DInput.dll Plugin (required for some games):

The 32-bit and 64-bit plugin is built from Native/dinput8 and embedded in x360ce.exe. It is no longer kept as a committed binary, so there is no separate file to download for it.

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!

DO NOT ASK FOR HELP IN INSTALLATION OR CONFIGURATION!!!

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

Compatibility

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 10 or newer.
  2. .NET Framework 4.x (included in Windows 10 and 11)
  3. DirectX End-User Runtime (June 2010) (required regardless of OS)
  4. Microsoft Visual C++ v14 Redistributable (Visual Studio 2017–2026): x86 and x64 (for x64 systems install both x86 and x64 redistributables)

Notes:

  • Most game's executables are 32-bit and require x86 x360ce and also the x86 redistributable.

Files

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).

Installation

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)

Note:

  • 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.

Uninstallation

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

Important for version 4.x

Close the program from its own window. It removes the virtual controller while it shuts down. If the program is ended from Task Manager or crashes, the virtual controller is left behind, and Windows can be left unsure which controllers you have.

HID Guardian can no longer be installed. If an older version installed it, remove it from within the program rather than deleting its files by hand.

How to remove HID Guardian if access to your Mouse and Keyboard is lost (X360CE v4.x)

Instructions: https://github.com/x360ce/x360ce/wiki/HID-Guardian

Troubleshooting

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.

In v3.x, 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.

In v4.x, "Map To" is gone and the [XInput Devices] page puts controllers in order instead. See "Putting controllers in order" above. Configuration files written by v3.x keep their "Map To" value untouched.

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.

In v4.x the light is drawn in two halves: your own device on the left, the emulated controller on the right, so it says which half is missing. Grey means nothing is set up, green means the game is receiving what you press, and it reddens as more is wrong at once. Orange means the controller works but sits in a different XInput place than its tab number, which the [XInput Devices] page can put right. The Help page lists every combination.

Screenshots

Mapping a controller. Each Xbox control on the right names the button or axis on your own controller that drives it, and the fx button beside it turns that mapping into a formula.

Controller 1 General tab, mapping a Logitech Cordless RumblePad 2 to an Xbox controller

Tuning a thumb stick. The curve shows what the game receives for how far you push, so a dead zone, an anti-dead zone and a sensitivity change can be seen before the game is started.

Right Thumb tab, showing the response curve of each axis with its dead zone settings

About

Primary repository for the x360ce library, front-end and tools.

Resources

Security policy

Stars

2.9k stars

Watchers

101 watching

Forks

Releases

Packages

Used by

Contributors

Languages