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

Switch controller (All type) multiplayer 2nd+ heavy latency #146

Open
darthcloud opened this issue Jan 17, 2022 · 32 comments
Open

Switch controller (All type) multiplayer 2nd+ heavy latency #146

darthcloud opened this issue Jan 17, 2022 · 32 comments

Comments

@darthcloud
Copy link
Owner

darthcloud commented Jan 17, 2022

Switch controller somehow don't play nice with eachother when used simultaneously. Mixing one with another type like PS or Xbox work fine.

When 2 or more SW are used, often the first one will be absolutely fine but the other will often have extreme latency.

Another behavior is that sometimes pressing buttons on first ctrl right after 2nd ctrl connection cause the 2nd to get in a weird state where led indicator is reset to one and no report is received.

Workaround: only use one SW controller, use other ctrl type for multiplayer.

Workaround 2: Disconnect SW controller with Boot buttons on ESP and then reconnect. Do so until all controller are responsive. It usually take less than 5 try.

@darthcloud darthcloud changed the title Switch controller (All type) multiplayer 2nd+ heavy latencycy Switch controller (All type) multiplayer 2nd+ heavy latency Jan 17, 2022
@sskylar
Copy link

sskylar commented Mar 10, 2022

Confirming the same behaviors with the following Switch-based controllers:

  • PowerA Wireless GameCube Style Controller
  • HORI Wireless Battle Pad (NSW-274U)
  • 8bitdo SN30 Pro+
  • 8bitdo N30

@novamax89
Copy link

novamax89 commented Aug 1, 2022

Hello. I found out that if I pair an Xbox series x controller first, then I pair a switch controller they both works, but if I turn off the Xbox controller and pair the switch controller now both switch controller works perfectly. This is a nice workaround to let the controller always works without attempting many tries, but also means that there is maybe a software problem and not an hardware one if they can both work fine with this method @darthcloud

@novamax89
Copy link

Do you think you can solve the problem updating the firmware? @darthcloud

@raed143
Copy link

raed143 commented Oct 29, 2022

Is this issue is still open? or shall I install multiple boards? (1 for each 2 controllers). If I did. will it be possible to set each board to only accept to controllers and the other board assign first controllers connected to 3 and 4 instead of starting with 1 and 2? Thanks

@wtfbbqhax
Copy link

I came here to report the same issue with regular switch pros and NSO N64 controllers.

In my case, I can not get the subsequent controllers to work at all (10+ tries)

@Traxus7
Copy link

Traxus7 commented Jan 9, 2023

Reporting the same issue with multiple NSO N64 controllers. I have a single BlueRetro unit with 4 N64 cables plugged into a stock Grape Purple N64 (USA NTSC) and trying to pair with multiple NSO N64 controllers results in them stepping on each other.

Pairing one works fine, but pairing a 2nd controller results in both controllers going in and out of connection. Completely unstable. The 2nd controller's first LED will go solid occasionally, like it's trying to take over channel 1.

I nabbed 4 NSO N64 controllers for this; if it worked properly this would be my dream N64 setup. Is this something that can be patched or am I better off shopping for 4 separate BlueRetro dongles?

@raed143
Copy link

raed143 commented Jan 9, 2023 via email

@Traxus7
Copy link

Traxus7 commented Jan 10, 2023

Yeah in my case the symptoms appear immediately when trying to pair a 2nd NSO N64 controller like described by darthcloud above.
I also tried some variations like pairing a DS4 or Dualsense first, then an NSO N64 controller, which worked fine until I paired the 2nd NSO N64 controller and got the same glitchy stuff. So it's definitely the NSO N64 controllers interfering with each other somehow no matter what channel they're on.

@wtfbbqhax
Copy link

I asked Darthcloud on Discord a few weeks ago about debugging this issue and apparently it is non-trivial.

The only workaround is to have individual adapters for each controller.

@darthcloud
Copy link
Owner Author

darthcloud commented Jan 10, 2023

This is the kind of issue that is likely something really dumb in the end but very hard to figure out.

If I put a 40 hours week on it maybe I could figure it quickly.

