Controller Compatibility Guide

Information about all known controllers and their compatibility with Controlify.

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

Windows

✅ Works out of the box.

macOS

Works out of the box.

Linux

🟧 Needs system drivers like xpad or xone.

Bluetooth

Windows

Works out of the box.

macOS

Works out of the box.

Linux

🟧 Needs system drivers like xpadneo.

Xbox Wireless Adapter

Windows

Works out of the box.

macOS

❓ Untested.

Linux

Untested.

DualSense Controllers

Wired

Windows

Works out of the box.

macOS

Works out of the box.

Linux

Untested.

Bluetooth

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

Windows

Works out of the box.

macOS

Works out of the box.

Linux

Untested.

Dualshock 4 Controllers

Wired

Windows

Works out of the box.

macOS

Works out of the box.

Linux

Untested.

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

Windows

Works out of the box.

macOS

Works out of the box.

Bluetooth

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

Windows

Works out of the box.

macOS

Works out of the box.

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

Last updated