Skip to content
This repository has been archived by the owner on Jan 1, 2024. It is now read-only.

Sunshine/Moonlight DS4 (DualSense) Controller Doesn't show up in DS4Windows. #3152

Closed
Kristijan1001 opened this issue Nov 5, 2023 · 5 comments
Labels

Comments

@Kristijan1001
Copy link

Describe the bug
DS4 is not detected when used through Moonlight, It is actually a Dualsense controller but within Moonlight its setup to emulate it as DS4 and thats how it works in all games except DS4 Windows.

To Reproduce
Setup Sunshine with Moonlight, Controller works everywhere even on the gamepad test page DS4Windows provides it shows in control panel but in DS4Windows it says there are not controllers connected.

Expected behavior
To show the controller.

Screenshots and Logs
/

Desktop (please complete the following information):

  • Controller Make and Model: Sony DualSense
  • OS: Windows 11
  • DS4Windows Version 3.2.18

Additional context
/

@Kristijan1001
Copy link
Author

I would link this since this guy prolly know more what he is talking about but i think its the same issue.

Could possible reading NVIDIA XINPUT in DS4 WINDOWS fix the issue ?

https://ideas.moonlight-stream.org/posts/39/dualshock-4-passthrough

@Ryochan7
Copy link
Owner

Ryochan7 commented Nov 7, 2023

DS4Windows has a small exception list when it comes to virtual devices; the code is an adaptation of the routine that was in the Nefarius.Utilities.DeviceManagement library before I removed it due to performance issues. Would need the HardwareId associated with the virtual controller hub device in order to add to the exception list.

@Ryochan7
Copy link
Owner

Sunshine uses ViGEmBus. This will not be possible without breaking DS4 controller emulation in DS4Windows. Going to consider this issue invalid.

@seanstardev
Copy link

Sunshine uses ViGEmBus. This will not be possible without breaking DS4 controller emulation in DS4Windows. Going to consider this issue invalid.

I am interested in looking at this. I think it would be an incredibly powerful addition to DS4Windows. Any pointers appreciated, but thanks for all your work all the same :)

@seanstardev
Copy link

Update. I have successfully got the Moonlight DS4 device being picked up in DS4Windows. It isn't well tested, but this does prove it is possible.

Alter the DS4Devices.cs function to the below to achieve this:

private static bool IsRealDS4(HidDevice hDevice)
{
if (hDevice.Attributes.VendorId == 1356 && hDevice.Attributes.ProductId == 1476) {
return true;
}
bool result = !Global.CheckIfVirtualDevice(hDevice.DevicePath);
return result;
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants