diff --git a/.gitea/assets/ds4_1.png b/.gitea/assets/ds4_1.png new file mode 100644 index 0000000..f6c0810 Binary files /dev/null and b/.gitea/assets/ds4_1.png differ diff --git a/.gitea/assets/ds4_2.png b/.gitea/assets/ds4_2.png new file mode 100644 index 0000000..1d81437 Binary files /dev/null and b/.gitea/assets/ds4_2.png differ diff --git a/.gitea/assets/ds4_3.png b/.gitea/assets/ds4_3.png new file mode 100644 index 0000000..e25b729 Binary files /dev/null and b/.gitea/assets/ds4_3.png differ diff --git a/.gitea/assets/dstools_1.png b/.gitea/assets/dstools_1.png new file mode 100644 index 0000000..39972fc Binary files /dev/null and b/.gitea/assets/dstools_1.png differ diff --git a/.gitea/assets/dstools_2.png b/.gitea/assets/dstools_2.png new file mode 100644 index 0000000..85ea3fe Binary files /dev/null and b/.gitea/assets/dstools_2.png differ diff --git a/.gitea/assets/gpad-tester_1.png b/.gitea/assets/gpad-tester_1.png new file mode 100644 index 0000000..aa09e31 Binary files /dev/null and b/.gitea/assets/gpad-tester_1.png differ diff --git a/.gitea/assets/gpad-viewer_1.png b/.gitea/assets/gpad-viewer_1.png new file mode 100644 index 0000000..9aecd51 Binary files /dev/null and b/.gitea/assets/gpad-viewer_1.png differ diff --git a/.gitea/assets/gpad-viewer_2.png b/.gitea/assets/gpad-viewer_2.png new file mode 100644 index 0000000..9a02f82 Binary files /dev/null and b/.gitea/assets/gpad-viewer_2.png differ diff --git a/.gitea/assets/gpad-viewer_3.png b/.gitea/assets/gpad-viewer_3.png new file mode 100644 index 0000000..3228e70 Binary files /dev/null and b/.gitea/assets/gpad-viewer_3.png differ diff --git a/.gitea/assets/hidusbf.jpg b/.gitea/assets/hidusbf.jpg new file mode 100644 index 0000000..7e057b0 Binary files /dev/null and b/.gitea/assets/hidusbf.jpg differ diff --git a/.gitea/assets/xinput-test.png b/.gitea/assets/xinput-test.png new file mode 100644 index 0000000..3d26496 Binary files /dev/null and b/.gitea/assets/xinput-test.png differ diff --git a/README.md b/README.md index 544f0dd..546f7cd 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,131 @@ git submodule update --init --recursive ``` -- **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. +## Features +- **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. -- **xinput-test**: Displays analytics for recorded xInput samples. +- **XInput-test**: Displays analytics for recorded XInput samples. + +## Prerequisites (optional) +> [!NOTE] +For *dualshock-tools*, *gamepad-tester*, *gamepad-viewer* ***ONLY*** + +- [Chromium](https://github.com/ungoogled-software) (for HID interface support) + +- [Node.js](https://nodejs.org/) (v14.x or higher) ***(Preferred)*** + + **OR** + +- [Python 3.x](https://www.python.org/downloads/) + +## Instructions + +**Node:** +1. Run the command `node app.js` in the directory +2. Visit http://127.0.0.1:8080 in your browser + +## Adding the *gamepad-viewer* Overlay to OBS Studio +> [!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``` + +1. Ensure your controller is plugged in and visible +2. Navigate to the directory using `cd gamepad-viewer` +3. Start the app with either: + - **Node:** `node app.js` *(preferred)* + - **Python:** `python -m http.server --bind 0.0.0.0 8080` +4. Go to http://127.0.0.1:8080 in your browser, focus the window & press a button on your controller +5. Customize your controller scheme and copy the finalized URL +6. 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) +7. Ensure these settings: + - [ ] Shutdown source when not visible + - [x] Refresh browser when scene becomes available + + **Page permissions**: Full access to OBS (Start/Stop streaming without warning, etc.) +8. Add the source, keep OBS Studio focused and press a button on your controller +9. You're 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 + +## Showcase + + + +**DS4Windows:** + +
+Click to expand +

+ + + +

+ +
+
+ +**DualShock Tools:** + +
+ +Click to expand +

+ + +

+ +
+
+ +**Gamepad Tester:** + +
+ +Click to expand +

+ +

+ +
+
+ +**Gamepad Viewer:** + +
+ +Click to expand +

+ + + +

+ +
+
+ +**hidusbf:** + +
+ +Click to expand +

+ +

+ +
+
+ +**XInput Tester:** + +
+ +Click to expand +

+ +