XInput.Emu is a service for Windows that allows to automatically emulate any controller as a Xbox 360 Controller, without needing to configure anything. While XInput.Emu runs in background, it detects which controllers are connected and connect a Xbox 360 Emulated Controller for each one of them.
- Controller Emulation: XInput.Emu uses ViGEm Client and ViGEm Bus to emulate a Xbox 360 Controller. Since the Emulated Controller is a XInput Compatible Controller it works in any game with controller support.
- Automatic Controller Mapping: XInput.Emu doesn't use DirectInput. Instead, it uses Simple DirectMedia Layer (SDL) for controller detection and mappings. This makes XInput.Emu Compatible with any controller with a known mapping by SDL.
- Vibration and Force Feedback: Since ViGEm Client can get the vibration data, SDL can send that data to the Real Controller.
- Automatic Device Hiding: To avoid Double Input, XInput.Emu uses HidHide to automatically hide any connected controller and only show the emulated controller.
- Configuration Tool: XInput.Emu has a simple Configuration Tool to change some options.
- Sony DualShock1 and DualShock2
- Sony DualShock3/SIXAXIS (Only if used with DsHidMini in SXS Mode)
- Sony DualShock4
- Sony DualSense
- Nintendo Retro Controllers
- Nintendo Gamecube Controller
- Nintendo Switch JoyCons
- Nintendo Switch Pro Controller
NOTE: If there's a non-compatible controller XInput.Emu will ignore it. In that case, you can use XOutput or x360ce.
Before installing XInput.Emu, you must install some dependencies in order to get XInput.Emu working correctly:To install XInput.Emu, you must download the .msi installer in the Releases Page depending of your system (x64 if 64-bit, x86 if 32-bit). Then you have to open the installer and install XInput.Emu as any other software.
To build this project you'll need Visual Studio 2019 or later and the C++ Desktop Development Kit.