Universal Joysticks
Ok here is the other part of my arcade at home project, my Universal Joysticks.
This all started out with my Home MVS setup <link> where I needed to build joysticks play my Neo Geo games so I didn't have to buy the expensive AES joysticks. My original Joystick design worked pretty well, but unfortunately the physical construction was way too unstable to hold up to extended use (and abuse). Plus it only had the Neo Geo button layout. The goal of my new design was to:
My first problem I had when I built my first pair of sticks was that I used
.5" thick wood the whole way around. While this made them light, it also
made them a bit unstable because I couldn't use any heavy screws or nails
to keep it all together. As a result, after a while the top part of the stick
was just starting to come off. Plus the sticks were only compatible with the
Neo Geo and the PC (using a preliminary Neo Geo to USB converter I built from
a hacked Gravis pad).

My Old Design
So it was obvious that I was going to have to build a new set of joysticks. So my first step was to come up with a design to meet my specs. I decided on using 2x4 wood for the sides of my sticks, enabling me to use large nails and screws to give me a very solid base to work from. I would then use .5" thick wood for the top and bottom of the sticks. You can see my final design below:
The Layout (inner circles are drilling holes, outer circles are external diameter on top)
Fully Dimensioned layout
There was a problem I had to work out with this design. Using the 2x4 wood
for the sides drastically reduces the internal area you have to mount the
actual controls. So I spent two weeks in AutoCAD designing a good layout that
would give me enough room on the sticks to make them playable.
Top view of the Joysticks
.jpg)
Back view of the Joysticks (notice the latches, and the sets of 2" long nails and screws used to keep the base together).
Also notice how I used heavy duty screws and nails to keep this puppy together. The front and back of each stick has (4) 2" nails and (4) 2" screws to hold everything in place. This, combined with the 2x4's gives you and EXTREMELY sold base to work with. Also, to hold the top in place I used (4) 2" nails and (4) 2" screws, one nail and one screw for each side of the wood. That is in addition to the four 2" nails I used to put on the plastic covering for the top of the sticks. So my problems of the top popping off the stick during extended/abusive use are long gone.
To allow easy access to the inside of the sticks I made it so that the bottom piece can swing open, and be latched closed. This important because to have these sticks be as universal as possible, you have to flip some internal switches I installed, so having easy access to the inside is a very nice feature.
Another important note on building the sticks is what I used to drill the
holes for each component. The joystick itself has a 1" diameter hole
to maneuver around in. And the buttons require a 1 1/8" diameter hole.
I used boring bits I got at home depot to drill the holes.
A 1-1/8" Boring bit used to drill the holes for the buttons.
What I did to cut the holes as close to my specifications as possible was that I used a small drill bit to drill exactly through where the center of the hole should be (the smaller bits are inherently much more accurate on where you want to be drilling than the larger ones). This way I could just put the drill bit for the boring mechanism partially on the small hole made by the smaller bit, guaranteeing it to be in the right location.
There was one final building problem that I had to overcome. How would I
make the sticks comfortable to use? Well the easiest answer for me was plastic
sheeting. I found this at home depot and I've been extremely happy with its
results. Basically it's a relatively thin sheet of plastic that I cut down
to fit the top of the sticks. I then nailed it down on each of the corners;
I only used about 1" thick nails for this one, but I made sure they had
big "heads" to keep it secured. After it was nailed I had to cut
out my mounting holes. This was easy as I just turned the sticks over, stuck
the boring bits through the holes (the center guide bit can be removed) I
already made, and just drilled out the plastic that was in my way. And in
case you were wondering, yes I did this step before I put on the latched bottom.
Button Layout
One note in design that I think is important is how far the buttons are spaced from each other. On a MVS cabinet, you'll notice that the B, C, and D buttons are placed in a straight line, with equal distance from each other. The A button is generally placed below these buttons but at a smaller horizontal offset. You can see what I mean here:

It's too far away!!!
The first thing I wanted to do is keep that general layout,
but I find that the placement of the A button so far away to be uncomfortable.
Now I have pretty big hands (I can use a standard XBox controller comfortably
), so I felt that
moving the button just a little closer vertically would make the sticks a
lot more playable.
Now the second thing that I did was notice the fact that since the top 3
buttons are in a straight line, at equal spacing from each other, it can be
used as the bottom of a Capcom 6 button layout
.
So I added another 3 buttons above them to give me a layout compatible with
both Capcom and SNK styles. And finally there's that last button, to correspond
to the "A" button of the SNK layout. I added that one to have an
equal number of buttons to a Playstation or XBox controller, since they have
the largest number of buttons of all the "next generation" consoles
that I'd be using these sticks for.
Also you'll notice two buttons up top, those are for Select and Start, or
in the Neo Geo's case, they're for Coin Input and Start. Simply because the
MVS doesn't allow for a Select button in the sense that you AES people are
used to. Its select button is used to select games that are in the different
slots of a Multi Slot MVS boards. So I ended up connecting the pin for Select
on the AES controller pinout to the Coin input for the MVS board. Thus allowing
you to not have to resort to "Free Play" mode. Plus it's really
cool to hear that many quarter chimes go off, especially if you didn't get
to hear it often when you were a poor little kid at the arcade!
Putting it all together
Now what I did that was important with my wiring was that I used the AES
controller interface and I followed the AES controller pinout to a degree.
This was simple because the Neo Geo uses a standard DB15 connector, which
you can find at your local electronic shops. Which you can see here:
|
Pin #
|
Function
|
|
1
|
Common
|
|
2
|
N/C |
|
3
|
Select/Coin |
|
4
|
D Button |
|
5
|
B Button |
|
6
|
Right |
|
7
|
Down |
|
8
|
N/C |
|
9
|
D Button |
|
10
|
N/C |
|
11
|
Start |
|
12
|
C Button |
|
13
|
A Button |
|
14
|
Left |
|
15
|
Up |
You'll notice that the Neo uses two pins for the D button. You only have to wire up one of those, as the second "D line" was used for other SNK peripherals like the Mahjong controller. Now this is important because now I can plug Neo Geo home joysticks (the old style or the pro style) into my SuperGun and have it work just like my home built sticks would. As a note, you can NOT plug in Neo Geo CD pads into the SuperGun and have them work, more details on why later.
Now that you have the pinout and the DB15 connector, you'll also need some cables that have 15 wires inside of it. It's kind of common sense, but it's something that should be pointed out. What you want to do with this is solder up each wire to a pin on the DB15 connector, and then use an Ohm Meter (it's a setting on most volt meters to measure electrical resistances) and touch the end of the connector on each pin of the DB15 pinout, and match that up with the corresponding wire on the other side of the cable. When you have both ends of the cable on the Ohm Meter, it should come up with a tiny value for the resistance, instead of saying some message about no connection. Obviously you'll want to put the 15 conductor cable through a small hole drilled on the back of the sticks before you solder anything up.
.jpg)
The inside of the Joysticks.
Now I'm not going to give you wire stripping instructions, or a "how to solder" lesson because it can be mildly dangerous so you should talk to a friend/parent/teacher who can solder to give you some help with this aspect of it.
As a side note, you can minimize the amount of actual soldering that has
to be done by using .187 quick connect you'd find at Radio Shack for connecting
to the output "pins" on the joysticks and buttons. Actually this
is the optimal way to hook everything up because it really is a cleaner way
to do it than soldering. Of course I learned of this months after I had finished
the project, but at least my way works. It's nowhere near as clean, but it
works without problems. However, since I did not build the sticks this way
I can't really cover how to hook everything up with these crimp connectors.
Also, if you're new to wiring up joysticks (then I suggest you go here)
then you'll be wondering what that "Common" connection is on Pin
1. Well that's the common voltage that's used on each component of the sticks.
****Time for a electronics lesson****
You see, each joystick, button, or whatever is just like an electrical switch. When you push the button or move the joystick in a direction, all you do is close a switch that lets the Common Voltage pass through the wire and go to your game console. So when the Neo Geo sees a voltage on Pin 5, it knows that you're pressing the B button.
****End of electronics lesson****
Just as an important note, we'll be using Ground (or 0 Volts) for our common voltage. Supposedly you can use +5V as your common voltage, but it did not work when I tried to use it on my MVS board. The AES and Neo Geo CD both use +5V as they're common voltage, however the Neo Geo joysticks will work with either Ground or +5V as they're common. The Neo CD joypads however do not work with Ground as a common, they actually require the +5V to operate.
Ok now that we're done with the Neo Geo part of it, we can move more towards
the universal side of things. As it stands now we've used a total of 11 pins
for our Neo Geo layout. That's 1 for Common, 4 for the joystick directions,
4 for the action buttons, and 2 for Start and Coin/Select. Luckily we only
require 4 more buttons and we have 4 pins left! So what I did was take the
unused pins from the Neo Geo layout (I only connected pin 4 as my D button,
leaving pin 9 unconnected), and just connected up the other buttons to those
pins. Below you can see my custom pinout:
|
Pin #
|
Neo-Geo
|
Enhancements for Universals
|
PSX
|
| 1 | Common | Common | Common |
| 2 | N/C | A Button Prime | L1 |
| 3 | Select/Coin | Select/Coin | Select |
| 4 | D Button | D Button | R2 |
| 5 | B Button | B Button | X Button |
| 6 | Right | Right | Right |
| 7 | Down | Down | Down |
| 8 | N/C | B Button Prime | Square Button |
| 9 | N/C | C Button Prime | Triangle Button |
| 10 | N/C | D Button Prime | R1 |
| 11 | Start | Start | Start |
| 12 | C Button | C Button | Circle |
| 13 | A Button | A Button | L2 |
| 14 | Left | Left | Left |
| 15 | Up | Up | Up |
Click these links for pics of the Button Layouts for each system:
*This control layout assumes you've activated the internal switch for more convenient Dreamcast use.
Well now that all the design is done, we have to actually wire up the sticks.
The first thing you want to do is find Pin 1 on your DB15 connector. Solder up one of the wires in your 15 wire cable to Pin 1, and use a Ohm meter to find the other end of it on the joystick side of the cable. Hook that up to the common input of one of the buttons or a direction on the joystick. What you'll want to do from here is daisy chain that wire all the way around to each of the common pins in the joystick.
*Note: If you want to make these sticks compatible with the Dreamcast and have the top 6 buttons function like they would in a Capcom fighter, please refer to the Dreamcast part of my Universal section for the correct wiring.
Then basically you have to solder a wire to every pin on the
DB15 connector, while making sure you solder the other end to the right button.
Just use the Ohm meter to check for consistency and make sure you're soldering
to the correct pin on the DB15 connector.
The DB15 Connector Soldered for the Universal Joysticks. It's hard but you have to make sure each wire is soldered to the right pin and to the right button.
Also, make sure you're soldering to the right connector on the button and on the directional stick. One of those connections is always equal to the common unless the button is pressed. The other one is what we want, it's an open circuit until the button is pushed. If you can't figure out which one is which from the markings on the button, just use the Ohm meter. Make sure the button isn't pressed and go between the common line and the one of the two connectors. If you get a continuity reading, then it's not the pin you want.
As a final cosmetic touch, I decided to use the button colors of the MVS layout, giving the joysticks a SNK feel. It's also kinda cool that the Capcom layout follows the SNK color setup. It's like poetic justice for toning down the SNK characters compared to the Capcom ones in Capcom vs. SNK 2.

DB15 Connector Pinout
