A collection of useful tools for monitoring and debugging PlayStation & native XInput controllers. Includes DS4Windows, DualShock/Sense debugger & tester, polling rate optimizer, SDL (Simple DirectMedia Layer), XInput sampler, self-hosted overlay for OBS Studio, and more!
📌 See: Showcase
-
Set Git LFS environment:
[!NOTE] Change the value to "0" if you want the Linux/macOS/Android SDL binaries
PowerShell (Windows):
$env:GIT_LFS_SKIP_SMUDGE="1"
Bash (Linux/macOS):
export GIT_LFS_SKIP_SMUDGE="1"
-
Clone the repository:
git clone https://git.rimmyscorner.com/Rim/awesome-peripherals.git && cd awesome-peripherals
-
Initialize the submodules
You can either initialize all of them:
git submodule update --init --recursive --depth 1
Or initialize specific the specific submodules you want:
git submodule update --init --depth 1 <submodule1> <submodule2>
- DS4Windows: DS4Windows is a gamepad input mapper and virtual XInput emulator designed to connect, use and customize your PS4/PS5 Controller on Windows 10/11 PC.
- DualShock Tools: Debug, Calibrate & Test DualShock/DualSense gamepads.
- Gamepad Tester: Simple HTML gamepad input tester.
- Gamepad Viewer: Displays real-time gamepad inputs. (doubles as an input tester and debugger). [OBS Browser Overlay Compatible]
- hidusbf: Driver/Program to overclock USB mice and HID devices.
- RawAccel: Raw Accel is a Windows x86-64 driver which allows for the acceleration of mouse input in the raw input stream
- SDL (Simple DirectMedia Layer): In this project, SDL is primarily used for detecting and managing gamepad input, ensuring consistent and reliable controller support across different operating systems.
- Wootility Web: Manually ripped and self-hostable version of the Wootility Web v5 browser-based configurator for Wooting devices.
- XInputTest: Displays analytics for recorded XInput samples.
Note
dualshock-tools, gamepad-tester, gamepad-viewer, xinput-test ONLY
Node:
- Run the command
node app.jsin the directory - Visit http://127.0.0.1:8080 in your browser
Important
For the gamepad-viewer to work in the background while OBS is not in focus, you must launch OBS with this CLI argument!
CLI Argument:
--disable-features=EnableWindowsGamingInputDataFetcher
-
Ensure your controller is plugged in and visible
-
Navigate to the directory using
cd gamepad-viewer -
Start the app with either:
- Node:
node app.js(preferred) - Python:
python -m http.server --bind 0.0.0.0 8080
- Node:
-
Go to http://127.0.0.1:8080 in your browser, focus the window & press a button on your controller
-
Customize your controller scheme and copy the finalized URL
-
Create a new browser source in OBS Studio and paste the link you just copied (i.e. http://127.0.0.1:8080/?color=white&triggers=meter&type=dualsense)
-
Ensure these settings:
- Shutdown source when not visible
- Refresh browser when scene becomes available
Page permissions: Full access to OBS (Start/Stop streaming without warning, etc.)
-
Add the source, keep OBS Studio focused and press a button on your controller
-
Your gamepad with the template should appear and display in real time
Tip
You can also add the local IPv4 address of the machine running the app to another OBS Studio browser source somewhere else on the network!
Example: http://192.168.0.141:8080/?color=white&triggers=meter&type=dualsense
- Implement a more lightweight version of http-server
DS4Windows:
DualShock Tools:
Gamepad Tester:
Gamepad Viewer:
hidusbf:
RawAccel:
Wootility Web v5:
XInput Tester:












