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.93k stars 344 forks source link

[BUG] Massive input delay when 2 Joy-con are connected #824

Open Chiptuner opened 3 years ago

Chiptuner commented 3 years ago

I've noticed that when using Betterjoy and I have 2 Joycon connected at the same time, the Joycon connected in the first slot experiences about a 0.5-1 second delay compared to the Joycon connected in slot 2. This isn't a Joycon hardware issue as I can swap which controller goes in the first slot, whichever is in the first slot is the one that ends up experiencing the lag. Is this a known issue and if so, how can I fix this?

Chiptuner commented 3 years ago

This issue is most apparent in games like Wii Music where motion input is precise. When playing instruments like a drum, one Joycon will have no delay between swing and hit, but the joycon connected in the first slot will experience a delay significant enough that playing drums correctly is impossible.

Chiptuner commented 3 years ago

Note: This affects DSUClient, D-Input and X-Input. I am using HIDGuardian although I don't think that's the one causing the issue.

DamianS-eng commented 3 years ago

You need to have your Bluetooth adapter on an extender positioned as close as possible to the controllers without any objects breaking their line of sight. Joycons are easily susceptible to latency or dropped input on the Microsoft Bluetooth stack which Betterjoy uses, compared to the Dualshock 4.

Even if you're sure you positioned your adapter properly and still experience this latency, this may be a limitation of the Bluetooth stack. A developer may have a more in-depth explanation if this is the case.

Chiptuner commented 3 years ago

You need to have your Bluetooth adapter on an extender positioned as close as possible to the controllers without any objects breaking their line of sight. Joycons are easily susceptible to latency or dropped input on the Microsoft Bluetooth stack which Betterjoy uses, compared to the Dualshock 4.

Even if you're sure you positioned your adapter properly and still experience this latency, this may be a limitation of the Bluetooth stack. A developer may have a more in-depth explanation if this is the case.

But how come one Joycon will have absolutely no delay, and the other does? I can’t think of it being an interference issue if I can change which Joycon has the delay just by changing which one I connect first.

Chiptuner commented 3 years ago

I also want to note, both Joycon receive rumble data at the same time. Meaning while one Joycon experiences input delay, there is no delay upon receiving rumble data.

Chiptuner commented 3 years ago

Ok so new discovery, if I use the Joycon with Betterjoy turned off, there's no input lag on either Joycon. I think it's as you said, Betterjoy must use some different Bluetooth stack that is causing weird input delay for one Joycon at a time

fantasygone commented 2 years ago

Ok so new discovery, if I use the Joycon with Betterjoy turned off, there's no input lag on either Joycon. I think it's as you said, Betterjoy must use some different Bluetooth stack that is causing weird input delay for one Joycon at a time

How do you turn off Betterjoy while still using the Joycons connected?