Xbox One Controller re-recognition issue

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):

Diagnostic Log
citra_log.txt (384.8 KB)

1 Like

I did not find anything wrong in your log file. Please wait for a moderator to assist.

I did not find anything wrong in your log file. Please wait for a moderator to assist.

Close citra, open the qt-config.ini file on C:\Users\%username%\AppData\Roaming\Citra\config and look for the section [Controls] and change it to this:

1 Like

Thanks your reply. But not works for me.
I have try all XInput Controller config at that website (total 3).
First I close Citra, then I copy into qt-config.ini and save it like this:

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

Run game, all buttons and sticks not work.

Is there any incorrect operation for me ?

After I re-configure in Citra control setting windows, it works well, it overwrite to this:

1 Like

you did it correctly, citra writes this new info about defaults but it doesn’t change your settings, but after you do that you shouldn’t change the controls inside citra, open a game and see if it works.

1 Like

I have try, but not works, so I re-configure it manually, then works.

1 Like

Submit your issue here then.

it seems that citra recognizes two different joystick id for both USB and bluetooth. you could try however the x360ce tool as a workaround, configure it both with USB and bluetooth.

btw, did you check for any driver update for your gamepad?

1 Like

Ok, I will submit later and try x360ce tool.
And my gamepad driver is the lastest.

1 Like

Excute me, could you tell me more about how to configure with x360ce for works both USB and bluetooth ?

1 Like

i think if you open and configure x360ce with your usb and later disconnect and connect through the bluetooth it should work. (all without closing x360ce).

1 Like

which folder should I place the xinput*_*.dll that generate of x360ce ?

1 Like

where citra-qt.exe is located, so either the main folder for canary or nightly. but you do need them inside each folder depending which citra build you will use.

IIRC you also need a .ini file along with the dll.

1 Like

BTW, what difference between canary and nightly ?

1 Like

Canary has more features, albeit more likely unstable.

1 Like

But why the lastest verions number of nightly greater than canary ?

image

the first canary build was release back in august-2017 and the first nightly in january-2017, but the two differ as i mentioned previously.

I have try x360ce but no work.

And I have a further attempt:

1. Now Im in usb mode.

When I remove all guid paramaters, it not works.

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

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.

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.

yeah, citra’s hotplugging seems to not take into account the GUID changing. i thought that x360ce would work since you can have multiple config in the .ini file, mine for example. does yours have both the configs for USB and bluetooth?

edit: the hotplug pr does account for new GUID of the virtual joystick, still the issue persists.

This is mine, you can see “Bluetooth XINPUT compatible input device” and “Controller (Xbox One For Windows)”:

[Options]

UseInitBeep=1

Log=0

Console=0

DebugMode=0

InternetDatabaseUrl=http://www.x360ce.com/webservices/x360ce.asmx

InternetFeatures=1

InternetAutoload=1

AllowOnlyOneCopy=1

ProgramScanLocations=C:\Program Files,C:\Program Files (x86)

Version=2

CombineEnabled=0

ExcludeSupplementalDevices=0

ExcludeVirtualDevices=0

[InputHook]

HookMode=1

[Mappings]

PAD1=IG_989875e07f4c11e78001444553540000

PAD2=

PAD3=

PAD4=

[PAD1]

[PAD2]

[PAD3]

[PAD4]

[IG_a5f37d90813411e78002444553540000]

ProductName=Bluetooth XINPUT compatible input device

ProductGuid=02e0045e-0000-0000-0000-504944564944

InstanceGuid=a5f37d90-8134-11e7-8002-444553540000

AxisToDPadDeadZone=256

AxisToDPad=0

AxisToDPadOffset=0

A=1

B=2

GuideButton=

Back=7

Start=8

X=3

Y=4

D-pad POV=1

D-pad Down=

D-pad Left=

D-pad Right=

D-pad Up=

UseForceFeedback=1

ForcePercent=100

SwapMotor=0

FFBType=0

ControllerType=1

LeftMotorPeriod=120

LeftMotorStrength=0

LeftMotorDirection=0

Left Shoulder=5

Left Analog X AntiDeadZone=0

Left Analog Y AntiDeadZone=0

Left Analog X Linear=0

Left Analog Y Linear=0

Left Analog X=1

Left Analog Y=-2

Left Thumb=9

Left Analog X DeadZone=0

Left Analog Y DeadZone=0

Left Analog Y- Button=0

Left Analog X- Button=0

Left Analog X+ Button=0

Left Analog Y+ Button=0

Left Trigger=x3

Left Trigger DeadZone=0

PassThrough=1

RightMotorPeriod=60

RightMotorStrength=0

RightMotorDirection=0

Right Shoulder=6

Right Analog X AntiDeadZone=0

Right Analog Y AntiDeadZone=0

Right Analog X Linear=0

Right Analog Y Linear=0

Right Analog X=4

Right Analog Y=-5

Right Thumb=10

Right Analog X DeadZone=0

Right Analog Y DeadZone=0

Right Analog Y- Button=0

Right Analog X- Button=0

Right Analog X+ Button=0

Right Analog Y+ Button=0

Right Trigger=x-3

Right Trigger DeadZone=0

A DeadZone=0

B DeadZone=0

Back DeadZone=0

Start DeadZone=0

X DeadZone=0

Y DeadZone=0

Left Thumb DeadZone=0

Right Thumb DeadZone=0

Left Shoulder DeadZone=0

Right Shoulder DeadZone=0

AxisToDPadDownDeadZone=0

AxisToDPadLeftDeadZone=0

AxisToDPadRightDeadZone=0

AxisToDPadUpDeadZone=0

ForcesPassThrough=0

PassThroughIndex=0

Combined=0

CombinedIndex=0

[IG_989875e07f4c11e78001444553540000]

ProductName=Controller (Xbox One For Windows)

ProductGuid=02ff045e-0000-0000-0000-504944564944

InstanceGuid=989875e0-7f4c-11e7-8001-444553540000

AxisToDPadDeadZone=256

AxisToDPad=0

AxisToDPadOffset=0

A=1

B=2

GuideButton=

Back=7

Start=8

X=3

Y=4

D-pad POV=1

D-pad Down=

D-pad Left=

D-pad Right=

D-pad Up=

UseForceFeedback=1

ForcePercent=100

SwapMotor=0

FFBType=0

ControllerType=1

LeftMotorPeriod=120

LeftMotorStrength=0

LeftMotorDirection=0

Left Shoulder=5

Left Analog X AntiDeadZone=0

Left Analog Y AntiDeadZone=0

Left Analog X Linear=0

Left Analog Y Linear=0

Left Analog X=1

Left Analog Y=-2

Left Thumb=9

Left Analog X DeadZone=0

Left Analog Y DeadZone=0

Left Analog Y- Button=0

Left Analog X- Button=0

Left Analog X+ Button=0

Left Analog Y+ Button=0

Left Trigger=x3

Left Trigger DeadZone=0

PassThrough=1

RightMotorPeriod=60

RightMotorStrength=0

RightMotorDirection=0

Right Shoulder=6

Right Analog X AntiDeadZone=0

Right Analog Y AntiDeadZone=0

Right Analog X Linear=0

Right Analog Y Linear=0

Right Analog X=4

Right Analog Y=-5

Right Thumb=10

Right Analog X DeadZone=0

Right Analog Y DeadZone=0

Right Analog Y- Button=0

Right Analog X- Button=0

Right Analog X+ Button=0

Right Analog Y+ Button=0

Right Trigger=x-3

Right Trigger DeadZone=0

A DeadZone=0

B DeadZone=0

Back DeadZone=0

Start DeadZone=0

X DeadZone=0

Y DeadZone=0

Left Thumb DeadZone=0

Right Thumb DeadZone=0

Left Shoulder DeadZone=0

Right Shoulder DeadZone=0

AxisToDPadDownDeadZone=0

AxisToDPadLeftDeadZone=0

AxisToDPadRightDeadZone=0

AxisToDPadUpDeadZone=0

ForcesPassThrough=0

PassThroughIndex=0

Combined=0

CombinedIndex=0