Almost any modern gamepad works with Snes9x 1.63 on Windows: Xbox controllers, PlayStation controllers, 8BitDo retro pads and generic USB or Bluetooth gamepads are all handled through the same Input menu. There are no drivers to install for the emulator itself — if Windows can see the controller, Snes9x can map it. This guide covers the mapping process, the one Windows-specific quirk that catches everyone out, and how Bluetooth pads fit in. New to Snes9x entirely? The Windows setup guide and setup hub get you running first, and the current build is on the download page.
Step 1 — Connect the controller before you start
Connect or pair your pad with Windows first, and confirm Windows itself recognises it (the USB cable is the simplest test — if a pad works wired, any remaining problem is pairing, not Snes9x). Then launch Snes9x. This ordering matters on Windows for a reason explained below: the Windows port does not hot-plug controllers the way some other platforms do, so a pad connected after the emulator is already running may simply not appear until you reconfigure it.
Step 2 — Map the buttons in Input Configuration
Open Input → Input Configuration. You will see the SNES controller’s buttons listed as fields. Click a field — D-Pad directions, A, B, X, Y, L, R, Start and Select — then press the button or direction on your pad that you want to assign. Work down the list until every field is filled, then confirm. There is no single “correct” layout; the natural mapping is to match positions: the pad’s right-hand diamond to SNES A/B/X/Y, shoulders to L/R. Keyboard keys can be mixed into the same mapping, which is handy for player two. Repeat the process for each player port you intend to use, keeping in mind that netplay and multitap games can involve up to five players (see the netplay guide).
XInput, DirectInput and HID — what Snes9x sees
Windows pads speak one of a few dialects. XInput is the Xbox-style standard: current Xbox controllers use it, and Windows presents them consistently, so mapping is painless. DirectInput is the older standard used by many retro-style and generic pads; Snes9x accepts these too. Many multi-mode pads — 8BitDo models are the classic example — can start up in different modes and appear to Windows as different device types depending on the mode, so if your pad’s name or button numbering looks odd in the configuration dialog, switching its startup mode and remapping usually resolves it. Underneath, Bluetooth gamepads reach Windows as standard HID game controllers, which is why pairing happens in Windows Settings, not inside Snes9x: once paired and connected, the pad appears in Input Configuration like any other.
The Windows hotplug truth
Here is the quirk, stated plainly because many guides get it wrong. The Windows version of Snes9x does not support hot-plugging controllers mid-session. Hotplugging was actually disabled on Windows back in version 1.56, in favour of a menu option to reconfigure joysticks; the hotplug support people sometimes cite belongs to the Linux (GTK) build, which gained it in 1.61. In practice this means: plug your controller in before launching Snes9x, and if you connect one later, use the Input menu to reconfigure joysticks so the emulator picks it up. It also means a pad that falls asleep or loses Bluetooth mid-game may need that same reconfigure step when it reconnects. Our controller not detected fixes go deeper if a pad never appears at all.
Bluetooth specifics
Pair the controller in Windows Bluetooth settings with Snes9x closed, wait for Windows to report it as connected, then launch the emulator and map as above. If you share one pad between a PC and a phone or console, remember it can only hold one active connection — a pad that “won’t connect” to the PC is often still connected to the other device. For Android play, Snes9x EX+ (the separate app by Robert Broglia, covered on our Snes9x for Android page) supports standard HID gamepads as well, and the mapping idea is the same even though the app is a different program from Windows Snes9x.
Quick checks when a pad misbehaves
- Pad connected in Windows before Snes9x launched? If not, reconfigure joysticks from the Input menu
- Multi-mode pad in a different startup mode than you mapped? Remap after switching modes
- Bluetooth pad asleep or paired to another device? Wake it, disconnect it elsewhere, re-pair
- Player-two pad mapped to the wrong port? Check each player’s configuration separately
Two players, port order and spare pads
Player one and player two have separate configuration pages, and the port a pad is mapped to is the port it plays on — a second pad mapped over the first player’s fields will fight for the same character rather than joining as player two, which is the single most common two-player mistake. Map each pad on its own player’s page, then test in a game with a two-player mode before your guests arrive. If you keep a spare pad for a second player, leave it connected (or reconnect and reconfigure it from the Input menu before starting, per the hotplug behaviour described above) so Windows keeps a stable idea of which device is which. Players three to five only enter the picture with multitap games and netplay, where each participant’s mapping lives on their own machine entirely.
Once your pad is mapped, learn the keyboard side too — the hotkeys reference covers save states, screenshots and the rewind key, and the setup hub links every companion guide.
