RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
15.08k stars 1.88k forks source link

[Feature request] Implement Steam Deck Gyro Support Using a DSU Server #13196

Closed rawdatafeel closed 2 weeks ago

rawdatafeel commented 1 year ago

Quick summary

Follow Up of an RPCS3 Issue and PR: https://github.com/RPCS3/rpcs3/issues/8600 and https://github.com/RPCS3/rpcs3/pull/12502

Could RPCS3 implement Steam Deck Gyro support using SteamDeckGyroDSU: https://github.com/kmicki/SteamDeckGyroDSU?

SteamDeckGyroDSU adds a buddy DSUClient to the control input list and allows these emulators to properly use the Steam Deck's gyro.

Details

I am using the RPCS3 AppImage, Build 0.0.26-14525, on the Steam Deck, SteamOS, an Arch based linux distribution. More detail here: https://wiki.archlinux.org/title/Steam_Deck.

Preface

I followed the instructions here: https://github.com/RPCS3/rpcs3/issues/12503, added the deck user to the input group, restarted the Steam Deck, and gyro does seem to pop up as a buddy device as described in the issue linked.

Image: image

However, gyro does not seem to be exposing properly and is not actually enabled in game. I've been using Folklore as a test. I am not sure if the Motion Controls menu is part of it but here's a photo of that screen (there is nothing available in the drop-down menu):

image

Other emulators, Dolphin, Cemu, Yuzu, and Ryujinx, all are able to use SteamDeckGyroDSU to properly expose gyro to the emulator: https://github.com/kmicki/SteamDeckGyroDSU.

SteamDeckGyroDSU implementation works similarly to the RPCS3 implementation of gyro linked in the issue above.

Image: image

It would be great if RPCS3 could somehow take advantage of SteamDeckGyroDSU and add gyro support for the Steam Deck.

Please describe, what part of RPCS3 would be affected by your feature:

It would be an expansion of the PR here: https://github.com/RPCS3/rpcs3/issues/12503, adding gyro support for the Steam Deck.

Please tell us, why your feature is important to RPCS3

To properly implement Steam Deck gyro support, expanding gyro support for an additional group of users.

Please attach screenshots of the feature implemented in other projects

Dolphin: image

Yuzu: image

Cemu: image

Ryujinx: image

Please provide your system configuration:

Steam Deck, SteamOS, an Arch based linux distribution. More detail here: https://wiki.archlinux.org/title/Steam_Deck.

Specs: https://www.steamdeck.com/en/tech

Megamouse commented 1 year ago

Missing log file 🥱

rawdatafeel commented 1 year ago

I'd be happy to get a log file, it wasn't specifically a game-related issue so I wasn't sure how. What log file are you looking for?

Megamouse commented 1 year ago

well. one where you try to configure it for example.

rawdatafeel commented 1 year ago

The only output I get from the log is:

E evdev: evdev TestVibration: Device [FTS3528:00 2808:1015] does not support rumble features! [large_motor = 0] [small_motor = 0] x6

Megamouse commented 1 year ago

you're supposed to upload the log file

rawdatafeel commented 1 year ago

I'm sorry, could you clarify how I get this log file?

The error message above is from clicking View, and clicking Show Log/TTY.

SatorSquare commented 1 year ago

Has there been any attention given to this?

It's currently impossible to play games that require motion controls on the SteamDeck despite the device supporting gyroscopic controls. Other emulators have implemented support for SteamDeckGyroDSU as a solution. It would be a nice feature for this project as well.

As for logs, there are none as support for the requested feature simply doesn't exist and therefore there is nothing to log.

sagman76 commented 1 year ago

Hopefully this can be introduced at some point as also stuck on Folklore on the deck.

rawdatafeel commented 1 year ago

I am using the AppImage, yes, on a Steam Deck. Hope these help!

RPCS3.log TTY.log

Likkkez commented 1 year ago

Can someone please make this happen. That's just silly that you guys expect people to plug in a ps3 controller into the steam deck and play that way.

Asinin3 commented 1 year ago

Everyone is welcome to make a pull request

eVenent commented 1 year ago

I saw that reWASD implemented pressure-sensitive touchpads of Steam Deck and it's possible to emulate there virtual DualShock 3. Gyro is emulated in virtual controllers too. It can be a workaround for the problem, but it would be nice to be able to use Steam Deck's pressure-sensitive touchpads natively via DSU Server or SteamInput.

SteamInput has the ability to set thresholds for trackpad press, so I think it's possible to achieve a similar thing by adding the three thresholds (not the only one) of pressure-sensitivity, but gyro probably will need DSU Server anyway.

huntyboy102 commented 7 months ago

Any updates to this since Aug? No one working on this behind the scenes?

Icaruspooky commented 7 months ago

Seems the feature was already implemented in #12503 so I don't understand why it isn't working on the steam deck. Does anyone have a workaround? I realy want to play Folklore :(

kutu-dev commented 1 month ago

Any news about this?

plrusek commented 1 month ago

At this point I'm willing to put up some kind of bounty to have this feature in RPCS3. It's the biggest flaw of this emulator on Steam Deck right now.

Megamouse commented 2 weeks ago

Apparently this was added in kernel 6.10 (see hid-steam and look for steam_sensors_register).

I don't see a reason to add some weird DSU Server