ImGui: Add visual vibration intensity indicator to OSD#14230
ImGui: Add visual vibration intensity indicator to OSD#14230Vishrut2403 wants to merge 1 commit intoPCSX2:masterfrom
Conversation
|
Updated the implementation to address the known limitation mentioned in the PR description. Vibration signals are now intercepted at SetPadVibrationIntensity before hardware dispatch, so the overlay correctly displays intensity even on controllers without Linux rumble driver support. |
|
Reworked as suggested. Vibration is now shown inline within the existing DrawInputsOverlay rather than as a separate overlay. When "Show Inputs" is enabled, ICON_PF_CONTROLLER_VIBRATION icons appear alongside the controller state whenever a motor is active. |
96867ec to
19a5a7e
Compare
905f43a to
2411ae3
Compare





Description of Changes
Adds a visual on-screen indicator that displays the vibration intensity of each controller's large and small motors during gameplay. A new "Show Vibration" checkbox is added to the OSD settings (disabled by default), and the indicator appears in the top-right corner alongside existing OSD overlays.
Rationale behind Changes
This addresses #14225. The feature helps players who use controllers without rumble motors, have hearing or sensory impairments, or play on handhelds where vibration is disabled to save battery allowing them to "see" haptic feedback they would otherwise miss.
Known limitation: The indicator currently only shows vibration when the underlying hardware successfully processes the rumble signal. Controllers without Linux rumble driver support will not trigger the overlay even when the game sends vibration data. I'm aware of this limitation and plan to address it by intercepting vibration signals earlier in the pipeline (at SetPadVibrationIntensity) before hardware dispatch, so the overlay reflects what the game requested rather than what the hardware received. Feedback on the preferred approach is welcome.
Suggested Testing Steps
Enable "Show Vibration" in Settings -> On-Screen Display
Boot a game that uses controller rumble
Trigger a vibration event (e.g. taking damage, explosions)
Confirm the indicator appears in the top-right corner showing large and small motor intensities as percentages
Note: I was unable to test with real vibration data due to controller driver limitations on my Linux test machine.
To verify the overlay renders correctly without rumble-capable hardware, I temporarily hardcoded a fixed intensity value and confirmed the indicator displays in the correct position with proper styling. This test code was removed before submitting.
Would appreciate a maintainer verifying on a rumble-capable controller.
Did you use AI to help find, test, or implement this issue or feature?
Yes. I used Claude to help navigate the codebase, identify the correct hook points (SetPadVibrationIntensity, DrawIndicatorsOverlay), and implement the feature following PCSX2's coding guidelines.