loading

SNES Super Advantage + Teensy = USB/PS3 Joystick

Featured
Picture of SNES Super Advantage + Teensy = USB/PS3 Joystick
The AsciiWare Super Advantage was a very popular joystick for the SNES. This tutorial will show how you can dust off your old Super Advantage joystick and use it with your PC and your PS3.

This is instructable is a modified version of http://www.instructables.com/id/SNES-Teensy-USBPS3-Gamepad/ , which uses a standard SNES controller.

You will need the following items:

Super Advantage Controller
Teensy 2.0 USB Board (http://www.pjrc.com/teensy/ )
USB Cable (http://www.pjrc.com/store/cable_usb_mini_b.html )
Soldering Iron
Solder and Flux
Wire Stripper
Needle Nose Pliers
Knife or Blade
Philips Screwdriver 
Mounting tape (or any double sided tape)
 
Remove these adsRemove these ads by Signing Up

Step 1: The Super Advantage Joystick

Picture of The Super Advantage Joystick
Remove the 4 rubber feet from the bottom of the joystick to expose all the screws. Remove all 6 screws and take off the bottom panel. In the picture, you can see the wire harness at the bottom. This is our focus for this hack. We are going to connect the wires leading out of the pcb to the Teensy USB development board.

Step 2: The Teensy USB Board

Picture of The Teensy USB Board
Think of the Teensy as a tiny computer we are going to program to behave like a USB/PS3 gamepad. All we have to do is hook up the SNES wires to it.

First, we need to put our program onto the Teensy. Download the Teensy loader application at:

http://www.pjrc.com/teensy/loader.html .

Next, download our USB/PS3 program for SNES from:

https://github.com/johnburkert/YeOldeJoystick/blob/master/hex/ps3_gamepad_snes.hex .

This file is the program we are going to run on the Teensy. It tells the Teensy to behave like a PS3 controller. If you are a programmer, feel free to grab the source code and make your own modifications. I also have a hex file that tells the Teensy to treat the SNES gamepad like a USB Keyboard, which is useful for some Android tablets that have USB input, but don't support gamepads.

Now that we have the loader application and the hex file, we need to put the hex file on the Teensy.

Step 1: Connect the Teensy to your PC
Step 2: Press the reset button on the Teensy
Step 3: Select the hex file you downloaded above with the loader application.
Step 4: Press 'Program'
Step 5: Wait a few seconds...
Step 6: Press 'Reboot'
Step 7: Wait a few seconds...
Step 8: You are done programming the Teensy!

Additional instructions for connecting and programming the Teensy can be found at http://www.pjrc.com/teensy/first_use.html .  

Step 3: Preparing the wire harness

Picture of Preparing the wire harness
We want to strip the wires so we can solder them to the Teensy and we want to preserve the rubber stopper so we can use it with our USB cable.

1. (Upper Left) Use a blade and cut down the middle of the rubber stopper (KEEP FINGERS AWAY FROM BLADE!)
2. (Upper RIght) Cut the cable off at end of the stopper.
3. (Lower Left) Strip the cable at the other end of the stopper.
4. (Lower RIght) Use some pliers and pull the cable housing out of the stopper. You can cut away as needed to make room for your cable.

Step 4: Soldering to the Teensy

Picture of Soldering to the Teensy
Solder each wire into the Teensy as follows:

White Cable (VCC) -> Teensy VCC
Yellow Cable (CLOCK) -> Teensy PB0
Orange Cable (LATCH) -> Teensy PB1
Red Cable (DATA) -> Teensy PB2
Brown Cable (GND) -> Teensy GND

Teensy pinout is at:

http://www.pjrc.com/teensy/pinout.html  (Teensy 2.0 Pin Assignments, Using C Language)

Step 5: Putting it all together

Picture of Putting it all together
Use a small piece of mounting tape and attach the Teensy to the plastic posts as in the picture. Put the USB cable in the rubber stopper, connect to Teensy, wrap around the plastic posts and place the stopper in the cutout as in the picture. Screw the bottom panel back on and put the rubber feet at the corners and you are done! Now go play some games!

Step 6: Button Mappings

Picture of Button Mappings
Button Mappings:

A -> Circle
B -> Cross
X -> Triangle
Y -> Square
L1 -> L1
R1 -> R1
Up -> Up
Down -> Down
Left -> Left
Right -> Right
Start -> Start
Select -> Select

Virtual Button Mappings:

Select + Start -> PS Home
Select + L1 -> L2
Select + R1 -> R2
Select + Start + L1 + R1 -> Reboot (for when you want to load a new program with the Teensy loader application)

You can test your new gamepad in Windows 7 by running "joy.cpl". Highlight the controller and select 'Properties'.

Step 7: Credits

For awesome instructions on reading data from the NES pins (SNES is similiar):

http://www.artlum.com/gameduino/nes.html

For amazing details on SNES/NES pinouts:

http://pinouts.ru/Game/snescontroller_pinout.shtml

For blowing my mind with PS3 Home button support (This code is the basis for what we are using here):

http://www.slashdev.ca/2010/05/25/ps3-gamepad-with-home-button/

For developing a kick-ass, affordable and easy-to-use USB board:

http://www.pjrc.com/teensy/index.html
Would the Teensy 2.0 work as a flight sim switch panel? Like Rocket Switches etc? Seems a lot cheaper than other USB Controller chips...

I know it's 1yo but yes, and you can even make the computer detects it like a flight sim controller

cgordan2 years ago
A couple of questions:
How can I modify this so that I can plug another USB controller into it and have the PS3 recognize both as the same controller?

Is it possible to have one of the switches toggle the joy stick to left stick, right stick, or d-pad?

I have a disabled friend who would benefit from a large controller like this. Being able to change what the joy stick controls would be a good feature, and having a second controller would allow someone to assist him in game.
Tomcat943 years ago
I love this! I used two ASCIIWARE PS1 joypads to use on my "arcade machine", and they're truly great joypads. Now I want to track this down just so I can do this! :P