Build Your Own Arcade Controls Forum
Main => Main Forum => Topic started by: Dmod on July 12, 2007, 07:29:06 pm
-
OK, I've read all the posts and know that USB gamepads can register in a random fashion and the only way to guarantee a certain order is to plug them in one by one and wait to register but I'm still left with some odd behavior that I can't figure out.
(1) Regardless of the order I plug in my two ultrastiks and logitech steering wheel, and location within the USB hub, the wheel is always recognized as wheel 1 and my ultrasticks always come up in MAME as joystick 2 and joystick 3 (and in the correct order for Player 1 and Player 2). If I close MAME, disconnect the wheel, and restart MAME, the joysticks are now assigned as joystick 1 and joystick 2.
(2) With the wheel plugged in, even though, MAME assigns the ultrastiks to joystick 2 and joystick 3, MaLa assigns them to joystick 1 and joystick 2. For MaLa, the order at startup is important as the wheel will sometimes come up as joystick 1.
(3) It seems like unplugging and replugging everything doesn't alter the order in which controls get recognized. It seems like instead I have to go the device manager, delete all the human interface control information and then replug in order to change the order.
Does anyone understand why or how MAME and MaLa interpret and address usb controls and can explain this behavior? Is there a reference somewhere that I could read to better understand this?
-
I fought with this too. I have a Bluetooth controller that's recognized as a USB controller and persists in the USB stack despite restarts and reassignment. Only way to get rid of it is to remove it from the HID list. In my case, it's believed the controller has such a low permanet ID # that it always gets assigned as controller 1 regardless of what else is connected. I haven't seen any solid documentation on this though. I guess I'll have to try out my USB sniffer to know for sure.
I've been reading the USB documentation for another project but I still don't understand how or why the Microsoft USB stack does what it does. :(
-
I am pretty sure this is an issue with XP. Have you tried booting up windows, then plugging them in in order. Once windows sees them, it assigns the id. You can unplug them and move them around but windows should keep the assignment. Assuming this is gonna be permanent, you should let windows pick the setup and setup your controls based on that. If you don't remove anything they should stay stable as that.
-
I don't believe it's a windows issue. Logitech USB devices just seem to steal the first placement. I have some logitech USB gamepads that do the exact same thing. Really annoying. Back in the day it used to be that some games would only work if a joystick/gamepad was the first USB device. I think logitech has their devices grab the first spots so they work more easily in that situation. Really really annoying though. I've tried a bunch of different things and nothing seems to make them give up the spots. Independent of how they are plugged in or when or in what order they always take the first spot. So greedy.
-
I think Randy knows what's up better than we do. Randys controllers are the only USB devices I've seen that allow the buyer to choose the ID number. Do the toys supercede other USB devices, like the Logitechs, when dealing with Window assignments?
-
Don't the ultrasticks allow the user to program their IDs at any time?
-
Don't the ultrasticks allow the user to program their IDs at any time?
I've never noticed that. That's two then.
But that doesn't really resolve the problem with the Logitech wheel. I haven't purchased any of the upper end Logitech products recently, but I don't recall ever seeing Logitech with selectable ID's.
-
The ultrasticks allow you to program them, at least with respect to one another. But the IDs don't stay 1 and 2 when you plug in a logitech wheel or a red octane gamepad.
The logitech and red octane equipment always seems to come up as the first devices when they are plugged in, irregardless of the order in which you attach the devices.
-
I don't believe it's a windows issue.
This is a problem with Windows, or at least Windows is the reason for it happening. Dmod was asking why mame/mala keeps reassigning the controls when windows assigns the ID number.
Even if the logitech device is grabbing the usb slot, it should remain stable in that spot as long as you don't unplug it. If the logitech wheel wants the first USB slot, then let it have it. Sounds like your problem is you have to unplug it, the logitech wheel, and store it somewhere. A simple solution would be to leave it plugged in and inside your cab, should have some room in the bottom where the computer is. If it repeats the problem of assignment every time, then you might as well assign the sticks and wheel in Mala and mame. Might take a little while to reassign things, but in the long run you won't be deleting usb devices every time.
My cab did something similar when I was setting up the controls. I assigned everything with a mouse attached along with the trackball. Then when I removed the mouse, the trackball was reassigned. Instead of redoing everything, I just leave the mouse sitting in the cab with the computer.
-
The problem is the logitech wheel is going to be mounted on a seated platform that I can roll in front of my upright for driving games, so it's not really feasible to leave it plugged in all the time.
If the Logitech driver can steal the first slot, it should be possible to develop a similar utility that finds and recognizes your usb gamepads, allows you to specify the desired order of the devices, and reassigns the usb addresses.
You might still have to rerun the utility after hot-swapping a game controller but that would be easy to launch in a batch file whenever you start your front-end.
If anyone can point me in the right direction to develop something like this, I might be willing to give it a go.
-
Looks like Logitech's Wingman Team did some work on this problem. They list a utility that can be used to control joystick IDs here:
JoyIDs Utility (http://www.wingmanteam.com/latest_software/gadgets.htm#Caffeine)
I'll give it a try tonight.