sodcalculator

10 Tech How-To

Use an Original SNES Controller on a USB Host

Guide 10-24094 · Updated · Step by step

This guide shows you how to connect an original Super Nintendo (SNES) controller to a computer, Raspberry Pi, or other USB host device. You’ll need a compatible adapter (either a DIY Arduino-based one or a ready-made USB adapter) and a few minutes. By the end, you’ll be able to use your classic controller for emulators, retro gaming, or any program that accepts gamepad input.

What You’ll Need

  • An original SNES controller (the one with the multi-pin connector on the cable).
  • A USB host adapter: either a commercial SNES-to-USB adapter (often labeled as “SNES USB adapter” or “Super Nintendo controller to PC”) or a DIY solution using an Arduino (e.g., Arduino Leonardo or Micro) and a female SNES controller port.
  • A computer or device with a USB port (Windows, macOS, Linux, or Android with OTG support).
  • If using the DIY route: soldering iron, wires, and a breadboard or protoboard (optional but helpful).

Step-by-Step

  1. Identify your controller’s connector. The original SNES controller has a 7-pin round connector (similar to a small DIN plug). It’s not USB, so you need an adapter.
  2. Choose your adapter method. The simplest is to buy a ready-made USB adapter. These typically plug into the controller’s cable and present a USB plug on the other end. If you prefer DIY, you’ll use an Arduino that emulates a USB gamepad.
  3. If using a commercial adapter: Plug the SNES controller into the adapter, then plug the adapter into a USB port on your computer. Wait for the OS to recognize it. On Windows, it usually installs a generic HID gamepad driver automatically. On macOS and Linux, it should work without extra drivers.
  4. If using an Arduino (DIY):
    1. Connect the SNES controller’s 7-pin connector to the Arduino. The pinout is: pin 1 = +5V (or 3.3V, but 5V is standard), pin 2 = Clock, pin 3 = Latch, pin 4 = Data, pin 5 = Ground, pins 6 and 7 are not used. You can find the exact pin numbering by looking at the connector’s front (the side that faces you when plugging in).
    2. Upload a sketch that reads the SNES controller’s serial data and sends it to the computer as a USB HID gamepad. Many open-source sketches exist; search for “SNES controller Arduino USB HID”. Make sure your Arduino supports USB HID (Leonardo, Micro, or Due).
    3. After uploading, plug the Arduino into your computer via USB. It should appear as a gamepad.
  5. Test the controller. Open your operating system’s game controller settings (on Windows: Control Panel > Devices and Printers > right-click the gamepad > Game controller settings; on macOS: System Information > USB; on Linux: use jstest or similar). Press buttons and move the D-pad to see if they register.
  6. Configure in your emulator or game. Most emulators (like RetroArch, Snes9x, or ZSNES) have a controller setup menu. Select the USB gamepad and map each button (A, B, X, Y, L, R, Start, Select, D-pad) to the corresponding action.
  7. Enjoy your retro gaming. The controller should work with any software that supports standard gamepads, including Steam, emulators, and modern games that allow gamepad input.

Common Mistakes

  • Wrong pinout on DIY adapters. Mixing up Clock, Latch, or Data lines will cause the controller to not respond. Double-check the pinout before soldering.
  • Using an Arduino that doesn’t support HID. Standard Arduinos like the Uno cannot act as a USB gamepad without extra firmware. Use a Leonardo, Micro, or a board with native USB.
  • Not installing drivers on Windows. Some adapters need a driver. If the controller doesn’t appear, check the manufacturer’s website for drivers.
  • Plugging into a USB hub with insufficient power. Some hubs don’t provide enough current, causing the adapter to fail. Plug directly into the computer’s USB port.
  • Assuming the controller works with all games. Some games require analog sticks or more buttons; the SNES controller only has digital buttons and a D-pad.

Tips

  • For the best compatibility, use a commercial adapter from a reputable retro-gaming store. They are tested and usually plug-and-play.
  • If you’re handy with electronics, the DIY route is a fun project and gives you full control over the mapping.
  • Test the controller with a simple gamepad tester before configuring your emulator to isolate issues.
  • Keep the original controller cable intact; don’t cut it. If you need a longer cable, use an extension.
  • On Windows, you can use the built-in “Game Controllers” panel to calibrate and test. On Linux, use jstest from the joystick package.
  • If you’re using RetroArch, set the input driver to “udev” or “sdl2” for better compatibility with USB gamepads.

Troubleshooting

  • Controller not detected at all: Check the USB connection, try a different port. If using a commercial adapter, ensure it’s properly seated. For DIY, re-check your wiring and the Arduino’s USB connection.
  • Buttons work but D-pad doesn’t (or vice versa): This usually indicates a wiring issue. Check the Clock, Latch, and Data lines. In the Arduino sketch, verify the pin assignments match your wiring.
  • Input lag or missed inputs: Some adapters have inherent latency. Try a different USB port (avoid hubs). In emulators, enable “run-ahead” or reduce buffering settings.
  • Controller works on one OS but not another: The adapter may be designed for a specific OS. Check the product page for compatibility. For DIY, ensure your Arduino sketch uses a standard HID descriptor.
  • Windows says “USB device not recognized”: This may be a driver issue. Try uninstalling the device from Device Manager and re-plugging. For commercial adapters, download the latest driver from the manufacturer.
  • Controller works but buttons are swapped: This is a mapping issue. In your emulator or game’s settings, remap the buttons to your preference.

Frequently Asked Questions

Can I use an original SNES controller on a modern PC without an adapter?

No, the controller uses a proprietary 7-pin connector and a serial protocol, not USB. You need an adapter to convert the signal.

Will the controller work with my Nintendo Switch?

Not directly. The Switch uses Bluetooth or USB with a different protocol. Some adapters exist that work with the Switch, but they are not standard SNES-to-USB adapters.

Do I need to install drivers on macOS?

Usually not. Most USB gamepads are recognized as HID devices and work out of the box. If not, check the adapter’s documentation.

Can I use two SNES controllers simultaneously?

Yes, if you have two adapters and two USB ports (or a USB hub). The computer will see them as two separate gamepads.

Is there input lag with USB adapters?

Some adapters may introduce a few milliseconds of lag, but for most games it’s negligible. High-quality adapters and direct USB connections minimize this.

Can I use the SNES mouse or Super Scope with the same adapter?

No, those peripherals use different protocols. You would need a specialized adapter for each.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →