/FireShock

HIDUSB filter driver for Sony DualShock controllers

Primary LanguageCMIT LicenseMIT

Icon

FireShock

HIDUSB filter driver for Sony DualShock controllers

Follow development progress on Twitter and YouTube! Like my stuff? Support me on Patreon!

Summary

FireShock allows you to use a wired DualShock controller with any Raw Input, DirectInput or (with additional drivers) XInput compatible application/game. It's a Windows Filter Driver which sits between HIDUSB.SYS and the USB PDO exposed by the USB hub taking care of the necessary modifications to ensure proper HID compatibility. With this driver the DualShock becomes transparently useable by Windows like any other USB gamepad.

How it works

Once installed the fireshock.sys filter driver will be loaded into the driver stack of any compatible DualShock 3 or 4 controller connected to the system via USB. It sits under HIDUSB.SYS and monitors/intercepts the URBs sent from HIDUSB.SYS to the USB PDO.

If a DualShock 3 gets connected to the USB hub, the filter will inject a modified configuration and HID report descriptor which describes a button and axis layout similar to the DualShock 4. After the USB device was successfully initialized it sends a "magic" start packet to the control endpoint so the controller will continously start sending HID input reports via the interrupt in endpoint on interface 0. If an interrupt in transfer was requested, the request gets sent down to the USB PDO, the result intercepted and translated by the filter and completed. If an interrupt out (e.g. rumble state change) transfer was requested, the request gets converted into an output report and redirected to the control endpoint.

If a DualShock 4 gets connected, it enables XInput-Support if ViGEm is installed. Same goes for a DualShock 3.

How to install

Just download the latest setup and run it. It doesn't matter if you've got your controllers connected during the setup or connect them afterwards.

Supported systems

The driver is built for and tested with Windows 7 up to Windows 10 (x86 and amd64).

Sources