Introduction: 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 https://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)

Step 1: 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

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

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

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

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

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

Hack It! Challenge

Participated in the
Hack It! Challenge