Your controller works in other games, Windows sees it, but Snes9x acts as if nothing is plugged in. On the Windows build this is usually not a broken pad or a broken emulator — it is a specific, documented behaviour of the Windows port that catches almost everyone once. This page explains it, then walks through the remaining checks: input configuration, XInput versus DirectInput, and Bluetooth pairing. Grab the current build from our download page if yours is old, and find more fixes in the troubleshooting hub.
The big one: connect the controller before you launch
Unlike the Linux (GTK) build, the Windows port of Snes9x does not hot-plug controllers. This is deliberate and documented in the official changelog: back in version 1.56, hotplugging on Windows was disabled in favour of a menu option to reconfigure joysticks. So if you launch Snes9x first and plug your pad in afterwards, the emulator may simply never notice it. Two ways around it: connect the controller first, then start Snes9x — or, with the pad connected, use the Input menu’s option to reconfigure joysticks so Snes9x re-scans your devices without a restart.
Map the pad in Input Configuration
Detection is only half the job — the pad also has to be mapped. Open Input → Input Configuration, click a SNES button field, and press the pad button you want for it. If Snes9x responds when you press buttons during mapping, the pad is detected and your only problem was an empty or stale mapping. If a second player pad is involved, make sure you are configuring the right controller slot. The bundled FAQ adds a useful D-pad tip: leave the diagonal fields blank when mapping — a real SNES D-pad only has four switches, and diagonals come from pressing two directions at once; filling the diagonal boxes in is a common cause of “my D-pad feels wrong”. Our full controller setup guide walks through mapping in detail.
XInput versus DirectInput
Windows gamepads speak one of two APIs. Xbox controllers and most modern PC pads use XInput; many retro-style USB pads, older controllers and some 8BitDo modes use DirectInput. Snes9x accepts both, so either kind should work — but a pad with a mode switch (some retro pads can present as either) sometimes shows up under one mode and not the other. If your pad has an X/D switch or a mode button combo, try the other mode, reconnect, and re-run the joystick reconfigure step. Also check the obvious: some pads enumerate differently over USB than over Bluetooth, so test wired if wireless is giving you trouble.
Bluetooth: pair with Windows first
Snes9x has no Bluetooth pairing of its own — it only sees controllers that Windows has already paired and connected. Pair the pad in Windows Bluetooth settings first, confirm it shows as connected (not merely paired), and only then launch Snes9x or use the Input menu to reconfigure joysticks. If the pad sleeps or disconnects mid-session, Windows drops the device and the no-hotplug behaviour means Snes9x will not pick it up again automatically when it wakes — reconnect it in Windows, then reconfigure joysticks from the Input menu. A wired USB connection remains the most reliable way to rule Bluetooth in or out, and it also removes wireless latency if you are chasing the lowest input lag.
Confirm Windows itself sees the controller
If Snes9x still shows nothing, step outside the emulator: open Windows’ own game controller panel (search for “Set up USB game controllers”) and check that your pad is listed and that its test screen responds to your button presses. The bundled FAQ’s advice is the same in spirit — most USB controllers work, and updating drivers and recalibrating the controller are the first remedies when one misbehaves. If the pad does not respond in Windows’ own panel, the problem is the pad, its cable, its receiver or its driver — not Snes9x — and no emulator setting will fix it.
Still stuck?
Try a different USB port (front-panel and hub ports are occasional culprits), close other software that grabs controllers exclusively, such as other emulators or game launchers, and restart Snes9x with the pad already connected. If the inputs register but feel delayed rather than absent, that is a different problem — see how to reduce input lag. And for choosing a pad that plays nicely with SNES games in the first place, our best controller for Snes9x guide compares the popular options.
Keyboard works but the pad doesn’t?
That split is itself a diagnosis. If keyboard controls respond in-game, Snes9x and the ROM are fine and the problem is confined to the pad path: device detection, mapping, or Windows’ view of the controller. Work the chain backwards — Windows game controller panel first (does the pad respond there?), then the Input menu’s joystick reconfigure (did you connect the pad after launching?), then Input Configuration (are the fields actually mapped to this pad, or to a controller you used last month?). A stale mapping is more common than people expect: mappings are stored per controller, and swapping between an Xbox pad and a retro USB pad can leave you pressing buttons on a device the current mapping was never written for. Re-mapping takes a minute and rules it out.
Second pad and player 2
For two-player games, each pad must be connected before launch (or picked up through the joystick reconfigure option) and mapped under its own controller configuration — player 2’s pad does nothing until its buttons are assigned in the second controller’s fields. If both pads are the same model, Windows and Snes9x distinguish them by connection order, so connect them one at a time and map each before connecting the next; otherwise it is easy to map player 1 twice and wonder why the second pad mirrors the first. Wireless receivers and dongles count as part of the device: a pad that is “on” but whose receiver is plugged into a sleeping USB hub is, to Snes9x, simply not there. Give receivers a direct motherboard port when you can, and wake everything up before you start the emulator rather than after.
Related guides: related guides: snes9x audio crackling fix.
