MIT License

项目介绍

csutorasa/XOutput 是一个托管在 GitHub 上的开源项目,主要使用 C# 编写,采用 MIT License 许可证,目前获得 1.3k 个 Star、112 次 Fork。

仓库全名
csutorasa/XOutput
开源许可证
MIT License
Star 数
1.3k
Fork 数
112
未关闭 Issue
185

README 摘要

XOutput 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

XOutput 用什么语言开发?

主要使用 C# 编写,采用 MIT License 许可证,目前有 1.3k 个 Star。

XOutput 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 XOutput 的源码?

可以直接克隆仓库:git clone https://github.com/csutorasa/XOutput.git,默认分支为 master;安装与运行步骤见仓库 README。

XOutput 最近还在维护吗?

仓库最近一次更新为 2024年12月4日,当前有 185 个未关闭 Issue;Star 数为 1.3k,可作为社区活跃度的参考。

简要分析

热度分
1571
价值分
831
活跃状态
归档

语言占比

Batchfile
C#
HTML
JavaScript
PowerShell
SCSS
TypeScript

Release

README

Build XOutput Github All Releases Download XOutput Quality Gate Status Discord

XOutput

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.

General information

To join the discussion or just say hi, there is a discord channel.

This application is deprecated as the emulation softwares it used are no longer supported. This version is unreleased. Please use 3.x version for the latest version

Version State Support
4.x No releases Unreleased
3.x Unsupported Expired at Dec 3 2024
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

How to install

Install emulation software

Install one of the two libraries. ViGEm (preferred) or SCPToolkit (unsupported, legacy)

Software State Download
ViGEmBus Deprecated since Nov 2, 2023 ViGEmBus
ScpToolkit Deprecated since Mar 20, 2023 ScpToolkit

Install dependencies

Install:

Download XOutput

How to upgrade

Download the application:

  • Download the latest stable release
  • Unzip to the same directory as before
  • If there are errors, remove the existing conf directory

Hiding original input (exclusive mode)

Software State Download
HidHide Active development HidHide
HidGuardian Deprecated since Jul 27, 2023 HidGuardian

HidGuardian setup

Affected devices and whitelist can be managed by the application, but it needs administrator priviledges.

  1. Enable HidGuardian initialization in the settings.
  2. Restart the application as administrator.
  3. Add device to affected devices in the input settings.
  4. Reconnect device or reboot PC

Add affected device manually (use this method only, if you want to hide non recognized HID devices):

  1. Run regedit and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
  2. Create multi-string value with the name AffectedDevices
  3. Open Device Manager, find your input device and open properties
  4. Go to details, select Hardware ID and copy string that looks like HID\VID_046D&PID_C219&REV_0200 and HID\VID_046D&PID_C219
  5. Paste the values into HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
  6. Reconnect devices or reboot PC

Manage process whitelist manually (use this method only, if you want to use HidGuardian for other applications):

  1. Start XOutput (or any other application)
  2. Open Task Manager, find your application, then go to details.
  3. Remember the value of the PID column.
  4. Run regedit and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist
  5. Create subkey with the PID you found before.

Technical problem

Problem visualisation

graph TD subgraph XInput X1(Xbox controller 1) -->|Read hardware input| XD[Xbox controller driver - xusb22.sys] X2(Xbox controller 2) -->|Read hardware input| XD XD -->|Read input| XR[XInput handler - xinput1_3.dll] end subgraph DirectInput D1(fa:fa-gamepad Older controller) -->|Read hardware input| D1D[Controller driver] D2(Joystick) -->|Read hardware input| D2D[Joystick driver] D3(Gaming wheel) -->|Read hardware input| D3D[Gaming wheel driver] D1D -->|Read input| DR[Direct input handler - dinput8.dll] D2D -->|Read input| DR D3D -->|Read input| DR end subgraph Games XR -->|Read XInput| NG[Newer games] XR -->|Read XInput| CG[Compatible games] DR -->|Read DInput| CG[Compatible games] DR -->|Read DInput| OG[Older games] end

Offered solution

graph TD subgraph XInput X1(Xbox controller 1) -->|Read hardware input| XD[Xbox controller driver - xusb22.sys] X2(Xbox controller 2) -->|Read hardware input| XD XD -->|Read input| XR[XInput handler - xinput1_3.dll] end subgraph DirectInput D1(fa:fa-gamepad Older controller) -->|Read hardware input| D1D[Controller driver] D2(Joystick) -->|Read hardware input| D2D[Joystick driver] D3(Gaming wheel) -->|Read hardware input| D3D[Gaming wheel driver] D1D -->|Read input| DR[Direct input handler - dinput8.dll] D2D -->|Read input| DR D3D -->|Read input| DR end DR -->|Read DInput| XOA[XOutput.App] subgraph Solution DR -->|Read HTML5 gamepad API| B[Browser] B -->|Browser| XOS[XOutput.Server] XOA -->|Sends input| XOS[XOutput.Server] XOS -->|Control emulation| V[ViGEm] end V -->|Emulate controller| XD subgraph Games XR -->|Read XInput| NG[Newer games] XR -->|Read XInput| CG[Compatible games] DR -->|Read DInput| CG[Compatible games] DR -->|Read DInput| OG[Older games] end

How it works

Component Implementation Description
Device emualation ViGEm External software that emulates XBox and DS4 controllers
Device emualation SCP toolkit Legacy external software that emulates XBox controllers
Backend XOutput.Server Server that collects data from clients and sends to the emulation software
Client XOutput.App Desktop application that collects data from the devices and sends to the backend
Client Web controller Web application that allows to emulate a device
Client Web client Web application that uses the Gamepad API

评论

暂无评论