The new SNES Classic is out and available (if you can get your hands on one). We thought it would be fun to add a little magic to it and make it capable to host online co-play. This requires a serious amount of patience, tinkering, elbow grease, a gaming PC, and Parsec. But if you can stick with it and follow the instructions below, you can make your SNES Classic a hub for online co-play with friends!
- 1x SNES Classic Mini
- 1x Windows 10 PC with modern GPU capable of running Parsec
- 1x Elgato HD 60 Pro (lowest latency capture card available)
- 1x Titan One
- 1x HDMI headless dongle
- 1x Reliable internet connection with at least 10mbps upload (required for hosting)
- 1x Client device (Mac, Windows PC, Linux PC or Raspberry Pi 3) with Xbox Controller connected
- 1x Raspberry Pi 3 (needs Raspberry Pi 3’s full 40 Pin GPIO)
- 1x Bread Board
- 1x Fine grit sandpaper
- 1x General Soldering equipment
- Windows 8.1 or better
- Elgato Game Capture HD
- Titan One GTuner Software
- MaxAim DI Plug in for GTuner
- Raspbian on Pi 3.
How To Start Capturing Video From Your PC
1. Plug in SNES to power and HDMI
2. Plug SNES HDMI Cable into IN port of Elgato Capture card
3. Plug HDMI headless dongle into OUT port of Elgato Capture Card
4. Launch Elgato software
How To Wire The SNES Controller
1. Dismantle one of the controllers, leaving only the PCB and the cable that connects the controller to the console
2. Use fine grain sandpaper to very gently sand down the pads connected to the SNES controller chip (these are the pads with the small green gold tracers connecting the to the controller chip). Start and select have two pad groups each, you don’t need to do both.
3. Once you have revealed the gold plating underneath the green protective layer, tin these connectors using solder.
4. Tin 12 wires, that will connect to each pad we have tinned. I would recommend using different colour wires, so it makes it easier to identify later.
5. Solder wires to pads, and then hot glue the wires in place so they don’t snap
6. In this diagram below I have marked out the pads in the centre of the board that you should solder, as well as marked with red the tracers that connect them to the chip.
Setting Up The GPIO / SNES Controller Wiring
Connect the wires from the controller, to the pins on the GPIO of the Raspberry Pi. I would use a breadboard first, to make sure it is all working, then move to a GPIO Ribbon cable style setup.
Setting Up The Ability To Use Your Controller Online
Below was based off a very helpful tutorial here — please note my script does not let you use the analogue stick to control up,down,left,right. You will need to use the dPad.
1. Boot up Raspberry Pi 3 — make sure it’s connected to network
2. Get IP address of Pi 3 by using terminal command hostname -I
3. Enable SSH on Raspberry Pi 3
4. Open Terminal and enter the two lines below:
sudo apt-get install xboxdrv
git clone https://github.com/FRC4564/Xbox
5. Go to location /home/pi/xbox/ and copy this file into the directory.
6. Plug in Titan One to Raspberry Pi, and the Mini USB cable from the Titan One to your PC.
7. Signup and Install Parsec to your PC and friends machine (host user add client user as a friend) — insure host user installs controller software bundled with Parsec.
8. Client user connect to host using Parsec (or host user can optionally connect their own Xbox controller to host system).
9. Client user (with controller connected) press button on Xbox controller.
10. Verify host can see Xbox controller now added to device manager.
11. Download and Install GTuner Pro for Titan One
12. Open options in GTuner, and navigate to the Device Tab, ensure it is manually set to show up as an Xbox 360 controller.
13. Install MaxAim DI Plugin.
14. Open MaxAim DI Plugin.
15. Select Direct Input Settings.
16. Select Direct Input controller.
17. Ask client user to press buttons on controller to verify that input is received via Parsec.
18. Map appropriate controls to your onscreen controller (you may need to select Xbox Layout in Layout Options).
19. Save your layout as I find that it often forgets the settings the next time you open the application.
20. Enable Direct Input in Direct Input method if not already enabled.
21. Install Elgato Capture HD — Keep it in live mode to ensure it stays real time.
22. Download Putty on your host machine.
23. Create a new notepad document.
24. Copy this line into Notepad (remembering to change the IP address to the address of your Pi, and the name of the script to the name of the script in the home/pi/xbox directory you’ve created — also this is using the default SSH username and password, you should probably change it).
plink.exe email@example.com -pw raspberry -C “echo raspberry | sudo -S python /home/pi/Xbox/x360_snes_script.py”
25. Save the document as a .bat file, this will mean you can double click it on Windows, and it will tell you Pi to start the script.
26. Connect your modified controller to the player 2 port of the SNES, your player two should now be able to control the game.
27. Set the Elgato Capture HD to go full screen, you should now be playing online Co-Op!