If you have an older or not supported game controller (gamepad, wheel, joystick, etc.), but XBox 360 controllers are supported you can use this software and enjoy gaming with your controller.
XOutput is a software that can convert DirectInput into XInput. DirectInput data is read and sent to a virtual XInput (Xbox 360 Controller) device. XInput is the new standard game controller input on windows, and DirectInput can no longer be used with Universal Windows Platform software, but with this tool you can use DirectInput devices as well.
If you have any questions or feature requests feel free to create Github Issue.
Any contribution is welcome, open your Pull request.
To join the discussion or just say hi in the discord channel.
This version is currently under development.
Version | State | Support |
---|---|---|
4.x | Under development (no releases yet) | Active development with new features |
3.x | Stable | Bugfixes only |
2.x | Old version (superseeded by 3.x) | Expired at Mar 7 2018 |
1.x | Old version (superseeded by 3.x) | Expired at Mar 7 2018 |
Install one of the two libraries. ViGEm (preferred) or SCPToolkit (unsupported, legacy)
a) Install VIGEm framework (recommended)
b) Install ScpToolkit and all of its dependencies described here
Install:
- DirectX
- Visual C++ Redistributable for Visual Studio 2015 32-bit
- Visual C++ Redistributable for Visual Studio 2015 64-bit
- all the drivers for your controllers
- .Net Framework 4.5.2 if you do not have Windows 10
- if you have issues, install the official XBox 360 controller drivers.
- Download the latest stable release
- Download the latest development release, development release is not stable, should be used only to test new features and bugfixes before release
- Unzip to any directory
Download the application:
- Download the latest stable release
- Download the latest development release, development release is not stable, should be used only to test new features and bugfixes before release
- Unzip to the same directory as before
- Delete the old
settings.json
file before starting the application
If all the requirements are installed, the software should start up without any error messages.
Input devices can be checked and configured individually. Input values can be seen in the input fields. Force feedback can be disabled for each device.
The available input devices are shown in the Game Controllers section. Choose a device and click 'Edit'.
On the configuration screen there are 3 blocks. The left block shows the input, the right one shows the emulated output and in the middle is where the mapping can be set. For each output axis or button, you can choose from the input axes and buttons.
- Press 'Configure All' to set the mapping all at once, or press 'Configure' on each field to set them individually.
- Press the button or move the axis from one end to the other.
- Check your mapping comparing the input and output blocks.
- If needed, you can apply deadzone values to axes. (more info below)
- Close the configuration window
- Save the settings using the 'File->Save' menu or the button located at the bottom right of the main window.
- Select 'Start' on the device.
You can check if it is working in the Windows settings, or just select 'File->Game controllers', that opens the Windows calibration for you. An Xbox gamepad should have appeared in the list.
- Install HidGuardian.
Affected devices and whitelist can be managed by the application, but it needs administrator priviledges.
- Enable HidGuardian initialization in the settings.
- Restart the application as administrator.
- Add device to affected devices in the input settings.
- Reconnect device or reboot PC
Add affected device manually (use this method only, if you want to hide non recognized HID devices):
- Run
regedit
and go toHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
- Create
multi-string
value with the nameAffectedDevices
- Open Device Manager, find your input device and open properties
- Go to details, select
Hardware ID
and copy string that looks likeHID\VID_046D&PID_C219&REV_0200
andHID\VID_046D&PID_C219
- Paste the values into
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
- Reconnect devices or reboot PC
Manage process whitelist manually (use this method only, if you want to use HidGuardian for other applications):
- Start XOutput (or any other application)
- Open Task Manager, find your application, then go to details.
- Remember the value of the PID column.
- Run
regedit
and go toHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist
- Create subkey with the PID you found before.
The 4.x version is built with .NET 5, you will need to download it.
Action | Required dependency |
---|---|
Running the server application | ASP.NET Core Runtime |
Running the reader application | .NET Desktop Runtime |
Building the application | SDK |
However these runtimes and SDKs are cross platform the application is only compatible with Windows.
The server application is responsible for:
- collecting input from various sources
- mapping these sources
- emulating devices
- configuring all the above
It is recommended to create a Windows task from the server, so it can start at computer startup (with Administrator priviledges without UAC). Help can be found in the bin directory.
Server application might write the registry, therefore it needs administrator prividledges. Alternatively it can be started without admin access, but then when it tries to write the registry it will prompt UAC.
The reader application is a GUI Windows application which can read input values.
Interface | Devices | Requirements |
---|---|---|
Windows API | Mouse and keyboard | None |
Raw input | Mouse, keyboard and joysticks | USB device with drivers |
Direct input | Joysticks | DirectX compatible devices with drivers |
XInput | Joysticks | XInput compatible devices |
The client project enabled developers to create a new type of input. It can be used to integrate with the server application.