One controller detected as two - MacOS

I’m having an issue where one connected controller is being detected as two in RetroArch. This happens with a knock-off Chinese PS3 dual shock controller, wired or wireless, and with a genuine Sony PS4 wired (I didn’t try wirelessly with the PS4 controller as I did not want to unpair it from the console, but I am going to guess I’ll have a similar problem).

Sometimes RetroArch correctly detects a single device and assigns it to player 1, but usually a second one is detected and assigned to player 2. Either way, the second I start a game, the controller is assigned to both player 1 AND player 2, controlling both players simultaneously (if the game supports simultaneous play)

I have found a similar issue here, but I think it was for another OS, and as such I couldn’t figure out how to investigate on my Mac.

This is on Mac OS High Sierra 10.13.6 and RetroArch 1.8.5

If I run a standalone Mac program called “Controllers Lite” I can see the connected controller. Only one is listed, so I don’t think MacOS thinks there are two controllers.

I’m guessing this has something to do with RetroArch’s auto config. How can I turn off auto config and instead add controllers manually, one at a time?

Or am I off base here? Any other ideas?

All help is greatly appreciated. Thanks!

  • Jeff

It’s probably not a result of autoconfiguration, exactly, but you can turn it off in settings > input > autoconfig OFF. You can also go to settings > input > port 2 binds and set the device index to ‘disabled’

I already tried turning off binding to controller 2, which worked with a single controller connected, but when I connected another controller, the duplicate for controller #1 was assigned to controller 3. I suppose I could then turn off binding on three, but I’d rather try and figure out why controllers aren’t being detected twice.

Also, seems to only be a problem with PS3/PS4 controllers. Connecting an 8Bitdo NES30 seems to work properly.

I’ll try turning autoconfig off and see if that changes anything.

I don’t seem to have the ability to turn off autoconfig, or at least I didn’t find the option under Settings > Input. Is this something unique to the mac version of RetroArch?

No, it might be considered an advanced setting, in which case you need to go to settings > user interface > show advanced settings ON.

Thanks! Found the option. Unfortunately it didn’t fix my issue. Retroarch is still detecting multiple controllers when only one is connected. I’m going to try using an older version of RetroArch. I swear I once had this working – same machine, same controller, but an older version of retroarch.

Will report back my findings.

Sadly reverting version 1.7.5 of RetroArch didn’t fix my issue. I also tried completely nuking my Bluetooth settings and re-pairing the controller, but I still have the problem.

I can confirm that this problem happens with the genuine PS4 controller as well, wired or wirelessly. Problem does NOT happen with 8BitDo controllers.

I’ve used Retroarch for a few years on Windows, and just started using it on MacOS recently. I’m at stable 1.8.5 for both, and I’m definitely seeing this double-controller issue with the PS4 controller. It shows up as ‘Wireless Controller Configured in Port #0’ and #1. I’ve only been playing single-player games on MacOS, so I just disable the second controller, but the first time I tried a 2-player simultaneous game, the one controller mirrored all inputs for player 2. I have several other types of controllers I can test, but I haven’t gotten around to it yet.

Glad I’m not the only one with the issue! Hopefully we can get to the bottom of this!

I did a test connecting an 8bitdo SN30 Pro+, and it did the same thing (showed up as wireless controller #0 and #1). It’s exactly the same whether connected through USB or bluetooth. What’s weird is that the first time I tried to connect it while Retroarch was running, it briefly showed up as a Pro Controller. But nothing worked. It wasn’t until I unplugged it and replugged it, after holding down start+A (this is what 8bitdo says you should do to connect to MacOS), did it start to work. But it has the same issue as the PS4 controller: works but shows up twice. Otherwise, it works perfectly.

Try connecting the 8BitDo controller in Android mode instead… does that work?

I didn’t connect my controllers using START-A, and they’ve just worked fine, but I have older NES30 controllers, not the newer SN30 Pro

I can confirm that if I pair my 8BitDo controller in Mac mode (START+A) Retroarch sees two controllers. But if I instead pair the controller in Android mode (Just hold START, or START+X on newer controllers) then Retroarch see a single controller. I tried this several times and I got consistent results.

Interestingly, When I pair the controller in Android mode, it gets recognized by MacOS as “8Bitdo NES30 GamePad”, but if I pair it in Mac mode, MacOS sees it as “Wireless Gamepad.” Not sure if this adds any insight to above?

A bit more on this. I also tested Open Emu. All controllers were detected as single controllers – no double counting like I am seeing in RetroArch. But what I found more interesting was that if I pair my 8BitDo controller in Mac mode (START+A), Open Emu sees the controller as a PS4 Controller.

So maybe RetroArch also sees the 8BitDo controller as a PS4 controller when paired in Mac mode? Maybe this narrows the problem down to handling of just PS3/PS4 controllers in RetroArch on MacOS?

I recently did a firmware update to the SN30 Pro+, but I’m not sure it changed much. Interestingly, MacOS seems to have support for Pro Controllers, d-input (the setting for Android), x-input, and the normal mac mode… at least every mode on the SN30 Pro+ seems to be able to pair with bluetooth.

On the SN30 Pro+, Start-X is x-input mode, Start-B is d-input (Android), Start-Y is Pro Controller or Switch mode, and Start-A is the mac mode. Every mode except for Start-A will register as one input in Retroarch. However, it seems that analogue triggers only seem to work in Start-A mode. It does seem to be identical in layout as to how PS4 controllers are laid out, but the OS just calls it “Wireless Controller”. If I check Dolphin standalone, both PS4 and Start-A mode are reported as “Wireless Controller”, and the bluetooth app calls it that, too. So, more likely it’s not specific to PS3/4 controllers, it’s just that it will do that with any controller that connects as “Wireless Controller”. It is interesting that OpenEmu calls it a PS4 controller, but who knows how it comes to that.

I’ve just come across the same issue with a newly installed version of 1.8.5 on MacOS Mojave. My PS4 controller (Wired in) is being detected as controller #0 and #1.

Have you guys tried with the 1.8.4 (or earlier) stable to see if this is a longstanding bug?

EDIT: I opened an issue for this on github for better tracking: https://github.com/libretro/RetroArch/issues/10546

Hi hunterk, I tried it on 1.8.0 and 1.8.4, and I get the same thing, so it’s probably been there for a while.

1 Like

I tried with 1.7.5 (I believe… it was the oldest one I could download) and I had the problem with that version too.

1 Like

Just wanna add I have the same problem. RetroArch v1.8.8 on macos Catalina 10.15.5. When I connect my wiimote it’s detected as controller #0 and #1. The same wiimote works perfectly with openEmu.