I got a family and a full time job so BlueRetro is only a hobby when I got free time.
That free time is maybe 0min, 30min or an hour a day. Rarely more.

So for now I'm working on a few other bugs that are low hanging fruit that fit well into the time I got.

This issue (and the overall Switch support) annoy me quite a lot personally, so its going to be actively worked on at one point once I feel I can only work on this without neglecting other area of the project.

@raed143
Copy link

raed143 commented Jan 10, 2023 via email

@darthcloud
Copy link
Owner Author

Its not a solution its a workaround at best, using 4 radio when you could use one doesn't make sense.

@Traxus7
Copy link

Traxus7 commented Jan 12, 2023

Yeah I'm just an end-user but I assume since BlueRetro is capable of pairing 4 pads with a single board that would be ideal at least to minimize BT interference, as opposed to having 4 separate dongles each with their own transmitter. Shame it sounds like a tough nut to crack; four N64 NSO controllers paired with one cohesive BlueRetro unit on og N64 hardware would be so nice.

Regardless, I just want to say thanks for everything darthcloud! BlueRetro is absolutely amazing. Take your time. Health and family come first! I'll be looking forward to all the cool things the future brings.

@raed143
Copy link

raed143 commented Jan 12, 2023 via email

@anherooftime69
Copy link

Thank you for all of the work you put into this project @darthcloud.

I bought a pre-made core and connectors for each of my systems from Aliexpress and quickly learned of this issue on my own. It's nice to see that it's a known issue, and that you are not ignoring it. For that I am grateful!

And not that you are responsible at all for it, but I just wanted to point out that the vendor is not aware of this issue, and they imply that it works fine with multiple Pro Controllers.

@raed143
Copy link

raed143 commented Feb 1, 2023 via email

@davidreeves
Copy link

I found this to still be a problem on firmware 1.8.3 for the gamecube dongle.

@AugusDogus
Copy link

AugusDogus commented Mar 25, 2023

I've created a bounty for this issue.

@wtfbbqhax
Copy link

Can I somehow contribute to your bounty?

@sskylar
Copy link

sskylar commented Mar 31, 2023

Good idea @AugusDogus, I also created a bounty to match :)

