Version 2.5 released! Currently tested and supported systems:
-Sega Genesis (3 and 6 button)
Coded and believed to work, but not tested:
-TurboGrafx-16 (2 and 6 button)
-X68000 (2 button)
-Most old DB-9 controller systems from the 80’s like Commodore 64’s.
- On-the-Fly button remapping using a Programming button: Hold the button you want to remap, press the programming button, hold down the buttons you want the original button to be (or none if you want the button disabled), release the programming button.
- Ability to make your mappings permanent: Hold down the programming button, press start three times. Mappings are different for each system, so your NeoGeo mapping can be totally different from your PSX mapping.
- ‘Tournament Mode’ to disable or enable the Start button via keypress: Hold Select and Start, press Up to enable Tournament Mode. To disable Tournament Mode, hold Select and Start and press Down. Tournament mode settings are NOT saved, so Tournament Mode is always disabled when you first plug the stick in.
- ‘Turbo’, adjustable button rapid fire: Press Program by itself, and hold it. Press and hold the button you want to change the speed of. Press Up to make the speed faster, and Down to make the speed slower. ‘No turbo’ is the same as ‘fastest turbo’, so to turn it on initially, you’ll need to go Down.
Imagine you buy a new Sega Saturn, and you’ve never had one before. You do already have a fighting stick with the UPCB in it that you play all the time on other systems. In order to use your stick on the new Saturn, you would need 1. A Saturn plug, either from an extension cable or a sacrificed or dead controller. 2. A DB-15 plug and hood. Total cost to play the stick on the new system, somewhere between $1 and $5. That’s the goal of project, to support as many systems extremely cheaply.
Months down the road, a new game system, the XCube3, comes out and you want to play your stick on it. The XCube3 wasn’t even out when your UPCB was made, so you think you’re stuck. But, as soon as the controller protocol is supported in UPCB, here’s what you have to do: 1. Plug the stick into your PC with the same cable you use to play PC games and mame. 2. Run a program that updates the UPCB 3. Make a cable just like above. UPCB can be updated anytime without even needing to open the stick, and with the same cable you’ve already got.
Here is the updated schematic. Sorry for the huge size of the image.
Here are the ‘Gerber’ files for the Rev 2.1 board. Any PCB fabrication service can use these to stamp out as many as you could possibly want.
The core is the 18LF4550 I/P ‘PIC’ microcontroller. The crystal is 20 MHz, and the unmarked resistors are just pull-ups, so any high resistance resistor will work (go with 4.7k ohms). C1 and C2 are just small ceramic caps; I’ve been using 0.1uf. Put them as close as possible to the two pairs of power pins on the PIC. The location and value of the C3 electrolytic cap is not too important; I’ve been using 33uF caps.
Here is the sourcecode using MPLAB and Microchip’s C18 compiler : http://marcuspost.com/downloads/upcb/UPCB_25.zip
Procompiled .HEX files are in there under the ‘_output’ directory.
I’m using a new naming structure for the .HEX files. Check the ‘Which one do I use’ file to make sure you use the one that matches your setup.
How to Assemble a UPCB: http://www.instructables.com/id/ETNJA2CF23Z33K8/
How to Create a Console Cable: http://www.instructables.com/id/E9SM77YF1Y7H1KH/
How to Create a USB Button Select Cable:http://www.instructables.com/id/EO5ISEYF2FRV8XH/
How to Upgrade the UPCB Firmware: http://www.instructables.com/id/E9A4ERZF2FRV8RG/
How to Install a UPCB in a HRAP2: http://www.instructables.com/id/EDZKJN6F2NOBR7S/
How to Piggyback a Dreamcast Controller:http://www.instructables.com/id/ELYFIVKF54HJ3K4/
How to Piggyback an Xbox360 controller:http://www.instructables.com/id/How-to-Piggyback-an-Xbox360-controller-on-a-Univer/
Q: So how does the UPCB know which system it’s connected to?
A: Pins on the 15 pin connector that aren’t used are tied either high or low. Based on which pins are tied where, the UPCB detects which system it is and acts accordingly. The pinouts must match what the UPCB expects exactly. The see the currently assigned values, check the systemselect.txt file in the ZIP.
Q: How would I make one of these?
A: Any way you like. You can make one one a breadboard, on some type of prototyping board like the one I’ve been testing with, etch your own PCB, have a PCB fab house make a PCB for you, whatever. Fabbed PCB’s are available for sell: http://forums.shoryuken.com/showthread.php?p=3991373#post3991373 The files required to have your own manufactured are available here: http://www.marcuspost.com/downloads/upcb/Rev2.1.zip
I highly recommend having a professional fab house make them; doing that many vias by hand etching your own from those files would suck.
Q: How do I program the PIC in it?
A: Once the bootloader has been programmed on it, you use the USB cable to update the PIC.
In order to get the bootloader on it, that would require a PIC programmer of some sorts. Since it’s only needed once, you just have to find someone to program it that first time. I’ll happily program a PIC for anyone who sends them to me, as long as they send me postage for mailing it back.
Or you can get a PIC programmers and start learning microcontrollers. They’re kinda fun.
Q: What’s the deal with PS2 support?
A: The UPCB currently works marvelously for every Playstation 2 game I test it with. Previous problems have been eliminated. As of yet, I have not found any converters it works with, and since I’ve tested something like 4 different converters (old PSX->USB Radio Shack model, Pelican PS2->PS3, Innovation PS2->DC, and Magic Box PS2->Xbox) and none of them worked, I do not have high hopes for any other converters to work. [Side note: Magic Box and Innocation converters work just peachy with the UPCB’s Saturn support.] This will be addressed in the future.
Q: You have USB. What about PS3 support?
A: PS3 support is in and working, including PSX button support. Tested successfully on 20GB, 40GB, and 60GB models, including backwards compatibility and PSX button.
Q: How is this different from a project box setup?
A: Good question. First of all, you can use project boxes with the UPCB. Just ground pin 9 so the UPCB thinks its connected to a Neo-Geo, and make sure the project box pinout matches. So, all of the advantage of a project box setup are there. Here’s a short list of what makes the UPCB better.
- If you do use project boxes, then any project box interface you make will have the benefit of programabilty (once I code programming into it)
- Project box setups require a sacrifice controller, a project box, and a jack. For systems supported by the UPCB, you only require a cable (third party extension cables are tons cheaper than new controllers), a jack, and a hood (which are tons cheaper than project boxes).
- Most project boxes can’t really be securely attached. (GoPodular’s IDC cable and velcro method is one exception) Using a D-Sub hood with thumbscrews means you can attach the cable very securely. If you tripped over an attached serial cable, you’re PC would go flying. Project boxes have pressure and weight that can cause them to loosen.
- Soldering wires into the D-Sub jacks is much cleaner and easier that some pad hacking.
- If you do use project boxes and are using the optional Programming button, then any project box interface you make will also have the benefit of on-the-fly button remapping. These mappings can be permanently saved like every other system.
- Tournament Mode is still usable with project box interfaces.
Q: What would this cost for me to make?
A: The most expensive item is easily the PIC. However, you can sample 3 of them for free from Microchip.com. The rest of the parts are pretty cheap. A Digikey shopping list is already in this thread; also kits with everything but the PIC are available to purchase: http://forums.shoryuken.com/showthread.php?p=3991373#post3991373
Q: What about Xbox360 support?
A: Unless someone cracks the protection Microsoft uses to make sure you use their controllers, it ain’t gonna happen. You can still use a Xbox360 project box, or piggyback a Xbox360 PCB. More on the piggybacking in a bit.
Q: What about Dreamcast support?
A: Dreamcast is gonna be hard, but I havent given up hope on it. For a good while, Dreamcast won’t be supported, but I hope to figure out how to do it eventually. You can still use a Dreamcast project box, piggyback a Dreamcast PCB, or use the working Saturn support with a Saturn->Dreamcast converter like the Innovation.
Q: So what’s this about piggybacking?
A: Both of the main problem systems (DC and X360) use two wires for communication. So, it is possible to use an analog switch IC to ignore the wires from those controllers until we want them. What this means is that you can install the UPCB along side a DC or X360 PCB, connect them together all clean inside your stick, and have a Dreamcast or Xbox360 cable connecting to the jack on the back like normal. Unless they open the stick, it’ll look just like the DC or Xbox360 was naturally supported.
Piggybacked systems can NOT take advantage of button remapping, however they CAN take advantage of Tournament Mode.
Q: What about the Xbox?
A: Xbox is now tested and working. There is not, nor will there likely ever be, support for Xbox memory cards or headsets.
Q: Gamecube? N64?
A: Gamecube support is in and works awesome. N64 should be dead easy to implement, but I don’t have one to test with. As soon as I do, it’ll be in.
Q: What’s this about Smash Brothers working with a stick?
A: There are two Gamecube modes specifically for Smash Brothers: one simple mode that tries to capture the ease of the Wiimote-Only control scheme from Brawl, and another advanced mode that tries to make everything possible. Please read for more information, and feel free to suggest improvements. http://forums.shoryuken.com/showpost.php?p=5171213&postcount=477
Q: How big is the PCB itself?
A: 82.2mm x 67.3mm. Assembled, its about 14mm tall depending on the components. One of the connectors hangs over the edge a little, making the assembled length about 85mm.
Q: What is the option Programming button do?
A: Support for recording and playback is expected, but is not implemented yet. The current features of having a programming button are:
1. Using a USB Button Select cable, you can press this instead of Start & Select to go into bootloader mode for reprogramming the PIC.
2. On-the-fly button remapping. Press the button you want to remap, hold down the programming button, hold down the buttons you want the original buttons to press, or none at all if that’s your taste, and release the programming button. You can make your mappings permanent for that system by holding the programming button and pressing Start 3 times.
3. Turbo mode. Press and hold Program, then press and hold the button you want to adjust the rapid fire speed of, and move the stick up or down to adjust the speed. ‘Fastest’ is the same as no turbo at all.
Q: I hear about this ‘button select’ stuff, like the ‘button select USB cable’. What other options are there when plugging the UPCB in?
Q: I’m having a problem updating the firmware with Vista. I’m receiving an 'error 997’
For those who need help assembling the rev 2 board, here is the board with the resistors and capacitors labelled, and the pinout for each direction/button. Buttons are labeled in their usual Street Fighter name: JAB, STRong, FIErce, SHOrt, FORward, ROUndhouse, SELect, STArt. EX0 is the optional fourth punch button, EX1 is the optional fourth kick button.