You HAVE to use identical controllers for multiplayer games. PLEASE PROVE ME WRONG!
-
I just posted this total rant in another topic...but thought better of ruining a topic that wasn't mine, so here it is:
Proposition of fact: In my experience, most under ~$15 controllers (and even some higher dollar ones) show up as a generic "USBGamepad" in RetroPie. The problem is, as the Highlander Connor MacLeod puts it, 'there can be only one' of these config files saved in the system at once. So when you have multiple controllers (which could have different button layouts and positions, OR even two of the SAME style controllers could have a button designated as "button 5" on one and "button 7" on another which messes things up) - these ALL show up as this same "USBGamepad.cfg" config file. This means you can ONLY have one of these generic USBGamepad devices mapped correctly at a time.
When this is the case, which HAS to be extremely common, this means:
1.) You can't use controllers with different button layouts together to play multiplayer games because their button mappings will conflict with each other making 1 controller work (the last one you mapped), and the rest of the controllers won't work properly.
2.) You can't use controllers of different brands together, even with the SAME EXACT button layouts, if they map those same buttons to different number assignments (i.e. Left Shoulder being "button 5" on one SNES controller, and Left Shoulder being "button 6" on another brand SNES controller).
3.) You can ONLY use controllers of the SAME EXACT BRAND and SAME EXACT BUTTON CONFIGURATION together for multiplayer games (again, if and only if the multiple controllers use that same exact "USBGamepad" denominator in the system).
Can the above actually be true? For the last 3 versions of RetroPie I've been using real console controllers with USB adapters for my system. These all have different and unique config files so there was never a conflict. With Christmas coming up I'm making RetroPie systems for a ton of my family members, and using budget-minded controllers (like I'm sure 90+% of RetroPie users use), and everything has gone to hell. The only way I can get 2-4 player games to work is to use the same exact brand and model of controllers. Are the days where you could bring your controller(s) to a buddies house to play multiplayer truly over with RetroPie? That's a sacrilege in my book.
I want to furthermore point out that I've posted about this here and there was total silence for some reason. Another person posted about the same exact problem here, and again, silence for some reason. I've read a couple other topics in the last week or two on this forum and others as well. Complete and utter silence.
Mods, Admins, genius programmers, PLEASE address this glaring issue. Please prove me wrong! I beg of you. If I'm right about this (which I really hope I'm a dolt and there's a super-easy laymen-oriented fix), I can't possibly see how the RetroPie community doesn't see this as an absolutely HUGE problem.
As a saving grace in my trials, most of my NES and SNES controllers will play nice together when playing NES games ONLY (or other 2-button games). This is because on the majority of these the up/down/left/right and A and B buttons of both the NES and SNES controllers seem to be mapped to the same button number number so they can be used together. I've also noticed a couple controllers use the same "USBGamepad.cfg" config filename, but they spell it all lowercase "usbgamepad.cfg" which keeps it as a separate config file which is great since those can be mapped independently...but these two examples are the outliers overall.
-
Proposition of fact: In my experience, most under ~$15 controllers (and even some higher dollar ones) show up as a generic "USBGamepad" in RetroPie.
retroarch can identify controllers via the information the controllers provide. e.g.:
https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/iBuffalo_Classic_Usb_Gamepad.cfg# Hex vid:pid = 0583:2060 -> Decimal vid:pid = 1411:8288 input_vendor_id = 1411 input_product_id = 8288
if all your controllers have unique vid or pids, then you can set up a unique autoconfig.
if your controller shares a pid and vid with another you have, how can it be solved? if your crappy controller doesn't have any unique identifiers, then what can a program do? :P
-
I have seen something similar with devices using the same name. I have a Playstation usb adapter for 2 controllers and it doesn't work if I use an analog pad and a digital pad together. That doesn't really bother me because I have 2 PSX analog controllers.
That said, I have a generic NES and Generic SNES controller and both use the same "usb gamepad" name. You can use both in multiplayer without issue. I suppose you could argue that the NES controller is just a subset of the SNES controller though.
So let's start with what pads are you using? Perhaps we can look further once we know what style you are using (NES, SNES, Genesis, etc)
EDIT: @dankcushions got to the details before I could get my answer in. And yeah... not having a unique PID is a hallmark of cheap stuff. But still note what pads you have an perhaps if there is no software solution, the rest of us can look at our pads and give suggestions.
-
@dankcushions said in You HAVE to use identical controllers for multiplayer games. PLEASE PROVE ME WRONG!:
if all your controllers have unique vid or pids, then you can set up a unique autoconfig.
if your controller shares a pid and vid with another you have, how can it be solved? if your crappy controller doesn't have any unique identifiers, then what can a program do? :PiBuffalo SNES (which is $20.41 on Amazon now FYI) does have it's very own VenderID and ProductID and isn't a problem. It's brother of 16-bit, the highest-rated Sega Genesis 6-button USB controller by Hyperkin (made from the exact Sega licensed molds even!), happens to use the same exact USBGamepad.cfg that the cheap SNES style ones use for a bad example... These two examples are the higher-end models however.
What I'm talking about is problems with the most-common SNES controllers. And yes, they are cheap, but we're still talking about like the next 5 most-rated SNES style controllers on Amazon by companies like Gtron, Retrolink, iNNext, Tomee, Kiwitata (several of which I've tried - and the only SNES one I've used with a unique number is iBuffalo). THOSE cheaper brands are what MOST RetroPie users use (we, on this forum, are definitely in the minority using Japan-made iBuffalo's, and ~$40+ Xbox/PS/8BitDo controllers on our $35 Pi 3 computers). I've setup tons of systems for other people now and every single one said something to the effect of "I'm not paying $15-20 for EACH controller", and they get the above brands (or similar) - 2x for $12 or such. This is why I can't believe this isn't a bigger problem and I've never heard it mentioned before on a larger scale.
Is the problem that these manufacturers (who are selling thousands and thousands of these things...especially considering Amazon selling out of pretty much every USB controller lately and jacking up prices for the last couple weeks) DON'T get a VID number from USB.org? OR, is the problem that RetroPie's database of these unique identifiers isn't up to date? I have a hard time believing that a company like Hyperkin hasn't gotten their own block of VID/PID's for their products (and likewise for those other high-quantity being sold everywhere companies). The $3.33 shipped ones from China I can totally see not having a number on file.
I'm no manufacturer/engineer, but I thought that every single USB device, whether registered or not, somewhere in the code, or hardware, or bios, or whatever you call it, had it's very own unique number so the computer knows what to do with that particular device? I guess that's not the case? Or are the last 6+ brands of SNES controllers I've used using the same exact chip, with the same exact VID/PID? (and of course wired slightly differently for each button to further mess up my retro gaming life ;)
-
Is the problem that these manufacturers (who are selling thousands and thousands of these things...especially considering Amazon selling out of pretty much every USB controller lately and jacking up prices for the last couple weeks) DON't get a VID number from USB.org? OR, is the problem that RetroPie's database of these unique identifiers isn't up to date?
there's no database. it's just what the devices report through USB. if you run
sudo lsusb
in command line with both devices plugged in, and paste here, we can have a look. -
The devices report more than just a VID and PID number then, correct? Because you'll see different text show up for different controllers (like Mayflash, or RetroUSB, iBuffalo, etc), and the config files get named differently as well.
And I will run that command when I get home, thanks. I only have I think 2 different quasi-generic brands of SNES controllers at home now (maybe a third this weekend if it comes in) - gave the others away. I'll see what my Hyperkin Genesis says too as that one is also generic for some reason (think I have a Tomee? NES one as well). My iBuffalo we know is fine and unique.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.