fix: DualShock4 and DualSense improvements - #94
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #94 +/- ##
==========================================
+ Coverage 75.23% 75.27% +0.04%
==========================================
Files 34 34
Lines 8091 8105 +14
Branches 3030 3032 +2
==========================================
+ Hits 6087 6101 +14
+ Misses 1467 1446 -21
- Partials 537 558 +21
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes Continue to review full report in Codecov by Harness.
|
|
As a small note: you might want to use Bluetooth as the default profile type for DualShock4 as well as it's using the same EDIT: Did a quick test with ba53378 applied. Result is looking a lot better for the gyro but there's still noise spikes that cause the calibration to fail before it can finish. I know it's still a draft and you're working on it but I wanted to let you know that you're already getting a lot closer to solving this. |
780c758 to
b7cd9a1
Compare
b7cd9a1 to
91365cf
Compare
|
@Kishi85 thanks! I was going to ping you after I had time to test this, but you can probably test everything on the Linux side faster than me. I added some adjustments for DS4 as well a tweak that may fix the gyro spikes. I probably should have tested this better in the first place, but I guess I overlooked the gyro stuff (as I normally prefer the Xbox pads). I'm assuming Moonlight Android doesn't support the gyro and probably just QT does? If so I'll need to find a better way to test this. |
I'll test the latest commit first thing tomorrow and give you feedback. Moonlight-Android does support the gyro but IIRC there's a config option that needs to be enabled for gyro data to be sent to Sunshine. |
|
I must be blind because I don't see any such option with the DualSense connected to the Nvidia Shield. I see something about it in the code though. https://github.com/moonlight-stream/moonlight-android/blob/f10085f552b367cf7203007693d91c322a0a2936/app/src/main/java/com/limelight/preferences/StreamSettings.java#L304 Edit: Gyro is still noisy, looking into it more. Edit 2: Confirmed calibration works in CachyOS host using Moonlight QT in LizardByte/Sunshine#5531 Also discovered that rumble starts working only after opening the calibration in steam, even if rumble is already on before opening the calibration. That's probably a steam bug I guess. Edit 3: DS4 seems to be working just as well (now). This needed some additional tweaks though in 0c38b9f |
DualShock 4 Bluetooth input reports now set the HID-present header bit (0x80) while keeping existing BT framing and CRC behavior. This enables HIDAPI/SDL consumers to accept live input after hotplug on Linux. Updated report and Linux consumer tests to assert the new behavior, and refreshed platform-support docs to describe the BT report contract and unchanged transport boundaries.
|



Description
Screenshot
Issues Fixed or Closed
Roadmap Issues
Type of Change
Checklist
AI Usage
See our AI usage policy.