streetpea / chiaki-ng

Next-Generation of Chiaki (the open-source remote play client for PlayStation)
https://streetpea.github.io/chiaki-ng/
GNU Affero General Public License v3.0
1.18k stars 75 forks source link

Steam Deck Tools and latest Chiaki4Deck Controller Conflicts #293

Closed bjaudon closed 1 month ago

bjaudon commented 7 months ago

Is your feature request related to a problem? Please describe. I am experiencing a conflict when using Chiaki4Deck 1.6.5 with Steam Deck Tools (SDT) under Windows that was not in previous C4D versions. Both Steam Deck and and Xbox 360 (emulated) controllers are detected causing double input. This can be mitigated by disabling SDT controller. However, under Windows this is less than desirable as touchpad functionality is also lost for general use.

Describe the solution you'd like A new option to select controllers to use or disable steam native controller detection.

Describe alternatives you've considered Disabling SDT while using C4D or using a previous version that is unaffected.

Additional context Add any other context or screenshots about the feature request here.

image
streetpea commented 7 months ago

I didn’t make any changes to Chiaki4deck in 1.6.5 that could cause this but the windows sdl version got updated so perhaps it’s that? (Chiaki4deck uses sdl for controller input other than steam deck gyro)

bjaudon commented 7 months ago

My apologies I just tested and it first appeared in version 1.6.4, which I had never updated to. Versions 1.6.3 and prior work fine for me. I run C4D directly from a Windows shortcut. I've also disabled steam input for desktop layout too, but it happens if steam is running or not.

streetpea commented 7 months ago

sdl was also bumped in 1.6.4. I'm thinking a change in sdl must be the cause since controllers are handled by SDL not by chiaki4deck. Chiaki4deck just uses the values it grabs from the sdl apis. It looks like for whatever reason that controller wasn't being picked up by SDL but it is now so SDL sees 2 controllers where before it saw 1. This will likely affect any game that uses the newest version of SDL. We can test this theory with a build using an older version of sdl.

bjaudon commented 7 months ago

Thanks for the info. I copied the SDL2.dll from 1.6.3. and that did fix the double input, so it's definitely something with the SDL update.

With this SDL version it did not detect the steam deck controller.

image
bjaudon commented 7 months ago

Looking at the release notes on SDL it appears they added some SteamAPI support starting in 2.29.1 which likely enabled the detection of the controller. I may need to open an issue with Steam Deck Tools to see if there's a way to hide or handle the double detection since it's going to be a major conflict in the future.

bjaudon commented 7 months ago

As a workaround I've used HidHide to hide the Valve Steam deck controller and added an exception for the steamdecktools applications to see through the cloak. This seems to solve the issues I'm seeing.

Handheld companion uses this method and it seems to work well. I also confirmed that HC is working fine as an alternative solution.