Build Your Own Arcade Controls Forum
Main => Main Forum => Topic started by: Liveinabin on October 14, 2014, 08:33:29 am
-
Hi all
I've got a self built arcade cab with an encoder PCB for each player (I'm using MC Cthulhus) which worked fine when the heart of my system was an old modded Xbox. However, now I'm switching to a PC, a snag has cropped up.
See, each PCB has it's own USB cable. Both are plugged into the PC and they both read as gamepads.
Problem is, player 1's 'pad' sometimes reads as player 1 and sometimes as player 2 (and likewise with player 2s controls).
How do I get Windows (8, yeah - I know!) to understand that player 1's PCB should always BE player 1 (and likewise for 2). I think it has something to do with the controller IDs but I'm clueless.
I'm pretty much about to give up and buy something like an iPac (which, as a keyboard encoder, would make the problem irrelevant) but I love the multi system support the Cthulhu offers. So nice having a PS3 and Saturn in there too :)
Any thoughts?
-
Win8 vs Win7 vs XP shouldn't make a difference -- they all assign joysticks the same way. Basically, the order the system has ever seen them is the order they'll show up. (ie, first joystick is P1, second plugged in is P2, etc... but if you plug them back in again out of order, it'll mess all that up)
The safest way to keep it consistent is to get it the way you want and never unplug them again.
I have a similar issue with my cab -- I've got a pair of USB ports for wired controllers for a P3/P4 when I want to play a 4p game. P1/P2 can use the cab controls, and P3/P4 can use wired controllers. (Which may, someday, be a small arcade stick, but in the mean time are XB1 or XB360 controllers)
I need the left USB port to be P3 and the right to be P4 no matter what joysticks are plugged in, or what order they're plugged in.
Once I finish wiring up the cab, I'm going to write a utility to do it, if I can't find an existing one. I'll post on here if I end up doing that. (Windows knows the physical path any USB device is plugged in via -- like Root- Port 2->USB Hub Port 3->Joystick. Its also easy to reorder the joysticks in Windows, so the utility will just watch for USB connection events, determine if its a joystick and its physical connection port and assign it accordingly. Its actually a small amount of code to do it, but I won't have a chance to futz with it until I get the cab buttoned up more.
-
I believe DrVenture already wrote a utility (ControllerRemap) to help with this (in beta).
Here's an excerpt from his post: "I've been working out the kinks on a little utility I'm calling ControllerRemap. Essentially, it's my take on trying to solve the problem of what happens when you have a cab that supports USB input devices that might be disconnected or reconnected in various combinations at various times."
You can read more here: http://forum.arcadecontrols.com/index.php?topic=108767.0 (http://forum.arcadecontrols.com/index.php?topic=108767.0)
Hope this helps and good luck!
DeLuSioNaL29
-
Not sure if you were talking to me or Liveinabin... it'd probably help with his/her problem, but not mine. It basically looks like it fixes up windows based on the unique device ID. I want to fix it up based on whatever device is plugged into a particular port, so I don't have to keep track of which is which. (Ie, I can label a USB port "Player 3" and a USB port "Player 4")
-
Wow. Such comprehensive answers. Thanks all!
I see the problem now. See, I've been unplugging them when I shut the PC down. The reason for this is that my buttons are lit and my motherboard keeps powering them when the PC is off. So, I'm having to pull the USB out.
I guess I can hook up a switch to just kill the button lighting, then I can leave it all hooked up.
-
Built-in nightlight!
-
open the pads and TAPE the lights out :)