Skip to content

v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Oct 14:43
af6a602

A full redesign of the app, automatic start when the controller connects, proper Android TV remote support, and a round of fixes validated on real hardware.

New look

  • Rebuilt from scratch in Jetpack Compose with a cleaner card-based design: rounded outlined cards, check-circle choices, check/cross switches.
  • Three tabs: Home, Profiles and Settings, in a floating bottom bar on phones and a side rail on tablets, foldables and TVs.
  • Two-column layout on large screens, such as an unfolded Fold or a tablet.
  • Start Service sits right under the controller card. Calibration, Button mapping and Debug HID moved to Settings.
  • The status card shows the real state at a glance: Controller ready / disconnected, Shizuku, battery and the emulated controller.
  • Bluetooth controllers are listed directly, with a refresh button, instead of a dropdown.
  • Theme switching (Steam / Dynamic) applies instantly, without restarting the app.

Automatic start

  • New option: start automatically when the controller connects. Over Bluetooth it works with the app closed: the virtual pad appears about half a second after the controller connects, and disappears when it is switched off.

Android TV

  • Fully usable with a TV remote: a clear focus ring on the selected item, scrollable Debug screen, and sliders adjustable with left/right.

Fixes

  • Rumble now works over USB / Puck, with an intensity that scales properly.
  • Lizard mode is now really turned off over USB. The previous version sent a command that turned it back on.
  • LT full press no longer fires when you click the right trackpad: it now reads the bit the controller actually sets.
  • The battery shows "Charging" on the cable, instead of a misleading 100%.
  • The calibration preview now moves up when the stick goes up. If you had turned on "Invert Y" to make the preview look right, turn it off: in games it was inverting the axis.
  • No more duplicate controllers in games after an update or a crash: leftover background services are cleaned up when the service starts.
  • No more missing virtual keyboard while the controller or Puck is connected.
  • Compatible with Android's 16 KB memory pages, so there is no more "not compatible" warning on recent devices.

Under the hood

  • The SC2026 protocol is aligned with the current reference implementation (SteamlessController) and checked against hardware captures.
  • The debug build installs alongside the release one.

Known limitations

  • Shizuku must be running. After a phone reboot, start it again before using the controller.
  • Auto-start over USB doesn't work on some Samsung devices: Android doesn't open the app when the controller is plugged in. Bluetooth is not affected.
  • With the Puck, Android only sees the dongle, so turning the controller on with the Puck already plugged in can't start the app on its own.

Upgrading from 2.0: install over it. Your settings and game profiles are kept.