Cool, thanks guys. I had no idea where to start searching for this kind of thing.
I would prefer to use USB just because I need to stretch across a room, and 10ft USB cables are easy. If I can get a USB solution to this problem I also gain the ability to use any kind of joystick, including USB-ized NES gamepads. I thought about using IDE or Centronics parallel connectors but that seems like a lot more wiring work.
So lets say I've got two Street Fighter 2 sticks and four 4-way sticks (with two buttons each). If I'm reading it right, ControllerRemap will let me plug in the two SF2 sticks and designate them joysticks 1 and 2 and map all their buttons. Then I can unplug them all and plug in my 4-way sticks and designate them 1, 2, 3, and 4, and ControllerRemap will make sure MAME sees the first two as the "same" as the SF2 sticks... I just won't be able to press those extra four buttons of course. And if I for some reason just plugged in the stick I designated #4, I wouldn't have a Player 1 at all.
And it does this by rewriting the MAME.ini every time it is run, so I just make sure it runs before MAME does?
This seems like it would work really well for me, so long as all my joysticks are actual Windows joysticks, and not keyboards (which they will be). I could even sub in a gamepad or a regular USB joystick, although I'd be at the mercy of the button ordering that the maker of the joystick defined, right?
It seems like so long as I'm the one building the sticks, and the controllers I use define stuff consistently (ie: joystick1, joystick2, button1, button2, etc), the joysticks then become swappable?
What happens if I plug in, say, a steering wheel with three analog axes? I presume as I plug in a ton of different devices MAME just assumes then that I have a super duper Joystick #1 with a billion buttons and a bunch of analog axes?