Supported Controllers — Overview
| Controller | OSD setting | Connector | Adapter form | Pages |
| Sega Mega Drive 3-button & 6-button (a.k.a. Genesis) | DB9MD | DB9 | Direct, or 1P/2P Antonio Villena splitter | mega-drive.md |
| Sega Master System 2-button | DB9MD (auto-detect) | DB9 | Same as Mega Drive | mega-drive.md |
| Atari 2600 / 7800 stick (1-button) | DB9MD (auto-detect) | DB9 | Same as Mega Drive | mega-drive.md |
| Neo Geo / Supergun (Antonio Villena DB15) | DB15 | DB15 | Antonio Villena DB15 splitter | neogeo-supergun.md |
| Sega Saturn digital pad (Control Pad) | Saturn | Saturn-style mini-DIN or DB9 wired equivalent | 1P direct, or 2P with 74HC157D mux | saturn.md |
| Sega Saturn 3D Control Pad | Saturn core SNAC mode only (not UserIO) | Saturn-style | 1P passive cable + Saturn SNAC Adapter = 1P | saturn.md |
| Original-console pad through SNAC8 (NES, SNES, PCE, etc.) | per-core SNAC option | varies per console | Per-console SNAC8 adapter | snac8.md |
Choosing the right UserIO Joystick value
| You have... | Set UserIO Joystick to |
| One Mega Drive controller plugged into a single-port DB9 adapter | DB9MD, 1 Player |
| Two Mega Drive controllers via the Antonio Villena DB9 splitter | DB9MD, 2 Players |
| One Master System / Atari pad on a DB9 adapter | DB9MD, 1 Player (DB9MD auto-detects 2-button or 1-button pads) |
| Neo Geo or Supergun with the DB15 splitter | DB15, 1 Player or 2 Players |
| One Saturn Control Pad on a 1P direct adapter | Saturn, 1 Player |
| Two Saturn Control Pads via the 74HC157D 2P mux adapter | Saturn, 2 Players |
| One Saturn Control Pad plugged into the 2P-mux adapter (P1 or P2) | Saturn, 1 Player (the auto-route picks whichever side has a pad) |
DB9MD vs DB15 vs Saturn — quick guide
- DB9MD is auto-detecting: it figures out at runtime whether the pad is 3-button (Master System / Atari era) or 6-button (Mega Drive Mega Pad). You don't need to flip a switch on the controller.
- DB15 uses a shift-register clocked by the FPGA. The Antonio Villena DB15 splitter has its own internal protocol that goes far beyond Neo Geo: any controller wired to its bit layout works.
- Saturn uses the original Saturn 4-phase select protocol (S0/S1 select lines), with per-port presence detection so an empty side of a 2P mux adapter does not produce phantom inputs.
What about analog?
The DB9MD, DB15, and Saturn-digital paths are all digital only. The Saturn 3D Control Pad uses the Saturn 3-wire TH/TR/TL handshake (header 0x02 in Digital, 0x16 in Analog) in both switch positions, so the UserIO=Saturn 4-phase helper cannot read it in either mode — it appears as flag-present but commits no button data. For the 3D Pad, use the Saturn core's Saturn SNAC = ON with Saturn SNAC Adapter = 1P; the core's SMPC implementation talks to the pad directly and supports both Digital and Analog switch positions.