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
+
+
+