In the neverending quest to get some as near as perfect as possible controllers for games, once you've got something that works well, you want to stick with it. However, consoles have this habit of being updated and not using the older peripherals anymore. The problem of the moment is using PSX DDR pads on the XBox 360 for DDR Universe. I had originally gotten a pair of FPS adapters which include PSX ports, and they worked reasonably well, but weren't perfect. However, when we updated our pads to some newer, better quality ones, the adapters stopped working. I tried contacting the manufacturer of the converter, but they claimed it must be a poor quality third party controller. Never mind that this is one of the best known pad manufacturers out there, clearly it was a problem with the pad.
So, not buying their line, I decided that surely I could do it myself. That's the whole point of making stuff, right? So into the world of microcontrollers I threw myself. Took a bit of learning, which has opened up a lot of new ideas to me, but with help from lots of places online, I was able to figure it out. The mid result to this point is a pair of PSX to DB25 parallel port converters. The DB25 port has pins for Vcc and ground, and then 14 pins for all the standard digital buttons on the pad (up, down, left, right, X, O, /\, , L1, L2, R1, R2, start, select). The buttons are typically held high (Vcc), but are grounded when the appropriate PSX button is pressed.
After getting to this point, I needed to test what I'd done. Therefore, I required a test platform. After a quick trip to Radio Shack, I had the necessary components, and put together another project box to interface to the DB25 and show the output by a set of LEDs. Press a button on the controller, the corresponding LED shines out.
While working on this, I also had the thought that it would be quite awesome to be able to use the newer Rock Band controllers back on the older PS2 GF/DM games. Obviously a bit of a problem since they're USB (360), rather than PSX. So, time to convert the other way. Haven't gotten too far on this one yet, but to support two USB guitars at once, along with the PSX drum controller, I'm looking at emulating a PS2 Multitap to send data for two guitars across one PSX cord.
So far, details about the Multitap protocol have been harder to come by, so it's down to reverse-engineering the data. In order to do this, I need to snoop on the communication between the Multitap and controllers and the PS2 itself. Therefore, time for the PSX Wiretap. It's an extension cable with each line hooked up to speaker terminals. This will allow me to let the system run as normal, but use a protocol analyzer to watch the communication and figure out just how to communicate data back to the PS2 for two controllers at once. Since first looking at this, I've now learned that there's more to it than I thought. The Multitap actually communicates over both the controller and memory port to coordinate controller data. Which makes my brilliant plan not quite so brilliant. Ah well.
So, since then I've been able to put the converters to use as part of a DDR pad converter. But not just any converter, a converter with an arcade-style interface. The idea is simple: PS2 to DB25, DB25 button interface, then DB25 to whatever I need. Here's how the finished product looks.
The box on the back can be swapped out for a variety of platforms. Currently I have boxes to convert to XBox 360, PS3, and even PS2. Why PS2? Well, why not? The buttons are too cool not to use. While I didn't take pictures, the buttons do also all light up, and when connected to a 360 or PS3, the controller lights around the center button on top light up appropriately. And while sure, the XBox guide button doesn't look much like a PS3 button, but it'll work just as well. Also, for the PS2 version, there's a switch on the back of the outconverter to switch between US and JP versions. It maps the green and red buttons to X and Triangle, or O and X, respectively.