How input works in Lichii
- SDL3:
CMakeLists.txtturns onYUZU_USE_BUNDLED_SDL3for the Windows and macOS builds; on Linux the build uses the system’s SDL3. - HID command 300: the build 70 notes say controller input works through HID command 300 (#64), the change that made Star Fox controllable.
- Joy-Con: the build 95 notes add two Joy-Con fixes: subcommand replies must match (#338) and the Joy-Con pair attribute is written atomically (#394).
- Out of the box: the upstream handbook says most controls should work without setup. If a stick drifts or reads wrong, check the controller with a joystick calibrator first (it names
dkosmari/calibrate-joystick).
Set up a controller profile
- Start Lichii and wait for the game list to load.
- Open
Emulation > Configure.... - Choose Controls on the left and set the controller up the way you want it in games.
- Press New, type a name for the profile and press OK to save it.
- Press OK to close the settings.
Use a profile for one game
Some games want a different setup. The handbook’s example is Captain Toad: Treasure Tracker, which shows a blue dot in the middle of the screen in docked mode but not in handheld mode, so a handheld profile for that game helps.
- Right-click the game in the main window and choose Properties.
- Open the Input Profiles tab. If you cannot see it, widen the window or use the arrows beside the tabs.
- Open the Player 1 profile list (or another player’s) and pick the profile.
- Press OK, start the game and check the profile is used, whatever the global setting is.
Steam Deck: external controllers and gyro
In desktop mode, do not select the Pro Controller or Xbox controller itself. Set Steam Virtual Gamepad 0 as Player 1, and Steam Virtual Gamepad 1 as Player 2 for a second controller. The Steam app must stay open in desktop mode.
The handbook calls the next part annoying: the Deck and the external controller fight for position 0, and whichever is touched first after waking from sleep wins. That only matters if Player 1 needs gyro.
- Wake the Deck without touching any of its buttons, and turn the external controller on.
- Open the emulator’s AppImage. With luck the external controller is position 0 and
Steam Virtual Gamepad 0. - If not, repeat; or set up gyro on Player 1 with the Deck itself. Keep every player on a Steam Virtual Gamepad.
- In gaming mode: turn the controller off, switch to gaming mode without touching the Deck, then turn the controller on. If it is not Steam Virtual Gamepad 0, reorder controllers in Steam’s gaming mode settings.
Linux: controller permissions (udev)
If a controller works in other apps but Lichii cannot open it, your user may not have access to the controller’s hidraw device. The repository ships a rule for this, dist/72-eden-input.rules, to install as /etc/udev/rules.d/72-eden-input.rules on most distributions:
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ENV{ID_INPUT_JOYSTICK}=="1", MODE="0660", TAG+="uaccess"
sudo cp 72-eden-input.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
It lets systemd-logind give the logged-in user access to joystick hidraw devices. Check your distribution’s documentation if it keeps udev rules elsewhere. On FreeBSD 15.0 the upstream caveats say gamepads may not work because of an older SDL and the new usbhid driver.
Controller status by game
| Game | Controller status | Source |
|---|---|---|
| Star Fox | Works: input through HID command 300 | build 70 notes (#64) |
| Mario Kart World | Works; one Pro Controller bug: a Switch Pro Controller floods Windows with phantom input while Lichii is open; a DualSense worked | open issue #523 (build 95) |
| Donkey Kong Bananza | Runs: no controller-specific problem in the notes | build 70 notes |
| Nintendo Switch Sports Resort | Partly blocked: Skateboarding asks for a Joy-Con 2, and the controller applet offers only Joy-Con (1) | open issue #502 (build 95) |
| Ocarina of Time remake | Rumble weak on GameCube pads: HD rumble is too faint for a GameCube controller’s motor; a boost option is proposed | open pull request #543 |
| Drag x Drive | No controller support in the Orchid fork’s table; not mentioned in Lichii’s notes | Orchid README |
Overall game status, crashes and frame rates are on Lichii compatibility. Issue numbers refer to github.com/zortos293/Lichii/issues.
Which controller to use
Any controller SDL3 recognises should work. These are the common picks for a PC, Mac, Linux box or Steam Deck:
| Controller | Best for | Gyro | Notes |
|---|---|---|---|
| Xbox Wireless Controller | Windows, Steam Deck | No | Named in the upstream Steam Deck notes; USB-C or Bluetooth |
| Sony DualSense | Windows, macOS, Linux | Yes | Motion through SDL3; worked in the Mario Kart World report where a Pro Controller failed (#523) |
| 8BitDo Ultimate 2 Bluetooth | Windows | Switch only (maker’s listing) | TMR sticks and a charging dock |
| GameSir Cyclone 2 | Windows | Not confirmed for PC | TMR sticks, Hall/micro-switch triggers |
As an Amazon Associate, this site earns from qualifying purchases. Controller links go to Amazon; this site is not connected with the Lichii project or the controller makers.
See also Lichii requirements and which file to download.

