Lichii emulator controller setup and compatibility

Lichii handles controllers the way the Eden emulator it is built on does: SDL3 talks to the gamepad, and the Switch HID service passes the input to the game. This page restates the upstream controller handbook step by step, adds the Steam Deck and Linux details, and lists which Switch 2 games have controller problems as of build 130.

Advertisement

Lichii Emulator Guide / Controller setup

Nintendo Switch 2 Joy-Con controllers in their grip beside the empty dock

How input works in Lichii

  • SDL3: CMakeLists.txt turns on YUZU_USE_BUNDLED_SDL3 for 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

  1. Start Lichii and wait for the game list to load.
  2. Open Emulation > Configure....
  3. Choose Controls on the left and set the controller up the way you want it in games.
  4. Press New, type a name for the profile and press OK to save it.
  5. 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.

  1. Right-click the game in the main window and choose Properties.
  2. Open the Input Profiles tab. If you cannot see it, widen the window or use the arrows beside the tabs.
  3. Open the Player 1 profile list (or another player’s) and pick the profile.
  4. Press OK, start the game and check the profile is used, whatever the global setting is.
Advertisement

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.

  1. Wake the Deck without touching any of its buttons, and turn the external controller on.
  2. Open the emulator’s AppImage. With luck the external controller is position 0 and Steam Virtual Gamepad 0.
  3. If not, repeat; or set up gyro on Player 1 with the Deck itself. Keep every player on a Steam Virtual Gamepad.
  4. 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

GameController statusSource
Star FoxWorks: input through HID command 300build 70 notes (#64)
Mario Kart WorldWorks; one Pro Controller bug: a Switch Pro Controller floods Windows with phantom input while Lichii is open; a DualSense workedopen issue #523 (build 95)
Donkey Kong BananzaRuns: no controller-specific problem in the notesbuild 70 notes
Nintendo Switch Sports ResortPartly 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 remakeRumble weak on GameCube pads: HD rumble is too faint for a GameCube controller’s motor; a boost option is proposedopen pull request #543
Drag x DriveNo controller support in the Orchid fork’s table; not mentioned in Lichii’s notesOrchid 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:

ControllerBest forGyroNotes
Xbox Wireless ControllerWindows, Steam DeckNoNamed in the upstream Steam Deck notes; USB-C or Bluetooth
Sony DualSenseWindows, macOS, LinuxYesMotion through SDL3; worked in the Mario Kart World report where a Pro Controller failed (#523)
8BitDo Ultimate 2 BluetoothWindowsSwitch only (maker’s listing)TMR sticks and a charging dock
GameSir Cyclone 2WindowsNot confirmed for PCTMR 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.

Advertisement
A heap of fresh lychees with their pink, bumpy shells, on a white ground
Lychees (Litchi chinensis).

Common questions

Does Lichii support controllers?

Yes. Lichii reads controllers through SDL3, and since build 70 game input works through the Switch HID service’s command 300 (first noted for Star Fox). The upstream handbook says most controllers should work out of the box.

How do I set up a controller in Lichii?

Open Emulation > Configure... > Controls, pick your controller as the input device for Player 1, map the buttons, then press New to save the setup as a profile and OK to close.

Can I use a different controller profile for one game?

Yes. Right-click the game in the main window, choose Properties, open the Input Profiles tab and pick a profile for Player 1 (or another player). You may need to widen the window to see that tab.

How do I use an external controller on Steam Deck?

In desktop mode, ignore the external controller itself and set Steam Virtual Gamepad 0 as Player 1 (Steam Virtual Gamepad 1 for Player 2). Keep the Steam app running. For gyro on Player 1, the external controller has to take position 0: after waking the Deck, turn the controller on before touching the Deck.

My controller is not detected on Linux. What should I do?

Install the udev rule the repository ships, dist/72-eden-input.rules, to /etc/udev/rules.d/72-eden-input.rules, then reload udev or reboot. It gives your login session access to hidraw joystick devices.

Does gyro aiming work?

Gyro comes from a controller that reports motion through SDL3, such as a DualSense. An Xbox controller has no gyro. On Steam Deck the gyro only reaches Player 1 when that player is the right Steam Virtual Gamepad.

Is there a known problem with the Switch Pro Controller?

Yes: open issue #523 (build 95, Windows 11) reports that plugging in a Switch Pro Controller while Lichii is open floods the desktop with phantom input; a DualSense on the same PC worked normally.