Repository navigation
Releases: mogpt/SteamController-ShieldTV
Releases · mogpt/SteamController-ShieldTV
Release list
v2.1.0 — SHIELD TV edition
First release of the SHIELD TV fork. Use Valve's Steam Controller 2 (2026 model, codename Ibex) as a standard gamepad on Android TV and the NVIDIA SHIELD TV — no root, via Shizuku.
Tested on an NVIDIA SHIELD TV 2019 ("tube", Android 11). Other Android TV devices should work but are unverified.
Fixes over upstream
Each of these was found by debugging against real hardware:
- The controller stopped working when you switched apps — most visibly when launching GeForce NOW. Every ungraceful stop leaked a virtual gamepad, mouse and keyboard that stayed registered with Android until reboot (five had accumulated on the test device). A game claiming "player 1" takes the lowest input device id, by then a dead one, so the pad did nothing in game while the app still reported itself connected.
- "Ready" but no input at all — a dropped GATT callback left the app subscribed only to the first notify characteristic, which carries 5-byte status packets rather than the 45-byte state reports.
- Random disconnects that never recovered — the app never attempted to reconnect, so any Bluetooth blip was terminal. Now retries with backoff, holds a wake lock, and requests battery-optimisation exemption.
- Silent failure to connect after re-pairing — the controller's BLE address rotates and the app stored a fixed one. It now matches on device name.
- The trackpad mouse never worked — the button debounce froze the capacitive touch flags.
- No buttons at all in fallback mode — the injection path compared a frame against itself.
- Freezes when stopping the service — blocking binder calls on the main thread, and the USB connection closed mid-read.
New
- Gyro aiming. The controller's IMU was parsed and then discarded upstream. It now drives the right stick, gated behind trackpad touch or a paddle, with adjustable sensitivity.
- NVIDIA SHIELD theme, and a layout that fits a 1080p screen without scrolling.
- Visible DPAD focus, legible from across a room.
- Install Shizuku button — Shizuku has no leanback launcher and is otherwise unreachable with a remote on Android TV.
- Accurate report-rate readout (81 Hz over Bluetooth LE on the test device).
Installing
Signed with a different key than upstream, so the two cannot be installed over each other. If you have upstream's build, export your settings from inside the app, uninstall it, then install this.
Requires Shizuku running. Sideloaded apps may show a Play Protect warning; choose Install anyway.
Original work by SonicDX12.