How does windows recognise a controller? (emulation rig query)


This isn’t a problem I’m having yet, just something I need to be sure of whilst I’m in the planning stage of my project…

Not sure if the full explanation below is required, but I suppose too much information is better than too little!!

I’m building a rig that will essentially be a mame/emulation machine.
It’ll boot directly into a frontend for the various emulators. The frontend and all emulators will be controlled directly by an arcade style USB joystick and buttons, no need for a keyboard and mouse.

However, there will be two individual arcade style joysticks and they won’t both be plugged in at all times.

In addition, there will be occasions that I will come out of the frontend and into the windows environment (via a wireless keyboard and mouse) to use iTunes, play the odd PC game or even to use other emulators that don’t suit the arcade style controls, and in that case I’d be plugging in a more suitable USB controller.

Now… both USB joysticks will use identical PCB’s.
I know that with both plugged in, windows will identify one as controller 1 and the other as controller 2, and that when it does I can configure the controls for the frontend and emulators accordingly (for navigation and separate 1 & 2 player controls). That’s great for when the rig is used exclusively with the frontend and the joysticks are permanently plugged in, but, the query I have is that if I’ve unplugged the arcade controllers, used a USB gamepad on a PC game and then switched off the rig… When I restart the rig and plug the arcade controllers back in, how do I ensure that the PC sees the arcade controllers as the correct controller 1 & 2 respectively?
Do I simply ensure that no other USB devices are plugged in and plug the joysticks back into the same USB ports they were in before? Does it make a difference in what order they’re plugged in?
Are there any other conflicts likely to occur that I haven’t even thought of yet??

If you’ve bothered to read all of the above, thanks loads, you’d be saving me a massive headache if you can help!! :slight_smile:


As long as they’re Plug-and play devices, then they should be fine. The emulation software itself is usually able to identify and track which specific controller is for player 1 and which is for player 2.

If your problem is a need to plug in more controllers, then have a separate USB port/hub ready and keep the main PCBs/Joysticks plugged in permanently.


Looks like I’ll be using two PS360 PCB’s.
The only times I’ll be plugging any other controllers in are when I come out of the frontend to use a different emulator, in which case I’ll unplug the joysticks and plug in the appropriate controller.
Obviously this will be removed and the joystick or joysticks (depending how many people will be playing) will be plugged back in when rebooting back into the frontend.

So going by what you’ve posted above, I should be fine :slight_smile:

Cheers dude :slight_smile:


I unfortunately cannot help you directly with your question but I will instead describe an “issue” that I have with MAME++ and Windows that might help.
Windows (7 in my case) seems to read the controllers in alphabetical order (device name), as a result the only way to have controllers always have the same “position” is by making sure controller the controllers are in in the proper alphabetical order.
The list in the USB game devices panel sorts controllers like this regardless of which USB slot it’s connected in (I tried switching ports around and achieved the same results).
My Xbox 360 controller will always be first on the list “Controller (Xbox 360 Wireless Receiver for Windows)”, while my PS3 TE Stick is named “PC USB Wired Stick 8838”, the SE is 8818 instead of 8838.
Upon loading MAME++ and setting the key-binds, if I do not have my xbox 360 controller on, then my TE stick will default to player 1. If I turn on the Xbox 360 controller, then the 360 controller will default to player 1 and the TE will become player 2. Turning off the 360 controller makes the TE stick default back to player 1’s key-bindings.

Surely there’s a way (there’s almost always a way) to rename the hardware device so the computer always reads them in a specific order.


It all depends on the emulation software really. Some can recognize that you’re using a certain controller while others will simply go by the archaic “joystick #” notation.

That said, it’s simply better to save yourself the trouble and have a separate USB hub ready so you can plug things in without having to unplug the PCBs.



It’s not ideal, but I’ve given it loads of thought and I think I’m going to go for a dual boot system. Straight into the front end on one, Itunes and the odd PC game on the other.

Not ideal, but not the end of the world.

Anyone know If I can have each windows install on a seperate HD, or if I have to have a partitioned HD to dual boot?


Usually, if you can bring up a boot from disc menu, you can boot up whatever OS you want from whatever disc. I booted Linux from a DVD on my Mac. Heh.


You can do either, Windows’ own boot manager should be smart enough to handle it since it treats each partition as a separate drive anyway.