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:
- SNES
- NES
- NES Four Score (4 player adapter)
- Sega Genesis (3 and 6 button)
- Atari 2600 joystick
- Atari 2600 driving controller (like the paddles, except spins all the way around)
- PC Joystick (mainly for compatibility testing, the support isn't that great)
- Gravis Game Pad Pro
- MS Sidewinder
- Playstation
4/4/98 Arcade ControllersUnfortunately, 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.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.
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
(Click for a larger view) |
|
One shows how the chips are connected, the other shows how each button (or joystick) input is connected to one of the "P" pins on the chips. The inputs are read from P8 to P1 on the first chip (the one on the bottom) and then from P8 to P1 on the second. It should be easy to see how to expand the circuit if more than 16 inputs are desired. I would recommend constructing each seperate joystick with it's own copy of the circuit instead of just chaining several together.
The i/o lines in the diagram are to be connected to the parallel port pins according to the following table (see circuits.ini for more info and to change this [included in sneskey - saint]).
Line | Pin
------------
clock | 2
reset | 3
data | 10
power | 7, 8,
and/or 9
Only the Windows version of SNESKey currently supports the arcade controller. Look in the main SNESKey.ski file to see where to name each of the inputs (ie. Up, Down, A, B, etc.).
After you have named the inputs, just construct an SKI file in the normal manner (see the example SKI files [in the sneskey download - saint]).
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.
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 = BNow, 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):
Input1 = Y
Input2 = Select
Input3 = Start
Input4 = Up
Input5 = Down
Input6 = Left
Input7 = Right
Input8 = A
Input9 = X
Input10 = L
Input11 = R
[Config]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 :)]
ProgPath = c:\game.exe[Arcade]
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