Skip to content

DualSense adaptive trigger support#1561

Merged
cgutman merged 6 commits intomoonlight-stream:masterfrom
games-on-whales:master
Apr 2, 2025
Merged

DualSense adaptive trigger support#1561
cgutman merged 6 commits intomoonlight-stream:masterfrom
games-on-whales:master

Conversation

@ABeltramo
Copy link
Contributor

@ABeltramo ABeltramo commented Mar 19, 2025

This is part of a series of PRs:

Moonlight client

Sunshine server

20250319_175750.mp4

@moi952
Copy link

moi952 commented Mar 19, 2025

Hi, does this allow the DualSense to be detected as a DualSense for compatible games?

I think it's currently emulated as a PS4 controller, is that correct?

Is it only compatible with a Linux host? Or is it also compatible with Windows?

@ABeltramo
Copy link
Contributor Author

@moi952 the Moonlight code in this PR would send the adaptive trigger events to the locally connected joypad across platforms; I've tested it on Linux and OSX.

Server side, only Linux has full support for a DualSense joypad currently.

@moi952
Copy link

moi952 commented Mar 19, 2025

@moi952 the Moonlight code in this PR would send the adaptive trigger events to the locally connected joypad across platforms; I've tested it on Linux and OSX.

Server side, only Linux has full support for a DualSense joypad currently.

Thanks for your answer !

1 - Windows doesn't support it because it has to be developed on Sunshine?
2 - What's changing?

Sorry, these may be stupid questions.

On Windows, directly on my PC, the DualSense works well, people would be happy if it worked.

3 - Is it compatible for games that natively use DualSense?

Thanks

@hgaiser
Copy link
Contributor

hgaiser commented Mar 23, 2025

I've been testing this through moonshine and it seems to be working great! With these PRs and Steam Input disabled, Horizon Forbidden West correctly sends trigger effects when firing arrows. Haven't tested any other games, but there's also very few games that use this functionality.

@ABeltramo
Copy link
Contributor Author

I've updated moonlight-common-c to bring in the merged changes, this should be ready for review.

If you need a quick way to test this out with a DualSense joypad you can use https://github.com/games-on-whales/sdl-jstest. After building, you can just call

./sdl2-jstest --gamecontroller 0

during a streaming session and by pressing the microphone button, it'll cycle through a couple of different trigger effects.
(that is what I use on the video above 😉)

@daniele-athome
Copy link

Thanks for this! I'm going to try it soon. Does it by any chance work with Bluetooth too?

@hgaiser
Copy link
Contributor

hgaiser commented Mar 31, 2025

Yep it does

@daniele-athome
Copy link

daniele-athome commented Apr 1, 2025

I can confirm it works with Steam Input disabled, as if it's attached to the gaming host (tried Ghost of Tushima and Horizon Forbidden West).

@ABeltramo
Copy link
Contributor Author

Nice, thanks for testing @daniele-athome!

@cgutman cgutman merged commit d9c7a24 into moonlight-stream:master Apr 2, 2025
1 check passed
cursor bot pushed a commit to makeittech/moonlight-qt that referenced this pull request Aug 15, 2025
@Itay080
Copy link

Itay080 commented Oct 19, 2025

Hi, thanks for doing this!
This may be a stupid question and I'm likely missing something but it doesn't seem to be working for me.

I've built moonlight-qt from source with the build-appimage script and copied it to my Steam Deck with a DualSense connected through Bluetooth.

Sunshine on my Linux host appears to detect and emulate the controller as a Dualsense but the adaptive triggers do not work in supported games

Steam Input is disabled in both the client and the host

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants