Citra: Xbox One Controller need manual re-configure after change usb mode to bluetooth mode

Created on 15 Dec 2018  Ā·  4Comments  Ā·  Source: citra-emu/citra

Issue:

Im using Xbox One Controller for playing Pokemon Ultra Sun with Citra Nightly 1152. My controller has bluetooth, also works with usb.

First, I use usb connect to my laptop and configure ā€œcontrolā€ in Citra, all works well.

Then, I pull out usb, use bluetooth connect to laptop and re-recognize the controller (because change usb mode to bluetooth mode re-recognize the device is necessary), but all buttons and sticks of controller no respond even if configures look like correct in Citra setting window.

I must reconfigure all buttons and sticks, then works well.

System Information

Operating System: Windows 10 Professional 1803 17134.471
CPU: i7-6700HQ
GPU: NVIDIA GTX 960M
Citra Version (found in title bar): 1152
Game: Pokemon Ultra Sun
Screenshot of Issue (include the full Citra window including titlebar):

image

A further attempt:

I have try all XInput Controller config at http://www.jannikvogel.de/scratchpad/citra-input-map/ (total 3 for xinput).
First I close Citra, then I copy into qt-config.ini and save it like this:

image

Then, I run Citra again, but it overwrite config to this:

image

Now, I run Citra and run game, all buttons and sticks no response.


So, I manual re-configure it downheartedly inside Citra control setting window, and it overwrite to this:

image

Now, it works well.

Most helpful comment

This is related to my issue : https://github.com/citra-emu/citra/issues/4485

Citra binds controls to specific hardware id's for some reason, it'd be a lot easier if it were hardware agnostic and just checked buttons and axis without having to check the guid. It already checks the port number so I don't know why guid is necessary.

All 4 comments

I also have this problem but in a different variation. If I run Citra from Visual Studio and then a normal build (or the other way round), I also need to reconfigure my controller even though the settings display all buttons as if they are mapped properly. This didn't happen before the "input rewrite".

A further attempt:

1. Now Im in usb mode.

When I remove all guid paramaters, it not works.

image

2. But when I recover it, it works well.

image

3. I change to bluetooth mode.

As my description previously, it become not work.
Now, I manual reconfigure in Citra control setting window, and I open qt-config.ini, the guid was changed to 03000000000000000000000000007801(guid of bluetooth mode) from 030000005e040000ff02000000007801(guid of usb mode).

Ok, now works.

image

4. I disconnect bluetooth and connect usb. I use usb guid replace of the bluetooth guid in qt-config.ini and save.

Run Citra and game, works well for changing mode !

So, the guid paramater seems like necessary ? But configs at the website http://www.jannikvogel.de/scratchpad/citra-input-map/ all haven’t guid paramater.

This is related to my issue : https://github.com/citra-emu/citra/issues/4485

Citra binds controls to specific hardware id's for some reason, it'd be a lot easier if it were hardware agnostic and just checked buttons and axis without having to check the guid. It already checks the port number so I don't know why guid is necessary.

So, in theory, this could be fixed by the hidapi drivers introduced by SDL2.0.9, as the controller would report with the same guid.
Can you test with any of the nightly versions from 1431 to 1436 (curernt)?
The SDL2 version was updated to 2.0.10 by citra-emu/build-environments#22.
The problem is, the hidapi drivers are causing problems with other controllers, so they'll probably need to be disabled partially or completely. If it fixes this issue though it might be worth to keep the drivers for xbox360 and xboxOne controllers.

Was this page helpful?
0 / 5 - 0 ratings