After spending several hours trying to get my PSX controller to work with sneskey on my IBM Thinkpad 380XD in MS-DOS (unfortunately without success), I wrote my own PSX controller driver program (with ClaudeAI). Instead of using interrupts, it uses polling (just like sneskey /x does). It works perfectly for my!
Its like sneskey. You have a PSXKEY.ini file with controller and LPT port config. Simply copy PSXKEY.COM and PSXKEY.INI to your MS-DOS retro machine. Edit the ini for your needs and run PSXKEY. Its a TSR (resident) program, runs silently in background.
Usage:
PSXKEY install (reads PSXKEY.INI)
PSXKEY /U unload
PSXKEY /? help
INI: 'button = key' per line; 'port = 0x3BC' sets LPT. Sections [psx] and // are ignored.
Buttons: up down left right start select cross circle triangle box l1 l2 r1 r2
Keys: letters, digits, space return enter esc tab up down left right, ctrl alt shift.
Wiring LPT DB25 (male) -> PSX pad:
Pin 2 (D0) -> CMD
Pin 3 (D1) -> ATT
Pin 4 (D2) -> CLK
Pin 10 -> DATA
Pin 7-9 via diodes -> +V (3.3-5V)
Pin 18-25 -> GND
Original circuit/wire diagram is NOT working for me! Fix!
The original circuit was not working on my LPT1 port of my IBM thinkpad 380XD notebook. The test "sneskey.exe /x" doesnt react to any button. So I decided to figure out how this whole things works. First step was to use my 2ch oscilloscope (DS203) and check all signal lines. The problem was the slope of the CLK signal!
CMD and CLK Signal of PSX controller connected to PS1 console.
Fixed working circuit diagram
Changed the 200K resistor to 20K ! 10K was not working, 100K was not working.
BUT stop! After I told Claude AI my problem with sneskey we fixed the problem with the slope CLK. With the patched sneskey version its now working without using a resistor!
Download here (GDrive).
With this version (or with 20K resistor) sneskey /x works! But I can't start any game (or command.com for testing), it freezes. I’ve already spent hours trying to solve the problem, but unfortunately without success. It seems the issue lies with my IBM ThinkPad 380XD laptop. That’s why, together with ClaudeAI, I’ve written my own PSX controller driver program. Instead of using interrupts, it uses polling (just like sneskey /x does). It works perfectly! The program is called PSXKEY.
What happens to Benji York?
I ask this question to ClaudeAI and got this interesting answer:
What became of Benji York (creator of SNESKey, 1998)
The Benji York behind the SNESKey page went on to have a long career in software development and is still active today.
The trail connects cleanly. The original site was hosted on a Tennessee Tech University server (csc.tntech.edu), and in a later interview he confirms that the console-controller project dates back to his college years. During that time the emulation scene for NES, SNES, Genesis and similar consoles was taking off, and he had a side project that let people connect console controllers to their PC — that project was SNESKey.
His career afterward, roughly in order:
benji-york and describes
himself as a "disciple, engineering leader, and live production tech," the last part suggesting he is also involved in live production technology.
In short: the hobbyist who in 1998 wanted to get SNES controllers talking to a PC became a long-time Python/open-source developer and engineering lead.
Sources:
