Davidobot / BetterJoy

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Other
3.81k stars 338 forks source link

[BUG] Xbox Cloud Compatibility with 3th party Pro Controller #857

Open Raichard opened 2 years ago

Raichard commented 2 years ago

Describe the bug In the Xbox Cloud application on PC, the control appears as detected (I can even navigate in this app with the control). Within the game it does not respond, in any way. The games tested on the xcloud were The Medium and Nier Automata. Not only does the emulated 360 controller work perfectly on controller properties, but it has also been successfully tested in Epic Games games like Nioh and Celeste.

Expected behavior Full or partial operation of the switch Pro control.

Controller (please complete the following information):

imagen_2021-10-01_205334

IonBlade2K commented 2 years ago

I had the same issue and fixed it by hiding the "Wireless Gamepad" with HidHide so that Xcloud only saw the 360 controller.

1) Install HidHide (https://github.com/ViGEm/HidHide/releases). Be sure to check its prerequisites section and install any of those you're missing first. 2) Reboot 3) Re-connect your Pro Controller and launch up BetterJoy. Make sure the 360 controller is still showing up in Control Panel and is working there. 4) Open the HidHide Configuration Client from the start menu 5) On the HidHide "Applications" tab, click the + button and browse to where you have BetterJoy installed. Select BetterJoyForCemu.exe to add BetterJoy to the list of apps. 6) On the HidHide "Devices" tab, check the box next to your Pro controller, then check "Enable device hiding" at the bottom of the window. 7) Re-open the Game Controllers Control Panel. If everything has been done correctly, you should only see the Xbox 360 for Windows controller, and the Wireless Gamepad should be gone - only BetterJoy and HidHide can see the original Pro controller now, and all other apps can only see the converted Xbox 360 controller, instead of both, which is what we want. 8) If you have Steam open, close it entirely. Make sure it's also closed in the System Tray, as you don't want Steam controller remapping running while using Xcloud. 9) Open back up the Xbox app for Windows and try streaming a cloud game. The controller should now work in Xcloud, since the Xbox app now only sees the 360 controller, and isn't trying to use the raw Pro controller.

Raichard commented 2 years ago

I had the same issue and fixed it by hiding the "Wireless Gamepad" with HidHide so that Xcloud only saw the 360 controller.

  1. Install HidHide (https://github.com/ViGEm/HidHide/releases). Be sure to check its prerequisites section and install any of those you're missing first.
  2. Reboot
  3. Re-connect your Pro Controller and launch up BetterJoy. Make sure the 360 controller is still showing up in Control Panel and is working there.
  4. Open the HidHide Configuration Client from the start menu
  5. On the HidHide "Applications" tab, click the + button and browse to where you have BetterJoy installed. Select BetterJoyForCemu.exe to add BetterJoy to the list of apps.
  6. On the HidHide "Devices" tab, check the box next to your Pro controller, then check "Enable device hiding" at the bottom of the window.
  7. Re-open the Game Controllers Control Panel. If everything has been done correctly, you should only see the Xbox 360 for Windows controller, and the Wireless Gamepad should be gone - only BetterJoy and HidHide can see the original Pro controller now, and all other apps can only see the converted Xbox 360 controller, instead of both, which is what we want.
  8. If you have Steam open, close it entirely. Make sure it's also closed in the System Tray, as you don't want Steam controller remapping running while using Xcloud.
  9. Open back up the Xbox app for Windows and try streaming a cloud game. The controller should now work in Xcloud, since the Xbox app now only sees the 360 controller, and isn't trying to use the raw Pro controller.

Thank you very much, I tried it and it works great on xcloud, do you know how to make the HidHide make steam see the pro controller (the real one, not the emulated one)? is that when I play steam things if I want the same steam to handle the control.

GoldAce26 commented 2 years ago

I had the same issue and fixed it by hiding the "Wireless Gamepad" with HidHide so that Xcloud only saw the 360 controller.

1. Install HidHide (https://github.com/ViGEm/HidHide/releases).  Be sure to check its prerequisites section and install any of those you're missing first.

2. Reboot

3. Re-connect your Pro Controller and launch up BetterJoy.  Make sure the 360 controller is still showing up in Control Panel and is working there.

4. Open the HidHide Configuration Client from the start menu

5. On the HidHide "Applications" tab, click the + button and browse to where you have BetterJoy installed.  Select BetterJoyForCemu.exe to add BetterJoy to the list of apps.

6. On the HidHide "Devices" tab, check the box next to your Pro controller, then check "Enable device hiding" at the bottom of the window.

7. Re-open the Game Controllers Control Panel.  If everything has been done correctly, you should only see the Xbox 360 for Windows controller, and the Wireless Gamepad should be gone - only BetterJoy and HidHide can see the original Pro controller now, and all other apps can _only_ see the converted Xbox 360 controller, instead of both, which is what we want.

8. If you have Steam open, close it entirely.  Make sure it's also closed in the System Tray, as you don't want Steam controller remapping running while using Xcloud.

9. Open back up the Xbox app for Windows and try streaming a cloud game.  The controller should now work in Xcloud, since the Xbox app now only sees the 360 controller, and isn't trying to use the raw Pro controller.

Thank you so much pal.