-
-
Notifications
You must be signed in to change notification settings - Fork 114
Controller pairing guide
- i - Your controller not in the list?
- ii - BlueRetro Joystick calibration
- 1 - List of tested Bluetooth devices
- 2 - PS3 Pairing Guide
- 3 - PS4 & PS5 Pairing Guide
- 4 - Xbox Pairing Guide
- 5 - Wii & WiiU Pro Pairing Guide
- 6 - Switch Pairing Guide
- 7 - 8bitdo Pairing Guide
- 8 - Retro-Bit Pairing Guide
- 9 - Steam Controller Pairing Guide
- 10 - RetroFighters Warrior Adapter Paring Guide
- 11 - RetroFighters Brawler64 Bluetooth Paring Guide
- 12 - Exlene GameCube Paring Guide
- 13 - Hyperkin Admiral Paring Guide
- 14 - Google Stadia Paring Guide
- 15 - 8BitDo N64 Modkit Pairing Guide
- 16 - 8BitDo NGC Modkit Pairing Guide
I can add support for it if it's uniquely identifiable in one of its modes of operation.
Follow this guide to get me a Bluetooth trace of it:
Getting Bluetooth HCI trace with Windows 10
Each time a controller is connected to BlueRetro every axis (Joysticks & Triggers) neutral value is calibrated. This calibration assume the joysticks and triggers are left to their neutral position during the connection process.
Some controller like Xbox, Stadia or any device in XInput mode do not send report update if no buttons/axes are pressed.
So for Xbox, Stadia or any device in XInput mode it's important to press a button (like A) a couple time after connection while the joysticks and triggers are left to their neutral position so that BlueRetro is able to calibrate the neutral values properly.
- Controller may have multiple hardware revision; only the ones listed under Product Number were tested.
- Controller behavior may change between their various firmware version; only the firmware listed under Firmware is supported.
- Controller may have various mode of operation; only the ones listed under Mode is supported.
- Controller often spoof the name of another ones and may not be detectable; for thoses a mapping preset other than default may be required and is listed under Mapping preset.
- Issues reproduced by developer are listed under Known issues.
- Issues reported by user but not reproduced are listed under Unconfirm issues.
Name | Product Number | Firmware | Mode | Mapping Src Label | Mapping preset | Pairing Guide | Known issues | Un-confirm issues |
---|---|---|---|---|---|---|---|---|
8bitdo GBros. Adapter | 83GA | v2.26 | Xinput | GameCube | Default Gamepad | 7 | #523 | |
8bitdo M30 Bluetooth | 80HA | v1.15 | Xinput | Saturn | Default Gamepad | 7, 7.3 | ||
8bitdo N30 Arcade Stick | NS30 | v5.10 | Xinput | Xbox One S / X|S | Default Gamepad | 7 | ||
8bitdo N64 | RB8-N64 | v2.00 | HID Generic | N64 | Default Gamepad | |||
8bitdo N64 Modkit | D | Switch N64 | Default Gamepad | 15 | ||||
8BitDo NGC Modkit | Android | GameCube | Default Gamepad | 16 | ||||
8bitdo NeoGeo Gamepad | BT | NeoGeo | Default Gamepad | |||||
8bitdo SF30 Pro | 80DB | v2.00 | Xinput | 8bitdo SN30 / SF30 | Default Gamepad | 7 | ||
8bitdo S30 Modkit | Xinput | Saturn | Default Gamepad | 7, 7.3 | ||||
8bitdo N30 Modkit | Xinput | NES | Default Gamepad | 7, 7.3 | ||||
Google Stadia | H2B | Bluetooth mode | HID Generic | Default | Default Gamepad | 14 | ||
Exlene GameCube | 2021-11 | Xinput (but they call it IOS) | Exlene Game Cube | Exlene GameCube | 12 | #547 | ||
Hyperkin Admiral N64 | MO7389-AP | v1.5.010722 | Switch | N64 | Default Gamepad | 13 | #146 | |
Microsoft Xbox Adaptive | 1836 | 5.15.3168.0 | BT | Xbox One S / X|S | Default Gamepad | 4 | #441 | |
Microsoft Xbox One S | 1708 | 5.15.3168.0 | BT | Xbox One S / X|S | Default Gamepad | 4 | #441 | |
Microsoft Xbox Series X|S | 1954 | 5.15.3168.0 | BT | Xbox One S / X|S | Default Gamepad | 4 | #441 | |
Nintendo Switch Famicom & NES | HAC-033, 034, 035, 036 | Switch | Switch NES | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch Joycon (Dual) | HAC-015, 016 | Switch | Switch Joycon | Switch Left/Right Joycon Upright | 6.3 | #146 | #468 #473 | |
Nintendo Switch Joycon (Single) | HAC-015, 016 | Switch | Switch Joycon | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch MD & Genesis 3btns | HAC-045 | Switch | Switch MD / Genesis | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch Mega Drive 6btns | HAC-046 | Switch | Switch MD / Genesis | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch N64 | HAC-043 | Switch | Switch N64 | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch Pro | HAC-013 | Switch | WiiU / Switch Pro | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Switch SFC & SNES | HAC-042 | Switch | Switch SNES | Default Gamepad | 6 | #146 | #468 #473 | |
Nintendo Wiimote | RVL-036 | Wii | Wiimote | Default Gamepad | 5 | |||
Nintendo Wiimote + Classic | RVL-005 | Wii | Wiimote + Classic | Default Gamepad | 5 | |||
Nintendo Wiimote + Classic Pro | RVL-005 (-02) | Wii | Wiimote + Classic Pro | Default Gamepad | 5 | |||
Nintendo Wiimote + Nunchuck | RVL-004 | Wii | Wiimote + Nunchuck | Default Gamepad | 5 | |||
Nintendo WiiU Pro | WUP-005 | Wii | WiiU / Switch Pro | Default Gamepad | 5 | #3 | ||
PowerA GameCube | 1511638-01 | Switch | Game Cube | Default Gamepad | 6 | #146 | ||
Retro-Bit SEGA Saturn Bluetooth | v1.02 | Xinput | Saturn | Default Gamepad | 8 | |||
Retro Fighters Brawler64 Bluetooth | Switch | N64 | Default Gamepad | 11.1.1 | #146 #548 | |||
Retro Fighters Brawler64 Bluetooth | Xinput | N64 | Retro Fighters Brawlers64 Xinput | 11.1.2 | #546 | |||
Retro Fighters Warrior Adapter | Xinput | Game Cube | Default Gamepad | 10 | ||||
Sony PS3 DualShock 3 | PS3 | PS3 | Default Gamepad | 2 | ||||
Sony PS3 Sixaxis | PS3 | PS3 | Default Gamepad | 2 | ||||
Sony PS4 DualShock 4 | PS4 | PS4 / PS5 | Default Gamepad | 3 | ||||
Sony PS5 DualSense | CFI-ZCT1W | 0307 | PS5 | PS4 / PS5 | Default Gamepad | 3 | ||
Valve Steam Controller | 1001 | 0x5B0F21BD (2018-05-30) | Lizard (BLE) | KB & Mouse | DC FPS for Steam ctrl lizard | 9 |
If your keyboard prompt for a pin on Windows you may have to do the same with BlueRetro. Simply put 0000 and press Enter (BlueRetro have no way to ask you to do so). This is only needed for older BT keyboard, BT 4.0+ (LE) will not ask for a pin.
- Logitech MX5000 (Enter pin 0000 when prompted by KB screen)
- Logitech K600
- 8BitDo Retro Mechanical Keyboard
- Logitech MX Master 2S
- Rapoo MT550
- Rapoo 7200M
- Note: only official PS3 controllers are supported.
- Download and install Sixaxis Pair Tool
- Determine BlueRetro MAC address
-
Open https://blueretro.io/ in a chrome web browser (desktop/android).
-
Navigate to "BlueRetro System Manager".
-
Click on "Connect BlueRetro".
-
Pair your device.
On connection the MAC address of the device will be shown: write it down.
Connected to:BlueRetro_XX_XXXX (XX:XX:XX:XX:XX:XX)[v.x.x.x]
- Connect your PS3 controller to PC using USB cable.
- Launch Sixaxis pair tool and type in the address found in step #2.
- Click update, once done disconnect the controller from PC.
- Boot up BlueRetro and press the PS button, the controller should connect to BlueRetro.
- Install Prerequisites (macOS)
-
Install Homebrew https://brew.sh
-
Install required libs & packages
brew install wget libusb libusb-compat
-
Compile sixpair binary
mkdir ~/Documents/sixpair cd ~/Documents/sixpair wget -O sixpair.c https://gist.github.com/wouterds/4ab5715966812009d634e3d034abc7fc/raw gcc -o sixpair sixpair.c -lusb
If everything went well you should now have a sixpair executable at
~/Documents/sixpair
. -
Determine BlueRetro MAC address
-
Open https://blueretro.io/ in a chrome web browser (desktop/android)
-
Navigate to "BlueRetro System Manager"
-
Click on "Connect BlueRetro"
-
Pair your device
On connection the MAC address of the device will be shown. Write it down.
Connected to:BlueRetro_XX_XXXX (XX:XX:XX:XX:XX:XX)[v.x.x.x]
-
Open a shell terminal and set the master PS3 address to BlueRetro MAC address
.~/Documents/sixpair/sixpair XX:XX:XX:XX:XX:XX
- Simply press PS button to reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Press & hold simultaneously Share & PS buttons until the LED blink white.
- Color on controller will change once pairing is complete.
- Simply press PS button to reconnect to BlueRetro.
Update firmware via the Xbox accessories Win10 app.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power on controller via Xbox button and then hold the black sync button until the logo blink.
- Logo will stop blinking on controller once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
- Simply hold Xbox button for a small moment to power on controller and it will reconnect to BlueRetro.
- Press A buttons a few times to make sure joystick center value is properly init.
- 1+2 pairing is not supported.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Press red Sync button.
- LEDs will stop blinking on controller once pairing is complete.
- Simply press any button on controller and it will reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Press and hold sync button until LEDs move in a left/right pattern.
- LEDs will stop pattern on controller once pairing is complete.
- Simply press any button twice on controller and it will reconnect to BlueRetro.
- Go to https://blueretro.io/blueretro_presets.html and connect to your BlueRetro.
- First select output 1 and select "Switch Left Joycon Upright" click save, wait for green text to appear.
- Then select output 2 and select "Switch Right Joycon Upright" click save, wait for green text to appear.
- Then pair the joycon with blueretro separately using the sync button hidden on the sliding side.
It's important to connect the left joycon first, then connect the right joycon. - After that you can clip them on the middle support and they should function as one controller.
Update firmware via the 8bitdo Upgrade tool Win10 app.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up 8bitdo controller in Xinput mode (Start + X or set switch to X) (Only Xinput mode supported!!).
- Press and hold sync button until LEDs flash.
- LEDs will stop pattern on controller once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
- Simply press Start on controller and it will reconnect to BlueRetro.
- Press A buttons a few times to make sure joystick center value is properly init.
Most 8bitdo controllers are configured to have the D-pad emulate a joystick by default. In most case for BlueRetro you will want to configure it as a d-pad.
See 8bitdo support page FAQs for each controller for more info.
- 8bitdo S30 Modkit: Hold Up + L + R for 5 seconds
- 8bitdo N30 Modkit: Hold Up + Select for 5 seconds
- 8bitdo M30 Bluetooth: Hold Up + Select for 5 seconds
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up Retro-Bit controller in Xinput mode (Home + X) (Only Xinput mode supported!!).
- If done properly 2 LEDs will flash.
- LEDs will stop flashing on controller once pairing is complete and rumble will trigger.
- Simply press Homeon controller and it will reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power on controller by holding B and then pressing the Steam button.
- Logo will stop blinking on controller once pairing is complete.
- Simply press Steam button to power on controller and it will reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power on adapter by holding Home + Minus simultaneously until LED start blinking fast.
- LED will stop blinking once pairing is complete.
- Simply press Home button to power on adapter and it will reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up Brawler64 by holding sync button until LEDs move in a up/down pattern.
- LED will stop blinking once pairing is complete.
In this mode the controller will mock an Xbox controller and can't be uniquely identified. As such you need to load the RetroFighters Brawlers64 Xinput preset.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up Brawler64 by holding both B & sync buttons until LEDs 1 & 4 start blinking.
- LED will stop blinking once pairing is complete and LEDs 1 & 4 will be on to indicate Xinput mode.
- Simply press any button a few time to power it on and it will reconnect to BlueRetro.
The controller will mock an Xbox controller and can't be uniquely identified. As such you need to load the Exlene GameCube preset.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up the Exlene controller by holding Y + Home simultaneously until LED start blinking fast.
- LED will stop blinking once pairing is complete.
- Simply press Home button to power on Exlene controller and it will reconnect to BlueRetro.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up the Exlene controller by holding Y + Home simultaneously until LED start blinking fast.
- LED will stop blinking once pairing is complete.
- It's important to press the A button to power on the Admiral controller as it's select the default internal mapping of the controller.
It will reconnect to BlueRetro after doing so.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up the Stadia controller by holding Stadia button + the Y button simultaneously until LED start blinking orange.
- LED will blink white once pairing is complete.
- Simply press Stadia button to power on Stadia controller and it will reconnect to BlueRetro.
- If reconnect takes a long time you may need to re-pair the controller (See 14.1)
- To reset the controller hold the Stadia button for 10 seconds.
If you still have troubles with Stadia Controller, check the official FAQ and troubleshooting tips for more instructions.
8bitdo Switch mode will not work properly with BlueRetro. D-input mode do not expose the Rumble feature.
As such, it's not possible to use the Rumble feature of this controller.
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Set switch at bottom of 8BitDo rumble to D.
- Power up the 8BitDo N64 Modkit controller by holding start.
- Hold sync button until LED start blinking fast.
- LED will stop blinking once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
- Set switch at bottom of 8BitDo rumble to D.
- Power up the 8BitDo N64 Modkit controller by holding start.
- LED will stop blinking once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
8bitdo Switch mode will not work properly with BlueRetro.
Make sure to use either the Default Gamepad only or the Default Gamepad/Keyboard presets to make the triggers end button active. (Merge preset simulate the end button base on analog position.)
- Boot up BlueRetro and make sure adapter is in inquiry mode (LED pulsing).
- Power up 8BitDo NGC Modkit in Andoird mode (Start + B) (Only Android mode supported!!).
- LEDs on controller will stop flashing once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
- Power up the 8BitDo NGC Modkit controller by holding start.
- LED will stop blinking once pairing is complete.
- Press A buttons a few times to make sure joystick center value is properly init.
-
RE notes
- ESP32 RTOS + Bare Metal: Best of Both Worlds?
- Learning Bluetooth Classic (BR/EDR) with HCI traces
- Xbox One Adaptive controller
- Evolution of SEGA's IO Interface from SG-1000 to Saturn
- Famicom & NES controller shift register: Parallel-in, Serial-out
- SNES 2P & Super Multitap
- PlayStation & PlayStation 2 SPI interface
- 3DO interface
- PC-FX interface
- CD-i interface
- PCE & TG16 interface
- Jaguar Interface
-
Deprecated content