Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Game Controller Tester

Test any input device including gamepad, haptic, vibration, mouse, keyboard, touch screen, sensors 路 By POW Games

DualSense Rumble

A topic by fcanudo created Aug 12, 2025 Views: 526 Replies: 3
Viewing posts 1 to 3

How did you guys did the rumble when a dualsense controller is connected on Windows? Seems that using SDL_HINT_JOYSTICK_ENHANCED_REPORTS with a sdl3 sample app only makes the controller sorta emulate a xbox/directinput vibration, but in the gamepad tester app the vibration is different, a little stronger, how was this done?

Developer

Hi.  Just guy, not guys 馃槈; I keep my multiple personalities to myself 馃槅.

I'm using SDL_HINT_JOYSTICK_ENHANCED_REPORTS , but I'm also using SDL_HINT_JOYSTICK_GAMEINPUT, SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER. It may be that SDL3's gamepad tester app uses the triggers to set the vibration strength, which maybe isn't reaching max? You'd have to look at the source code on Github. Or maybe there's a quirk in the hardware that prevents the motors from spinning harder if they're started up gradually. I plan on adding sliders to my app which would help test this behaviour.

I'm posting a screenshot because of the character limit lmao

Developer

Don't worry, happy to help. You've done a deep dive into SDL's code, beyond what I know, and I don't think I'm doing anything unique in my app. 

This is how them momentary buttons work:

case UI::RumbleLeft:
    SDL_RumbleJoystick(joy, 0xFFFF, 0x0000, 64);
    break;
case UI::RumbleRight:
    SDL_RumbleJoystick(joy, 0x0000, 0xFFFF, 64);
    break;

And that's called every `SDL_AppIterate`, which probably means them data packets are being spammed. Maybe not the best way of doing it. 

How does the strength compare to the rumble test page under "More Tests"? You can toggle the rumble on/off with the checkboxes.