The V1 Prototype of the Sat-2-360 Controller Adapter is now finished after two and a half months. The intent of the adapter was to be able to use a completely unmodified Sega Saturn controller to play Xbox 360 Games. More specifically I wanted a good 2D gamepad to play upcoming Xbox Live Arcade titles such as Street Fighter 2 Hyper Fighting and Ultimate Mortal Kombat 3. Thankfully I was able to complete my adapter before either of the game have been release... so I'll be ready The adapter accomplishes everything I set out to do and then some. Seeing as I used a Wireless Xbox 360 controller the whole adapter is wireless and runs on batteries.
Here's a Video of the adapter in action:
The Adapter connects to the Saturn controller using a cut up controller cable extender I wired it into a pin header keeping the same order as the controller socket. From there it goes into a Microchip PIC16F690 Where the Saturn's Joypad protocol is decoded into a parallel output. I was able to do ever button but the "Start" button due to the PIC chip being one I/O port shy of what I needed, being the least integral to gameplay that was the button that got the axe. Once the data is in Parallel form you could easily adapt the Saturn controller to just about anything you wanted to. Adapting it to a Wireless Xbox 360 controller was a particular challenge however. MS utilizes an interesting button matrix to help reduce the pin count of their controller's encoder chip. This means that the buttons don't work with a simple logic high/logic low interface. Without the equipment to properly analyze the controller to work with this unique system I simply used an array of Analog Switches that emulated a button press on the 360 controller. This proved to work well.
From there the outputs of the Analog switches are wired into another custom pin header and into a ribbon cable which connects to the appropriate points on the Xbox 360 controller. I chose points that were easier to solder to as opposed to points that were apparent as to what they attached to, and for the sake of easier construction.
The whole thing is on a breadboard at the moment. I plan on eventually revisiting this project and using a larger chip build an adapter that will work with other types of controllers such as the Saturn Analog controller or perhaps older controllers like the NES and SNES. At that point I might clean up the circuit into a professional looking PCB and project box.
Saturn Joypad Protocol and Pinout: http://www.gamesx.co...data/saturn.htm
RDC's Xbox 360 PCB Scans: http://forums.xbox-s...howtopic=512342
PIC16F690 Code: http://www.web-nine....at-2-360_V1.txt
PIC16F690 Hex: http://www.web-nine....0/sat2parV1.HEX
Circut Diagram: http://www.web-nine....0/Sat_2_360.png
Prototype Circuit: http://pictures.xbox...ler/proto2a.jpg
360 Controller Interface: http://web-nine.com/...360/ctrlrbn.jpg
Special Thanks to:
Zero_Cool for helping me understand demultiplexers (and why they won’t work for this )
pablot for the MCU advice
RDC for the awesome Controller PCB scans, and helpful advice throughout the project not to mention the Awesome logo for the project.
SaturnAR the wealth of knowledge about Saturn controller protocols and helping me optimize my PIC code.
And everyone else that provided advice or encouragement
Edited by twistedsymphony, 19 July 2006 - 01:17 PM.