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

xinput driver + xbox one controller via bluetooth causes dolphin core to run in slow motion/lag #102

Open
klepp0906 opened this issue Jun 19, 2019 · 24 comments

Comments

@klepp0906
Copy link

So after hours of process of elimination, trying to figure out why dolphin was lagging so horribly when I ran wii games. (im talking like 1 fps) I finally narrowed it down to the last thing anyone would think could be related, the input.

After figuring out it only happened when my remap was in place and/or my controller was connected - I removed the remap.

Still nothing i could think of in a remap would cause that kind of behavior so i began changing things back to match the remap 1 by 1.

Was able to discern right away, that setting the controls to anything other than none, or retropad basically presented the behavior. Wiimote, Wiimote+nunchuck etc. Anything emulated wiimote.

To be thorough I tried it with my other controllers. DS4, issue did not present. SC, still worked fine. As one last means of dialing in, I connected the controller wired. Problem did not present.

So in short, setting an xbox one controller - connected via bluetooth to any form of wiimote controls - causes wii games to all but not function.

Yes the controller was unpaired and repaired several times. Even recalibrated in an effort to check all the boxes i could before coming to you guys.

no problems in any other core (of the 30 or so ive been configuring over the last week) so it literally has to be something between dolphin - bluetooth - and wiimote controls butting heads.

@klepp0906
Copy link
Author

just to add to this, since i just now re-ran into the issue (by accident, i forgot about it as ive been busy with playstation).

Seems it will happen regardless whether the controller is connected before opening RA or after. Also if you load a game with the controller off (aka working properly) then turn on/connect the controller, it immediately lags to a crawl, and if you turn the controller back off, it immediately speeds back up.

Hope this gets some attention as nobody likes to play wired, and the xbox controller is a pretty popular choice.

@cobhc2019
Copy link

I can confirm I also have this issue. Dualshock 4 using DS4Windows is fine but I prefer using an Xbox Controller as I don't have to run any other software.

@vidhanio
Copy link

vidhanio commented Oct 1, 2019

This issue also has occured with me, when using my Xbox One controller on bluetooth with dolphin, running a GameCube game. The audio also cuts out, and it only plays for a tiny bit after each frame.

@janovasin
Copy link

Just wanted to add that I've had the exact same issue. I was able to get around this, on Windows 10, by switching the input and joypad drivers both to sdl2 and then restarting retroarch.

@klepp0906
Copy link
Author

klepp0906 commented Nov 3, 2019

so it seems to be an issue with xinput handling with the xbox 360 controller over bluetooth with dolphin core using emulated wiimote. At least that narrows it down for whenever/if-ever whoever maintains the core addresses it. Until such a time, im gonna keep on plugging in like its 1999 ;p

doesnt happen in standalone

@klepp0906 klepp0906 changed the title crazy problem with xbox one controller and dolphin core under specific circumstance xbox one controller via bluetooth causes dolphin core to run in slow motion/lag Nov 20, 2019
@klepp0906 klepp0906 changed the title xbox one controller via bluetooth causes dolphin core to run in slow motion/lag xbox one controller via bluetooth causes dolphin wii core to run in slow motion/lag (emulated wiimote) Nov 20, 2019
@klepp0906 klepp0906 changed the title xbox one controller via bluetooth causes dolphin wii core to run in slow motion/lag (emulated wiimote) xbox one controller via bluetooth causes dolphin core to run in slow motion/lag (emulated wiimote) Nov 20, 2019
@klepp0906 klepp0906 changed the title xbox one controller via bluetooth causes dolphin core to run in slow motion/lag (emulated wiimote) xinput driver + xbox one controller via bluetooth causes dolphin core to run in slow motion/lag (emulated wiimote) Nov 20, 2019
@klepp0906
Copy link
Author

klepp0906 commented Nov 21, 2019

messed with this more tonight.

as noted - does not happen with sdl2. However when using sdl2 in an override, it still happens - go figure.

i assume standalone must use sdl2.

@cobhc2019
Copy link

