Controlify
  • Controlify Wiki
  • Users
    • Controller Compatibility Guide
    • Controller issues
    • Setting up Controlify
  • Developers
    • Controlify Entrypoint
    • Bindings API
    • Screen Operation API
Powered by GitBook
On this page
  • My Controller isn't listed
  • Xbox Controllers
  • Wired
  • Bluetooth
  • Xbox Wireless Adapter
  • DualSense Controllers
  • Wired
  • Bluetooth
  • Dualshock 4 Controllers
  • Wired
  • Steam Deck
  • Stadia Controller
  • Wired
  • Bluetooth

Was this helpful?

  1. Users

Controller Compatibility Guide

Information about all known controllers and their compatibility with Controlify.

PreviousControlify WikiNextController issues

Last updated 7 months ago

Was this helpful?

Use the sidebar to navigate to locate your controller.

My Controller isn't listed

There is a high chance it will work. This page serves more of a troubleshooting purpose, so if your controller doesn't get detected, you can check here if there are any steps required to get it to work.

If your controller does not appear on this list or is shown to be working, check out the controller issues page for troubleshooting steps.

Xbox Controllers

Wired

Bluetooth

Xbox Wireless Adapter

DualSense Controllers

Wired

Bluetooth

HD haptics are not supported over bluetooth due to bandwidth constraints.

Dualshock 4 Controllers

Wired

Steam Deck

Starting with 2.0.0-beta.16, Controlify got proper Steam Deck support. You need to install Decky Loader to allow Controlify to use this enhanced Steam Deck driver.

Stadia Controller

Wired

Bluetooth

To get bluetooth, you need to patch your controller's firmware on Stadia's official website.

Learn how to make sure your Linux kernel supports Stadia controllers

Linux only got support for Stadia controllers starting kernel version 6.6. Any version below this is using the generic HID module.

On some systems, even having kernel version >=6.6 is not enough, you need to install optional HID drivers for Stadia rumble:

sudo apt install build-essential linux-source linux-headers-amd64 libncurses-dev
cd && mkdir kernel && cd kernel
tar xf /usr/src/linux-source-6.6.tar.xz
cd linux-source-6.6
cp /lib/modules/6.6.13-amd64/build/.config .
cp /lib/modules/6.6.13-amd64/build/Module.symvers .
make menuconfig # Select Stadia module in Device Drivers > HID bus support > Special HID drivers > Google Stadia force feedback
make scripts prepare modules_prepare
make M=drivers/hid
sudo cp drivers/hid/hid-google-stadiaff.ko /lib/modules/6.6.13-amd64/kernel/drivers/hid/
sudo depmod -a
sudo shutdown -r now # Not required but doesn't hurt

This example is specific for Kernel 6.6, use the latest version available at the time of writing. If you have done this correctly, when you connect it, you should see lines like this in dmesg:

stadia 0005:18D1:9400.0004: input,hidraw3: BLUETOOTH HID v1.00 Gamepad [Stadia9GZQ-56c4] on d4:3b:04:xx:xx:xx
stadia 0005:18D1:9400.0004: Force Feedback for Google Stadia controller

Please note that modifying the kernel is dangerous, and you should only attempt this if you know what you are doing. This method was provided by Imore337, described on a GitHub issue describing Stadia's incompatibility

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

🟧 Needs system drivers like xpad or xone.

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

🟧 Needs system drivers like xpadneo.

Windows

✅ Works out of the box.

macOS

❓ Untested.

Linux

❓ Untested.

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

❓ Untested.

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

❓ Untested.

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

❓ Untested.

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

🟧 Requires up to date Linux Kernel

Windows

✅ Works out of the box.

macOS

✅ Works out of the box.

Linux

🟧 Requires up to date Linux Kernel