FireShock
Windows USB Driver for Sony DualShock Controllers
Summary
FireShock
consists of a custom USB user-mode driver and a user-mode dispatch service handling wired communication with Sony DualShock 3 Controllers. It allows 3rd party developers to handle controller inputs and outputs via a simple plug-in system.
How it works
Once installed the fireshock.dll
user-mode driver will be loaded on any compatible DualShock 3 Controller connected to the system via USB. It replaces the default HIDUSB.SYS
driver with WinUSB.sys
.
If a DualShock 3 gets connected to the USB hub, the filter will send a "magic" start packet to the control endpoint so the controller will continuously start sending HID input reports via the interrupt in endpoint on interface 0. If an interrupt in transfer arrives, the contents of the transfer buffer (the HID report) get streamed to any user-mode application calling ReadFile(...)
on the device. If a packet war written to the device via WriteFile(...)
, the request gets converted into an output report and redirected to the control endpoint.
How to use
Important: this is not an HID/XInput compatible driver, you need the Shibari companion application and follow its setup instructions to get the controller recognized by games!
Supported systems
The driver is built for and tested with Windows 8.1 up to Windows 10 (x86 and amd64).
Download
Latest stable builds (signed)
Sources
- Eleccelerator Wiki
- felis/USB_Host_Shield_2.0 - PS3 Information
- PS3 and Wiimote Game Controllers on the Arduino Host Shield: Part 2
- ribbotson/USB-Host
- Windows-driver-samples/hid/firefly/driver
- Windows-driver-samples/general/toaster/toastDrv/kmdf/filter/sideband
- wdfusb.h header
- USB Descriptor and Request Parser
- PS4 Developer wiki - DS4-USB
- HID: sony: Update device ids