I thought writing this would be easier than pulling apart a saturn pad and sticking in the guts of a PSX controller. Turns out it probably wasn't. It currently works with real PSX and PS2 hardware, and all the converters I have available for testing ("3 in 1 PC joy box", "Super Dual Box Pro", a generic PS3 converter, and a Gemini GC/Xbox converter). The only known issue is with Ridge Racer Type 4, and may apply to other games that support a negcon. However, Wipeout and Wip3out appear to be fine. If you plug it in at a bad time the PSX may freeze.
Button mapping is the same as the official PS2 Saturn controller.
|PS Home (Start + Select + Up)||Start + C|
Construction is simple. The core of the converter is an Atmel ATTiny2313 microprocessor. The only other component is a power filter capacitor. A simple programmer for the microprocessor can be found here. The code is designed to run at 8mhz, the internal oscillator is good enough. I have the low fuse set to E4. How to connect everything:
|Saturn 5 (S1)||2||19||PSX 7 (SCK)|
|Saturn 4 (S0)||3||18||PSX 1 (DATA)|
|NC||4||17||PSX 2 (CMD)|
|NC||5||16||PSX 9 (ACK)|
|Saturn 7 (D3)||6||15||PSX 6 (ATT)|
|Saturn 8 (D2)||7||14||NC|
|Saturn 2 (D1)||8||13||NC|
|Saturn 3 (D0)||9||12||NC|
Source for the uC with the layout as above is here(BSD license), compiled hex file is here. Alternatively, I created a layout that matches the defaults in Capcom games (Z as R1, C as R2, L as L1, R as L2). The source is here, the hex file is here.
For some pinout and protocol stuff.
Near Future Laboratory For screenshots of a logic analyser showing the PSX protocol.
Curious Inventor For a very detailed description of the PSX protocol
GameSX For the data on the Saturn controller
Futurlec, where I bought my parts. Very cheap!