Might not be the same for you, but I've noticed if the game has vibration turned on by default then the slow down occurs with the default input driver. If I move to the right at the Mario Sunshine menu and disable vibration it goes back up to normal speed.

@klepp0906
Copy link
Author

klepp0906 commented Nov 21, 2019

hmmm. thats an interesting piece of potentially useful information. Hopefully it can help a developer narrow it down. weird considering afaik xinput does support rumble.

I wonder if RA has a global rumble off toggle that would address it in the interim as turning it off/saving for each game is a bit unreasonable. Since xinput is the default n all. I was willing to use sdl2 in an override for now but since thats not working - options are limited until someone has the time/is altruistic enough to look into this. (maybe joypad drivers cant be used in overrides, unsure?)

tbh i even considered using sdl2 overall but i get freaking 3 controller popups instead of 1 when using it - no idea there lol.

@klepp0906
Copy link
Author

klepp0906 commented Nov 21, 2019

just checked under input > enable device vibration and it was on. I disabled it, but alas no effect. so its outside of that.

Also started super mario sunshine and confirmed what cobhc2019 is saying.

I assumed it was constrained to the emulated wiimote and wii games, evidently not. so it looks more like xbox controller + bluetooth + xinput problem with the dolphin core surrounding rumble.

can literally toggle it on and off in realtime and watch the game go from normal to like 2 fps >.<

@klepp0906 klepp0906 changed the title xinput driver + xbox one controller via bluetooth causes dolphin core to run in slow motion/lag (emulated wiimote) xinput driver + xbox one controller via bluetooth causes dolphin core to run in slow motion/lag Nov 21, 2019
@klepp0906
Copy link
Author

checked wiimote ini from dolphin standalone. It does in fact use xinput. So its something with the dolphin core/retroarchs handling of xinput. Not xinput itself.

@klepp0906
Copy link
Author

AdapterRumble0 = True in the ini, changed to false. Also no effect.

I think that concludes everything a user can do to circumvent/narrow it down.

@klepp0906
Copy link
Author

since im a glutton for punishment. One further test done to hopefully make life easier for whoever has the chutzpah to fix this.

Disabling rumble from within the wiimote settings ala pressing the equivalent of the home button, also does not do anything.

@klepp0906
Copy link
Author

klepp0906 commented Nov 21, 2019

worth mentioning - just tried baten kaitos and it seemed fine. so i think it literally only happens with games that support rumble. Thats why i was unaware that it affected GC as well at first.

with wii, its affected every game ive tried - probably cause more/most/all support rumble relative to GC i guess.

doesnt happen with controls set to retropad. but any of the wiimote settings does it.

@klepp0906
Copy link
Author

also worth mentioning, when plugged in - the rumble does not work (hence the slow motion doesnt happen)

something tied to rumble that isnt present in the standalone.

@cobhc2019
Copy link

Wow, lots of information there. I'm not sure who maintains the libretro port, I wonder if @twinaphex could give someone a nudge?

@klepp0906
Copy link
Author

klepp0906 commented Nov 22, 2019

yea ive been digging as best i can. comparing ini's between the standalone and the core. Seeing if i can find a way to circumvent (outside of plugging in) or at least narrow it down as far as possible. (which i believe ive done).

After this ends up resolved, still have to get the "relative" cursor to reach the bottom of the screen (needs functioning equivalents to pitch and yaw like standalone) and get a IR "sensitivity" adjustment to get the cursor speed to mimic/mirror standalone. Its my understanding the it is potentially tied to resolution and on a 4k screen my IR cursor is lightning fast (using dolphin core, standalone is on point)

tldr im on a mission to get dolphin core roughly = standalone. Those things being fixed bring it mightily close.

@flyinghead seems to do a lot of the work around here - but i imagine he's spread pretty thin.

at least theres an alternative for now ;p

@obenguerah
Copy link

After some investigations, I was able to reproduce the issue on a very old version of the Dolphin Core which do not have the issue (Xbox One BT Xinput)

By changing the following values in \saves\User\Config\Dolphin.ini,

From:
[Core]
SIDevice0 = 6
SIDevice1 = 0
SIDevice2 = 0
SIDevice3 = 0

To:
[Core]
SIDevice0 = 6
SIDevice1 = 6
SIDevice2 = 6
SIDevice3 = 6

On recent versions of the Core, which have the default values at 6 instead of 0, changing it to 0 do not solve the issue...

Hope this help..

@klepp0906
Copy link
Author

klepp0906 commented May 2, 2020

hmm, sounds like it'd be a simple fix. hopefully this core sees some love soon :) thanks for help troubleshooting

this is especially annoying as its alongside of microsofts buggy bluetooth/xbox controller implementation on windows.

if you connect via usb, you have to forget and repair your controller each time. Every time i charge my controller I have two options, do it on another device, or do it and then forget/re-pair it on the pc afterwards.

Same with the dolphin core atm. It basically means, playing dolphin via usb = having to forget/re-pair your controller every time your done.

@ghost
Copy link

ghost commented Jun 20, 2020

I can confirm I am also experiencing the same issue. Using the Xbox One Controller (xinput) over bluetooth causes a massive slowdown whereas using a Dualshock 4 over bluetooth does not.

  • 1.8.8 build 02bc2ee1e8
  • dolphin-emu 1fbd599

@steve25469
Copy link

I wanted to drop in and first say thank you to those who've helped in this post. I fought with this issue on and off for a long time, adjusting all manner of settings with no luck until I came across this post. In my case, bluetooth did not seem to be the issue though. If I run the latest dolphin core using xinput drivers at all, then the games lag out to an almost frozen state. Changing over to the sdl2 drivers solved the issue right away though, so thank you!
I haven't used the dolphin core over the normal dolphin emulator very much, just for controller reasons funny enough. I play a lot of rhythm games from my Wii collection, such as Guitar Hero, Rock Band and DJ hero, and sadly the core for Retroarch doesn't really support these by default. I'm hoping to see them add in more support in the future for special controllers, but I'd say this xinput issue is a bug that needs fixed ASAP. I can just imagine how many people have had this issue without ever finding out what was causing it. :(

@ChEvRi1979
Copy link

I recently set up Dolphin through RetroArch and found the same issue with certain GameCube games like Crazy Taxi and Dragon's Lair 3D. I haven't set up Wii yet, but I'm sure I'll find the same problem there. Wondering if anyone has found a fix and if you can talk us through what you did to resolve the issue...

@klepp0906
Copy link
Author

I recently set up Dolphin through RetroArch and found the same issue with certain GameCube games like Crazy Taxi and Dragon's Lair 3D. I haven't set up Wii yet, but I'm sure I'll find the same problem there. Wondering if anyone has found a fix and if you can talk us through what you did to resolve the issue...

any gamecube game that uses rumble will present with the same issue. its tied to that somehow.

@ChEvRi1979
Copy link

Ok...so here's what I've figured out messing with it a bit. There are no issues with using sdl2 as the driver. I just can't get rumble, even in other cores. So, I tried to do a core override. It doesn't work if I leave xinput as the default and try to do a core override for Dolphin with sdl2 as the controller driver. When you do that and fire up Dolphin, it makes the change, but the controller does nothing now...no input whatsoever. HOWEVER...if I do it backwards...that is make sdl2 my default driver, and just do core overrides for any cores I want to keep as xinput, (in other words, keep rumble), for some reason that seems to work.

I'm not a pro at this. I don't know anything about the difference between any of these drivers. I just know rumble works with xinput and, even though it says rumble is supported with sdl2, I can't make it do anything no matter what core it's running on. So, I'm going to make sdl2 my default driver and do a core override for Nintendo 64 (Mupen64Plus-Next) so that it uses xinput, and I have rumble. That SEEMS to work...

@maxhayim
Copy link

Same issue happened to me today. Then I unplugged it and ran the game without it. As soon as I plugged it in the issue happened again. Delayed video and chopped audio.

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

8 participants