BlueRetro icon indicating copy to clipboard operation
BlueRetro copied to clipboard

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

Open darthcloud opened this issue 2 years ago • 32 comments

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 avatar Jan 17 '22 08:01 darthcloud

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

sskylar avatar Mar 10 '22 22:03 sskylar

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 avatar Aug 01 '22 23:08 novamax89

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

novamax89 avatar Aug 02 '22 10:08 novamax89

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

raed143 avatar Oct 29 '22 12:10 raed143

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)

wtfbbqhax avatar Dec 16 '22 23:12 wtfbbqhax

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?

Traxus7 avatar Jan 09 '23 22:01 Traxus7

In my case 2 NSO controllers worked well on one board. So installing 2 boards with a switch to turn on/off the second board solved the problem.You can do 4 as well but in this case you better install switches to turn the additional boards on an off to prevent the controllers from pairing to other boards if you’re playing single or 2 player game. On 10 Jan 2023, at 1:07 AM, Traxus7 @.***> wrote: Reporting the same issue with multiple NSO N64 controllers. I have a single BlueRetro unit with 4 N64 cables 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 #1 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?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

raed143 avatar Jan 09 '23 23:01 raed143

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.

Traxus7 avatar Jan 10 '23 02:01 Traxus7

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.

wtfbbqhax avatar Jan 10 '23 16:01 wtfbbqhax

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.

darthcloud avatar Jan 10 '23 17:01 darthcloud

This issue is closed though. Using multiple board solves it 100%.I would recommend just adding the following simple features to completely overcome the few small issues with using multiple board. 1- the ability to assign a board to controller port so it will be marked correctly on the controller.  (Like board set for 1 controller port 1, 2, 3 or 4)2- each controller will have delay on the auto pair. Like 10 second controller 2, 20 seconds controller 3 and 30 seconds controller 4. To ensure that we first pair the controllers we will use rather than start with controller 4 if you want to play 1p game. I think with the above simple features added multiple board will be very practical. At the moment am using manual switch to turn on and off the boards am using. 

raed143 avatar Jan 10 '23 22:01 raed143

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

darthcloud avatar Jan 10 '23 22:01 darthcloud

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.

Traxus7 avatar Jan 12 '23 09:01 Traxus7

Yes darthcloud has been one of the biggest contributors for retro gaming. Controller have always been an issue for me. And I hate dongles. I managed to have an internal mod installed for all my consoles and very happy with the results. On 12 Jan 2023, at 12:10 PM, Traxus7 @.***> wrote: 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.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

raed143 avatar Jan 12 '23 09:01 raed143

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.

anherooftime69 avatar Feb 01 '23 20:02 anherooftime69

There is only one authorized vendor in Aliexpress called retroscaler. The others just copied the open source instructions to profit out of them.On 1 Feb 2023, at 11:31 PM, anherooftime69 @.***> wrote: 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.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

raed143 avatar Feb 01 '23 21:02 raed143

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

davidreeves avatar Mar 05 '23 05:03 davidreeves

I've created a bounty for this issue.

AugusDogus avatar Mar 25 '23 02:03 AugusDogus

Can I somehow contribute to your bounty?

wtfbbqhax avatar Mar 27 '23 03:03 wtfbbqhax

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)

sskylar avatar Mar 31 '23 22:03 sskylar

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

Traxus7 avatar Apr 03 '23 19:04 Traxus7

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 avatar May 17 '23 16:05 icd2k3

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)

icd2k3 avatar May 17 '23 18:05 icd2k3

Yea, as a temporary solution I have installed multiple chips internally and they work fine. If you buy they esp32 chips separately they are cheap around USD 3 each and installation is very easy on the N64 (only 3 cables and 3.3 volts power so no need for additional converters. Sent from my iPhoneOn 17 May 2023, at 9:30 PM, Justin Schrader @.***> wrote: Just to confirm, this isn't a problem with multiple dongles, right @darthcloud? 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)

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

raed143 avatar May 17 '23 18:05 raed143

@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

icd2k3 avatar May 17 '23 18:05 icd2k3

I don’t have pictures with me now but it’s very simple. Each controller has 3 pins, one for power 3.3v, the middle for data and the third is neutral. For the data pin just follow cable instruction listed here and the other 2 pins will be for power and neutral for each chip. U only need to use one per chip. If you will installed 2 chips that obviously all will be used but if you’re going to install 2 then use the one for p1 and p3. I installed 2 chips and is working fine. I noticed that once I add the third controller I start getting issues but some faced issues even with the second controller.This account have posted diagrams, but mainly for using HW2 edition and are made very clear but you can easily use the same wiring but ignore connection points at the board and just use the controller port pins.Save those GBA boards that have the faulty and irreplaceable power management ICs by giving the CPU & RAM a new home and a new life … 😌Nostalgic Indulgencestwitter.comI will also advise you to install, red and blue led instructions are also available here to know which controller is connected and which board is still seeking a controller.I have also added some switches using the vents on the bottom (without damaging the shell) to turn on and off each board individually.  I hope that this helps you. But n64 board is the easier. 1 cable per controller vs 15 cable on Neogeo not to mention that each cable has to go through 5v to 3.3v converted so it’s 60 solder point per controller (120 for both) while n64 all 4 controllers only requires only 12 points + 2 for each additional board. Sent from my iPhoneOn 17 May 2023, at 9:51 PM, Justin Schrader @.***> wrote: @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...

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

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

raed143 avatar May 17 '23 20:05 raed143

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 avatar May 17 '23 23:05 icd2k3

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 avatar Jun 14 '23 22:06 icd2k3

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

icd2k3 avatar Jun 14 '23 23:06 icd2k3

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.

Traxus7 avatar Jun 16 '23 03:06 Traxus7