This is the most complicated part of the project, allthough the electronics are still fairly straightforward If the idea of making circuits doesn't appeal to you, check out the 'Electronics Free Version' of the project.
Each of the 4 versions of the harness involve soldering onto the keyboard main IC
so we'll start by taking the keyboard to bits....
Take the outer casing off your keyboard , you'll see that it's basically a very small circuit board with 2 thin 'ribbon' like connectors going into it from the main body of the keyboard.
Take the main part of the keyboard to
bits, you'll see it consists of pieces clear plastic with
conductive 'tracks' on their surfaces.
This forms a matrix, which uniquely identifies a key when 2 lines are connected together. These lines go back to the small circuit board, one will have a lot of pins/lines, the other less.
All we have to do is trick the keyboard into thinking that a key has been pressed when a button is pressed inside the cabinet - which means we have to connect the 2 lines which identify the correct key when a joystick is moved or a button pressed in the arcade cabinet.
Controls in JAMMA (and most other) cabinets work like this:-
Each control line at the JAMMA edge connector is 'open' (not connected to anything) until a button is pressed/coin inserted or a joystick moved.
When this happens this line is connected to ground.
We need to convert this open/ground state into a key press.
Start by identifying the key you need pressed (say 1 Player start, key 1). Trace the 2 lines back from this key to the keyboard's circuit board. Solder on a wire to each of the 2 pins you've identified by tracing the line back.
If you touch these wires together - you should get a keypress.
IMPORTANT: Do NOT solder onto the plastic, you'll just ruin your keyboard
trace each line all the way back to the IC and solder onto the pins of that chip
Now we need to make a circuit which will connect these 2 wires when a button is pressed, coin inserted or a joystick moved in the arcade cabinet.
To do this we take a control line we're interested in from the JAMMA fingerboard into a small circuit with a resistor holding the line high (+5V) then through an inverter (7404) and finally to a switch (4066). The 2 wires from the keyboard will be connected to and acted upon by the switch.
Here's a block diagram detailing how the circuit works for one control line
(Click on it for more legible version)
You can see what a circuit for 3 lines (Player1 Start, Player2 Start and Coin1) looks like made up on a bit of stripboard here
You'll need to power the circuit from the keyboard's powersupply; otherwise you'll get 'keyboard stuck' errors when you turn the PC on. To identify power and ground you can either:-
Check the pinouts for you keyboard
check the voltage across a likely looking pair - one should be black, one red.
In the end I didn't bother using a joypad; I simply wired in all controls from the keyboard - but using a joypad does actually cut down on the amount of hardware you need to make.
Open you your joypad, you'll see that it consists of pairs of 'pads', these pads are shorted together when a button is pressed or the D-Pad is moved.
One side of the pad will be 'common' to all or some of the controls,
you'll need to identify which pad this is.
In the joypad I had , the 4 buttons had a common ground pad, and the 4 directions had a common 5V pad. So, wiring in this particular joypad means you need no hardware whatsoever to wire the buttons to the JAMMA fingerboard. Simply solder a wire from the 'non common' pair of each button pad and solder the other end to the correct pin on the JAMMA fingerboard.
(The ground will already be common because of the video)
So when a button is pressed in the cabinet - it'll complete the circuit for the button 'pad' on the joypad.
The directions were a bit more tricky, as it needed 5V rather than ground connected to it. The idea again is to take a control line from the JAMMA fingerboard, hold it high (5V) with a 1K resistor then run it through an inverter (7404). This will invert the signal correctly, but will leave ground connected to the pad when there is no joystick movement. So we need a diode between the pad and the inverter - to make sure only +5V get's through.
The circuit for one control line is as follows
(Click on it for more legible version)
You can see what it a circuit for the 4 directions looks like
made up on a bit of stripboard here
Full circuit diagrams for the PC2JAMMA wiring options are given on the next few pages