Stepmania + Pads + I-PAC = solid response times!
StepMania love coming at you! This is a quasi blog and guide on how I got my dance pads to work good with StepMania thanks to the I-PAC, just keep in mind that my solution is not the cheapest in the world but then again I was not going for cheap. I was going for a solid solution when I moved my pads from PC to PC. Lets Begin.
A long time ago I was really into Dance Dance Revolution and eventually StepMania. I wasn’t any good at it I’d say I can get B’s and A’s on heavy’s when I was doing it non-stop. But I decided I wanted something better then a MadCatz soft-mat or the ultra-crappy OEM dance mats where I did actually twist my ankle because the mat flew out from under me during a song! Ouch!
So I did some research and actually I first bought some Chinese hard mats. BIG MISTAKE!! Pissing $150 (Plus $75 shipping and handling for how awkward they are to ship) away they were made with 1/8ths inch thick plywood with another 1/8ths inch thick ply for the pads. And a guy as myself around 280 lbs found these pads too flimsy. I suppose I should’ve read the Ebay disclaimer on them where it said:
These mats can hold up to 250lbs of pressure!
– China hard-mat Ebay seller.
Turns out that a 70lbs child can max out the pad as it’s your weight times three would be the pressure of the pad. Needless to say, these pads only took a total of a few months of abuse and i had to open them repetitively because the aluminum tape was sticking to the sensor PCB. It was a giant waste of money and time.
So! I bought a Cobalt Flux for $300 per pad with the arcade riser kit as shown in the picture. It was a god send! The only thing that would be better then this would be the actual Arcade Pads ripped right off of a machine, which the last time I seen those go up for sale by themselves as a ‘part’ it was almost $700 per pad (so if I wanted doubles. I minus well buy the whole damn arcade machine!). I’ve already burned a big enough hole in my pocket. And these things still work to this day (my pads acrylic is all skuffed to hell! but otherwise perfect!)
Well, I was getting bored with PS2 DDR so I wanted to hook my Cobalt flux Pads up to my PC. And from my soft-mat days I had this adapter. It’s a PlayStation to PC adapter that China makes for anywhere from $5-$15 dollars. I’ve hooked up my regular PlayStation controllers to these and didn’t really have much of a problem. However, the weird thing I encountered was it really depended on the PC and the USB chip-set behind it. Sometimes the latency is non-existent and I could play games on it just fine. However, when I hooked it up to say, a laptop and play StepMania, I found that my timing was off and I was getting mediocre scores even with the cobalt flux pad. While when I hooked the very same pad to the PS2, perfect timing hits all the time!
Well! Mark this as strike two from china! So I decided to go all the way. Screw another adapter. Lets find the fastest converter in the world for my cobalt flux pads. going through some MAME forums I found this bad boy.
Enter the I-Pac ve controller.
Enter the I-PAC controller (Website here) . After doing some research I found the I-PAC to be more then acceptable for the feeling of the hard-core gamer as even though it emulates a keyboard via USB it has an interrupt per key instead of sharing of ‘ghosting’ the interrupts. This means you can hold all 32 keys down at the same time and they would register at the exact time as just pressing down one. My Cobalt Flux just has pin-outs with a common ground. Thus, I can bypass the OEM Cobalt Flux PlayStation controller brick and pipe all of the wiring right into this unit.
The image pictured above is actually the I-PAC VE controller which is cheaper and had free shipping at the time I got it (around $32 US) and the only thing that separated this from the regular I-PAC is this one only had USB (Or so I thought) and this one resets it’s configuration to a default MAME mapping every-time you power it off (no problem I can re-configure the mapping in StepMania) So outside of lack of non-volatile memory according to Ultimarc the programming is incidental between the I-PAC and I-PAC VE.
Really? So, that means I could just re-add the PS2 keyboard connectors and it would work? The answer is YES! If you re-solder some PS2 keyboard connectors onto your I-PAC VE it works (Note: I only had one PC where it wouldn’t power itself on with the PS2 mod. 8 other PC’s I tried it with worked flawlessly)
Well, I got the thing. Now I need an enclosure to put everything together in. It so happens I have an ancient KVM switch that was purely mechanical. These types of KVM switches were stupidly dangerous! In respects that switching with a mechanical switch could blow up video cards and keyboards, which is why I never used the thing! So if I ripped it apart I wouldn’t feel overly bad about it.
So I began by clipping and moving wires around. And after about an hour of stripping wire and plugging everything in. I now Have my I-PAC VE controller inside of this KVM switch. I lined the whole bottom with electrical tape so that it cannot ground out and then added some Velcro-tape to the base and the board so the I-PAC wouldn’t move around at all. As you can see, the green wires are soldered right onto the I-PAC VE board (Just to let you know this will totally void your warranty with Ultimarc!) where’s the Orange (Player 1 PAD) and Yellow (Player 2 PAD) are plugged into the sockets onto the I-PAC itself. Now you’ll Probably notice a few more connectors going on here.
That is because I actually added 4 DB9 Male connectors. Why you may ask? Well, out of sake of it being multifunctional I decided to mod this into almost a 4-player C=64 joystick adapter (Which is useful for Amiga Emulation when playing DynaBlasters). and made the holes that used to be for keyboards only with a dremmel. The DB-9 connectors also serves as a selection box in the event I want to set one up. Instead it pressing those tiny buttons on the Cobalt Flux you can simply hit a plunger.
It receives its data and power from the USB connector in the upper left (using a male to male A connector just to be obnoxious ) OR I can hook up via the PS/2 connectors and get data and power that way.
Where it’s marked “A” is the player 1 port for DDR . Below it would be DB9 Player 1 and 2
Where it’s marked “B” is the player 2 port for the DDR. Below would be DB9 Player 3 and 4
I found this configuration gives me maximum usage out of my hardware as well as making it easy to make mame joysticks in the future. I also had people that were concerned if the length of the DB-15 connector would be a problem with the I-PAC. Actually the signal strength is -really- good even routing around a dance pad which on top of the 6 foot of VGA cable there’s another 6-10 feet of wire inside.
Here is the pin-out system that I used in my setup in case anyone wants to replicate it. All of the DB15 connectors are Part “A” and the DB9’s are either Port “1” or “2”
|GND||GND||A Pin1||1&2 Pin8|
|1Right||R Arrow||A Pin5||1 Pin4|
|1Left||L Arrow||A Pin4||1 Pin3|
|1Up||U Arrow||A Pin2||1 Pin1|
|1Down||D Arrow||A Pin3||1 Pin2|
|1SW1||L-Ctrl||A Pin10||1 Pin6|
|1SW2||L-Alt||A Pin9||1 Pin9|
|1SW3||Space||A Pin8||1 Pin5|
|1SW4||L-Shift||A Pin13||2 Pin4|
|1SW5||Z||A Pin6||2 Pin3|
|1SW6||X||A Pin7||2 Pin1|
|1SW7||C||A Pin14||2 Pin2|
|1SW8||V||A Pin15||2 Pin6|
|1Start||1||A Pin11||1 Pin7|
|1Coin||5||A Pin12||2 Pin7|
For The other column it’s pretty much a mirror of the first, DB15 is port “B” and DB9 connectors are ports “3” and “4”
|GND||GND||B Pin1||3&4 Pin8|
|2Right||R Arrow||B Pin5||3 Pin4|
|2Left||L Arrow||B Pin4||3 Pin3|
|2Up||U Arrow||B Pin2||3 Pin1|
|2Down||D Arrow||B Pin3||3 Pin2|
|2SW1||L-Ctrl||B Pin10||3 Pin6|
|2SW2||L-Alt||B Pin9||3 Pin9|
|2SW3||Space||B Pin8||3 Pin5|
|2SW4||L-Shift||B Pin13||4 Pin4|
|2SW5||Z||B Pin6||4 Pin3|
|2SW6||X||B Pin7||4 Pin1|
|2SW7||C||B Pin14||4 Pin2|
|2SW8||V||B Pin15||4 Pin6|
|2Start||1||B Pin11||3 Pin7|
|2Coin||5||B Pin12||4 Pin7|
Explanation of the way I wired DB9
It is noted that Pin 7 is usually +5v power, and thus you shouldn’t wire a mame or DDR pads to ever go to Pin7 Just in case you DO hook it up to a retro PC. The only reason why I hook to Pin7 is to get an extra button out of it for my 4 player setup for (start,select) buttons. However, If I wanted to hook up a retro-joystick such as an atari or an amiga joystick, pin7 is harmless. Also, Sega Genesis joysticks will have limited usage of it’s buttons because they used a shift register circutry to sort of ‘MUX’ more buttons down one line.
|Pin Number||Action||PS2 Action|
|13||N/C||Right Rear Button 1|
|14||N/C||Left Rear Button 2|
|15||N/C||Right Rear Button2|
In this wiring I added pins 13-15 to the wiring system, Allowing my to hook up MAME style joysticks if i so desire for fighting arcade games or whatever else I want. Also Note that R-Analog and L-Analog only reflect the buttons when you push down on the analog stick. the I-PAC controller is not capable of reading analog signal.
Also when using this setup you will need some FULL VGA cables with all of the pins going from one side to the other. if the cable looks thin then chances are all of the ground pins are wired together in a VGA analog setup which case that will not work! To test this always perform a continuity check with your volt meter.
I just got some e-mails about the design of the Cobalt Flux and how there was actually two versions of my pad that was released. Version 1 Cobalt Flux pads supported a DB9 connector going to the controller and apparently only had 6 buttons (up,down,left,right,upperleft-corner, upperright-corner) I unfortunately do not have any info on how the DB9 connectors are setup on the Version 1 model of the Cobalt Flux pads. It most certainly does not follow the designed mentioned in my document and the ground pin maybe on pin 1 rather then pin 8 like how it is on Atari/C=64/Amiga joystick configurations.
Reading through a lot of old DDR forums it appears a lot of the first generation Cobalt Flux V1 control boxes had a tendency of failing. Although the pad itself is perfectly fine either the wiring harness or control box simply stopped working on their Playstation 2.
Since I do not know the pin-outs my best suggestion is to grab a volt meter and find the ground pin (If it is anything like the version 2 Cobalt Flux ground pin will be pin 1) map out your buttons and arrows, and simply adjust your DB9 connectors accordingly to a new control box such as a I-PAC series controller.
If anyone has the pin-outs for the generation 1 cobalt flux pads which have a DB9 connector on them please contact me or reply to this blog and I’ll be sure to put it up for everyone to see.
This was done for two reasons, one, a cleaner design with RJ-45’s and two, not all VGA cables were created equally to extend the DB15 connection to the cobalt flux.
The end results?
I can’t complain really! My stepmania now runs flawlessly with response times. On a side note I am able to test out all of my C=64 joysticks which I actually found out some of the copper wiring has failed on a lot of my 15+ year old sticks which I was able to see using the I-PAC diagnostics tool. The I-PAC controller is pricey. And with adapters for game consoles it can make it even more pricey (Almost $100 for just controller action) . To me the I-PAC is well worth it because if it’s solder-less connectors and rock solid diagnostics software. You could even spend a little more money to get past the ‘I-PAC-ve’ series and pre-program your keystrokes so you don’t have to reconfigure your keyboard commands in Stepmania.
And It was a fun hack. The only other things I would like to do to this is add the LED headers to the outside of my KVM and maybe a good paint-job. That’s about it.
I hope you found this helpful! And good luck with keeping your old pads alive with new gear!