An independent community project Meet the project
retropie.usSearch
Menu

Nintendo Switch Controllers

RetroPie upstream reference · Snapshot 175f5b158f16

Check the hardware and OS before following this guide.

Imported upstream documentation may contain historical commands and defaults. It is not a tested Pi 5 recipe. See current Pi 5 research.

Installation

First, you need to install dkms-hid-nintendo, a Nintendo HID kernel module:

git clone https://github.com/nicman23/dkms-hid-nintendo
cd dkms-hid-nintendo
sudo dkms add .
sudo dkms build nintendo -v 3.2
sudo dkms install nintendo -v 3.2

NOTE : the module version may change, check the driver's page for the correct version to be used with the dkms commands above.

Then, you need joycond, a userspace driver which manages the controllers and exposes their motion inputs.

On a fresh install, you might need to install the libevdev library first:

sudo apt-get install libevdev-dev

Then install the joycond itself:

git clone https://github.com/DanielOgorchock/joycond.git
cd joycond
cmake .
sudo make install
sudo systemctl enable --now joycond

Usage

Just like in a Nintendo Switch, after you connect it to Retropie through Bluetooth in the Retropie Menu (press the button next to the USB-C port to put the controller in pairing mode), you'll need to press triggers to select the position. After you press any button and the player indicator lights start blinking, do the following:

Position/Controller Buttons to press
One Joycon, Horizontal Press SR+SL
One Joycon, Vertical Press L and ZL or R and ZR
Two Joycons/Pro Controller Press L or ZL and R or ZR

Copyright the RetroPie project and its contributors. Distributed under the upstream GPLv3 license, with original notices retained.

Adapted for this site's presentation: sanitized HTML, local links, heading anchors, and external illustration links. Original Markdown · Pinned upstream source · Upstream website