Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controller blocked being connected directly to stream PC #25

Open
prounlocks opened this issue Feb 20, 2022 · 3 comments
Open

Controller blocked being connected directly to stream PC #25

prounlocks opened this issue Feb 20, 2022 · 3 comments

Comments

@prounlocks
Copy link

PC Windows 11 PRO 21H2 GF experience 3.25.0.84 streaming to
Shield 2019 PRO
XBOX ONE S 1914 model controller connected via BT directly to PC windows.
Launching game by open desktop (explorer.exe in moonlight interface), after manually loading game.
Other words - moonlight works like image transfer only.
All moonlight controller supports are disabled (tried with enabled too)

I found strange bug in two games (rest looks good):

  1. Star wars Jedi Fallen orders - only left analogue stick works - nothing more
  2. God Of War - nothing works (controller blocked)

Same games without streaming working good with same controller.

This issue happens not only Moonlight, but with original Nvidia shield streaming client too.

First time i thought that game using my BT Shield remote control as a promary controller, but i disconnected it, reconnect streaming, nothing changes.

So looks like XINPUT works different during streaming and prevents to use controllers connected to PC directly.

If the controller connected to Nvidia shield - no problems.

@cgutman
Copy link
Member

cgutman commented Feb 20, 2022

Yeah, this is something that Nvidia does, though it has gone back and forth over the years as they adjusted their controller emulation code.

I think their decision makes sense of preferring remote controllers makes sense, because the alternative is that games that only enumerate one controller would be totally unplayable via GameStream if you left a controller connected to your PC (as many people do).

Since this is not a Moonlight bug/behavior, I will transfer this to the other issue tracker.

@cgutman cgutman transferred this issue from moonlight-stream/moonlight-android Feb 20, 2022
@prounlocks
Copy link
Author

prounlocks commented Feb 20, 2022

I guess i found problem.
The issue in XINPUT device ID. And that games supports only controller with ID=0 and rest works bad or not working absolutely.
https://prnt.sc/_6PWXQcchv46

Here on this screen you can see that without streaming i connected OLD Xbox controller ID=0 and new one with ID=1 and i got the same issue like with streaming.
This means that Nvidia shield reserved ID=0 for own purposes and any other controller in system become ID=1.

Simple))

@prounlocks
Copy link
Author

prounlocks commented Feb 20, 2022

I found that upon start connection with shield - nvidia creates hidden main XINPUT controller which not able to view by tools.
However its a XInput device 'NVIDIA Shield', {ECBB3D3D-C2EA-4861-983F-B3E15BDC6C52}
There is a simple solution - use tools like
JoyID (swap ID on the fly)
DeviceLister (easiest with text config)
x360ce (for those who already using it - set shield to unexist virtual controller (3th or 4th)
they were able to bring your controller to the top upon connection.

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

No branches or pull requests

2 participants