scrcpy/doc/gamepad.md

1.6 KiB

Gamepad

Several gamepad input modes are available:

  • --gamepad=disabled (default)
  • --gamepad=uhid (or -G): simulates physical HID gamepads using the UHID kernel module on the device
  • --gamepad=aoa: simulates physical HID gamepads using the AOAv2 protocol

Physical gamepad simulation

Two modes allow to simulate physical HID gamepads on the device, one for each physical gamepad plugged into the computer.

UHID

This mode simulates physical HID gamepads using the UHID kernel module on the device.

To enable UHID gamepads, use:

scrcpy --gamepad=uhid
scrcpy -G  # short version

Note: UHID may not work on old Android versions due to permission errors.

AOA

This mode simulates physical HID gamepads using the AOAv2 protocol.

To enable AOA gamepads, use:

scrcpy --gamepad=aoa

Contrary to the other mode, it works at the USB level directly (so it only works over USB).

It does not use the scrcpy server, and does not require adb (USB debugging). Therefore, it is possible to control the device (but not mirror) even with USB debugging disabled (see OTG).

Note: For some reason, in this mode, Android detects multiple physical gamepads as a single misbehaving one. Use UHID if you need multiple gamepads.

Note: On Windows, it may only work in OTG mode, not while mirroring (it is not possible to open a USB device if it is already open by another process like the adb daemon).