(for others wondering, you can create one here https://www.boss.dev/account/bounty/create)

@Traxus7
Copy link

Traxus7 commented Apr 3, 2023

omg you guys are heroes, thank you, would love to see this solved!

@icd2k3
Copy link

icd2k3 commented May 17, 2023

Many thanks to darthcloud and others for looking into this...

In the meantime, does anyone have other controller recommendations for N64 and GC? I suppose I could also look into doing 1 esp32 internal board per port, but that sounds... tricky

I was hoping to use the RetroFighters NSO Brawler and PowerA's NSO GC controllers because the button layout and feel is close to the originals. Anything similar that has better multiplayer compatibility?

Does anyone know if this is a problem for Exlene GameCube controllers?

Either way, thanks to those looking into this and contributing bounties

@icd2k3
Copy link

icd2k3 commented May 17, 2023

Just to confirm, this isn't a problem when using multiple dongles, right @darthcloud? (these, for example). My understanding is that it's an issue using a single board with multiple connections?

The other option I'm considering is just installing 4 esp boards internally and modifying nostalgic-influence's schematics to have each of the 4 IOs go to its own board? Sounds kinda like a wiring nightmare though.

Obviously an internal install would be preferred (and cheaper), but if multiple dongles allows me to use 4 NSO controllers without issue, then it's worth it for me (until the single board install can be worked out)

@raed143
Copy link

raed143 commented May 17, 2023 via email

@icd2k3
Copy link

icd2k3 commented May 17, 2023

@raed143 do you happen to have an example pic of your install?

I just kinda wanna get a visual idea of what's involved. I do have 4 of the tiny chips nostalgic-influences uses, so I should be able to stash the somewhere - the single chip in his example has a lot of connections for port detection...
image

For port detection, each board will probably need 4 wires if I understand correctly: IO, 3v, Grd, IO2 (port detection)

Sorry if this is too off topic, but it would be a sweet workaround for this issue if I can get it working

@raed143
Copy link

raed143 commented May 17, 2023 via email

@icd2k3
Copy link

icd2k3 commented May 17, 2023

Thanks @raed143 that does help - I only want active port detection (HW2) on the 1st port anyways, so maybe it wouldn't be too hard to wire it up that way and do the other 3 chips as HW1

@icd2k3
Copy link

icd2k3 commented Jun 14, 2023

With 2 NSO SNES controllers I don't see any latency, but the 2nd controller always goes into the state where the indicator LED is reset and it loses connection. Sometimes it will work for up to 5min, but it always reverts to that state.

Bumping the bounty to $250 total

@icd2k3
Copy link

icd2k3 commented Jun 14, 2023

Does anyone know if this problem happens with the 8BitDo mod kits? For example the original or classic SNES controllers or N64 controller?

Or do those mods behave like switch controllers too?

Edit

Apparently they support xinput, so I'm gonna bite the bullet on 1 oem snes controller and 1 mod kit and test to see if it works

@Traxus7
Copy link

Traxus7 commented Jun 16, 2023

Does anyone know if this problem happens with the 8BitDo mod kits? For example the original or classic SNES controllers or N64 controller?

Or do those mods behave like switch controllers too?

Edit

Apparently they support xinput, so I'm gonna bite the bullet on 1 oem snes controller and 1 mod kit and test to see if it works

In BlueRetro 1.83 on a Retro Rosetta I can confirm the 8bitdo N64 modkit does NOT suffer from the Switch latency issue, either in Switch mode or Windows/Android mode. I've tested my four 8bitdo modkits paired simultaneously in Switch mode, and also one NSO N64 controller paired with three 8bitdo modkits in Switch mode. They all performed beautifully.

I also tried two NSO N64 controllers and immediately the latency of the second controller was obvious, unplayable.

However, the 8bitdo does suffer from multiple button mapping issues in both modes and rumble currently doesn't work. See the issue thread on it. I imagine it'll be an easier fix than the Switch controller latency once darthcloud gets a look at it but I have no clue.

@sskylar
Copy link

sskylar commented Jun 21, 2023

However, the 8bitdo does suffer from multiple button mapping issues in both modes and rumble currently doesn't work. See the issue thread on it.

Linking that issue here: #706

@pceslayer
Copy link

Does anyone know if this problem happens with the 8BitDo mod kits? For example the original or classic SNES controllers or N64 controller?

Or do those mods behave like switch controllers too?

Edit

Apparently they support xinput, so I'm gonna bite the bullet on 1 oem snes controller and 1 mod kit and test to see if it works

It doesn't seem to impact the SNES or NES kits either. Ive played a bunch of bomberman

Does anyone know if this problem happens with the 8BitDo mod kits? For example the original or classic SNES controllers or N64 controller?
Or do those mods behave like switch controllers too?

Edit

Apparently they support xinput, so I'm gonna bite the bullet on 1 oem snes controller and 1 mod kit and test to see if it works

In BlueRetro 1.83 on a Retro Rosetta I can confirm the 8bitdo N64 modkit does NOT suffer from the Switch latency issue, either in Switch mode or Windows/Android mode. I've tested my four 8bitdo modkits paired simultaneously in Switch mode, and also one NSO N64 controller paired with three 8bitdo modkits in Switch mode. They all performed beautifully.

I also tried two NSO N64 controllers and immediately the latency of the second controller was obvious, unplayable.

However, the 8bitdo does suffer from multiple button mapping issues in both modes and rumble currently doesn't work. See the issue thread on it. I imagine it'll be an easier fix than the Switch controller latency once darthcloud gets a look at it but I have no clue.

I can confirm I the NES 8bitdo kits do NOT have the latency issues either. I have 4 NES Kit controllers that work perfectly. I wouldn't think the SNES kits would have the problem considering the NES kit seem to be identified identically in Blueretro. I only have two SNES kit controllers so I can't test multiple there, but the NES and SNES play nicely together with no issues.

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