Build Your Own Arcade Controls
SNESkey Arcade Interface

Original Site Mirror

SNESKEY is an interface by Benji York for attaching various controllers to your PC via the parallel port.  Specifically, it supports:

The most recent version also added support for arcade controls.  From Benji's page:
4/4/98 Arcade Controllers

Drivers for the other controllers are being added. I haven't had time to add documentation for the custom built arcade controllers. If you're interested, please contact me and I'll tell you about the (very simple) circuit and how to use it with SNESKey.

Unfortunately, there's been no update since 11/98, and Benji isn't returning emails.  Accordingly, I'm posting the information I have about the sneskey-arcade interface.  Also, I've mirrored the original SKESKEY page.  Should Benji resurface and ask me to take this down, it will disappear.


Benji sent me a small writeup when I asked him about it.  Also, two other folks have written me with their interpretation of how the interface works.  Because I haven't actually done it myself, I'm posting all three here.  In addition, I now have a mirror of the SNESkey web site online.

Benji's email to me

Louie's writeup

Amos' writeup

SNES-Key Mirror


Benji's email


Louie's writeup

[The circuit] is basically an SNES pad type circuit made from two 4021 CMOS I.Cs that connects directly to an LPT port, and joystick and buttons connect directly to the 4021 chips.

This is the circuit I use in my arcade emulation cabinet, and it works flawlessly for me.  It obviously requires some electronic experience though.  It also works directly with all EMU's (that i've tried) that support SNESpads :) It is basically a SNESpad type circuit with support for extra buttons in SNESkey, however these extra buttons are not supported by any other programs.

Click me for a larger view
The circuit
Click for a larger view


Amos' writeup

The funny thing is, with just a little tinkering, soon after I sent the e-mail message to you, I figured out how to use an "arcade console" (ie. a syncronous serial device based on a shift register) with any(?) amount of buttons using SNESKey.   Here it is in case you want to put it on your page:  [I do! :)  --- saint]  Use the

I will use an SNES Pad for this example.

First, put an [Arcade Config] section in your main SNESKEY.INI (the one located in the SNESKey directory.) Like this:

[Arcade Config]
Within this section, define the number of inputs...
NumInputs = 12
...and the name of each of these inputs:
Input0 = B
Input1 = Y
Input2 = Select
Input3 = Start
Input4 = Up
Input5 = Down
Input6 = Left
Input7 = Right
Input8 = A
Input9 = X
Input10 = L
Input11 = R
Now, to use this controller in a game, define the keys for each input as normal, use the standard format for an SNESKEY.INI  except, use [Arcade] through [Arcade 5] for the controller name. Use the same LPT pins for [SNES] through [SNES 5] to hook up your console(s):
ProgPath = c:\game.exe

NumShifts = 0
Shifts =

B = b
Y = y
Select = tab
Start = numenter
Up = up
Down = down
Left = left
Right = right
A = a
X = x
L = l
R = r

PS: Don't forget to tell them that Stephan Hans has the circuit on his Gamepads page (SNES equivalent circuit) [or view it right here courtesy of Stephan -- saint :)]

Click me for a larger view!
Click for a larger view

-- Home --