Skip to content

Joycon2Android 1.0.0

Choose a tag to compare

@JoeGeC JoeGeC released this 28 Aug 21:18

Use Nintendo Switch 2 Joy-Con 2 controllers as system-wide gamepads on Android over BLE.

Joy-Con 2 controllers use a custom BLE GATT service rather than standard HID-over-GATT, so Android can't pair them through normal Bluetooth settings. This app connects over GATT, sends the vendor init commands, parses the raw notification packets, and exposes each player as a virtual gamepad via UHID — so any Android app or emulator sees a standard controller.

Features

  • Multiple controllers at once — connect several Joy-Con 2s and assign them to up to 4 players (left, right, or paired).
  • Virtual gamepad output — each assigned player becomes its own standard HID gamepad, so emulators can map each to a distinct port. Requires Shizuku for privileged access (no root needed).
  • DSU (cemuhook) motion server — streams gyro/accel + full pad state to emulators (Dolphin, Cemu, …) over UDP, up to 4 players, with automatic gyro-bias calibration.
  • One-tap emulator setup — writes an emulator's controller config to match the current assignment: Eden (stable or Nightly) or Dolphin GameCube bindings, plus Dolphin's DSU + Wii Remote motion mappings.
  • Customizable button mapping — a per-console editor (GameCube / Joy-Cons / Wii Remote & Nunchuk) overrides the default Joy-Con → emulator bindings.
  • Dual and sideways layouts — dual Joy-Con when L+R are assigned to one player; sideways single-Joy-Con with correctly rotated inputs.
  • Live input display — buttons, sticks, IMU (accelerometer + gyroscope), and battery.

Requirements

  • Android 7.0+ (API 24), BLE-capable device
  • Shizuku running — for the virtual gamepad and emulator auto-setup (the DSU motion server works without it)
  • Joy-Con 2 controller(s)

Install

Download joycon2android-1.0.0.apk below and install it (you may need to allow installing from unknown sources). See the README for the full setup guide.

Notes

  • SYNC is required for every connection. Switch 2's button-press reconnect is console-exclusive at the link layer and can't be reproduced through Android's BLE API — press the SYNC button to connect each time.
  • Not affiliated with, endorsed by, or sponsored by Nintendo. The BLE protocol was reverse-engineered by the community; this project contains no Nintendo code. See the credits.