moonlight-stream / moonlight-android

GameStream client for Android
GNU General Public License v3.0
3.95k stars 623 forks source link

PS4 Controller RB Button Stops Working After First Buttonpress on Android TV #1154

Open nathanielatom opened 1 year ago

nathanielatom commented 1 year ago

I have an issue on Android 10 TV (Lineage OS running on Nintendo Switch) where a PS4 controller's RB Button only works once and then stops working on all subsequent presses. Other controllers (Switch Pro controller and Joycons) continue to work. The PS4 controller works normally in Steam Link and other apps.

Steps to reproduce

  1. Launch Moonlight on Android TV with a PS4 controller paired.
  2. In Steam Big Picture tap RB (which works and pulls up the chat interface), then tap RB again which proceeds to do nothing. Also occurs streaming any game.

Other Moonlight clients

Moonlight settings (please complete the following information)

Gamepad-related issues (please complete if problem is gamepad-related)

Device details (please complete the following information)

Server PC details (please complete the following information)

Similar to #1144 but different controller, localized to a single button, and based only on first press independent of time.

cgutman commented 1 year ago

Hmm, this is very peculiar. We don't change any of our logic based upon whether we got an RB button press or not. FWIW, I just tried a PS4 controller on an Android 10 device (Galaxy Note 9) and it worked correctly. However, Linux support for DualShock controllers has substantially changed in kernel updates over the years, so it may be kernel version dependent.

Is your controller connected via Bluetooth or USB?

Can you try https://html5gamepad.com/ while streaming and see if the RB button stays pressed after the initial input or if it is released normally and never can be pressed again?

Also please try a gamepad test app like https://play.google.com/store/apps/details?id=ru.elron.gamepadtester to see exactly which inputs are registered when using the RB button.

If possible, please also collect a logcat log from your device when trying to stream.