Big thread of gamepad testing

#1

Now that 1.2.157 is out, having a bunch of different gamepads, I decided to test them all on as many platforms and as many connection modes as I can, looking for issues. I’ll keep updating this post as I go through them all.

Feel free to post your own findings for your own controllers in this structured format.

I used Controllers Lite (abrev. CL from now on) on macOS to cross-check that the gamepads actually work. All the Linux tests were made on Ubuntu 18.04.2.

Gamepad Tester project: https://github.com/britzl/publicexamples/tree/master/examples/gamepad_tester

gdc tool

TLDR:

Just download this and most things will work:
all_gamepads.gamepads.txt (450.7 KB)

Big table of gamepads

Gamepad OS Issues Gamepad mapping
Xbox One (Bluetooth) macOS gdc doesn’t see triggers (Button 18/19, analog, in CL) and the share and guide buttons (Button 17/1 in CL). Everything else works. xboxone_bt_mac.gamepads.txt (2.7 KB)
Xbox One (Bluetooth) Windows Same issue as Xbox 360 Wireless See xbox360_win.gamepads.txt
Xbox One (Bluetooth, default Ubuntu driver) Linux Driver doesn’t report share and guide buttons. Everything else works. xboxone_bt_linux.gamepads.txt (3.3 KB)
Xbox One (Bluetooth, xpadneo driver) Linux All ok, but has the same name as the default driver, so cannot use both maps at the same time. xboxone_xpadneo_linux.gamepads.txt (2.6 KB)
Xbox One (USB) (driver) macOS All ok default.gamepads
Xbox One (USB) Windows Same issue as Xbox 360 Wireless See xbox360_win.gamepads.txt
Xbox One (USB) Linux All ok xboxone_usb_linux.gamepads.txt (2.6 KB)
Xbox 360 Wireless (with dongle) (driver) macOS All ok default.gamepads
Xbox 360 Wireless (with dongle) Windows Using default.gamepads the triggers are stuck in the 0.5-1.0 range. Creating a new mapping with gdc works ok. Forum post xbox360_win.gamepads.txt (2.3 KB)
Xbox 360 Wireless (with dongle) Linux All ok xbox360_linux.gamepads.txt (2.6 KB)
DualShock 4 (Bluetooth) macOS Defold sees it as “Wireless Controller” and uses the same mapping as USB DS4. gdc sees it, but pressing anything does nothing. Forum post
DualShock 4 (Bluetooth) (driver) Windows Same issue as Xbox 360 Wireless; gdc freezes with this connected, but works in-engine See xbox360_win.gamepads.txt
DualShock 4 (Bluetooth) Linux All ok ds4_bt_linux.gamepads.txt (3.5 KB)
DualShock 4 (USB) macOS All ok default.gamepads
DualShock 4 (USB) (driver) Windows Same issue as Xbox 360 Wireless; gdc freezes with this connected, but works in-engine See xbox360_win.gamepads.txt
DualShock 4 (USB) Linux All ok ds4_usb_linux.gamepads.txt (3.6 KB)
JoyCon L (Bluetooth) macOS All ok. Stick is not analog due to OS driver limitations joycon_l_mac.gamepads.txt (1.0 KB)
JoyCon R (Bluetooth) macOS All ok. Stick is not analog due to OS driver limitations joycon_r_mac.gamepads.txt (1.0 KB)
JoyCon L (Bluetooth) (driver) Windows Couldn’t get it to recognize as an XInput device (probably driver issue)
JoyCon R (Bluetooth) (driver) Windows Couldn’t get it to recognize as an XInput device (probably driver issue)
JoyCon L (Bluetooth) Linux All ok. Stick is not analog due to OS driver limitations joycon_l_linux.gamepads.txt (1.6 KB)
JoyCon R (Bluetooth) Linux All ok. Stick is not analog due to OS driver limitations joycon_r_linux.gamepads.txt (1.6 KB)
Logitech Chillstream (old aftermarket Wired 360 clone, XInput) (USB) (driver) macOS All ok default.gamepads
Logitech Chillstream (USB) Windows Same issue as Xbox 360 Wireless See xbox360_win.gamepads.txt
Logitech Chillstream (USB) Linux All ok chillstream_linux.gamepads.txt (2.6 KB)
Genius Maxfire Blaze 3 (ancient DualShock 1 clone, DirectInput) (USB) macOS All ok maxfireblaze3_mac.gamepads.txt (2.2 KB)
Genius Maxfire Blaze 3 (USB) Windows Doesn’t work due to it not being XInput
Genius Maxfire Blaze 3 (USB) Linux All ok maxfireblaze3_linux.gamepads.txt (3.3 KB)
15 Likes

#2

Wow, impressive work! We should be able to add the mappings you’ve shared to builtins. @AGulev can you please create a ticket for this?

3 Likes

#3

Wow, thanks a lot @dapetcu21! Really helpful!

3 Likes

#4

Thanks! I’ll concatenate all the mappings tomorrow, together with what’s already in builtins, but I wouldn’t add the Maxfire Blaze and Logitech Chillstream to builtins. They’re ancient, out of production controllers me and a colleague had since childhood :laughing: .

2 Likes

#5

I found this in the xpad driver source code, and I was wondering if we should add all those controller names (at least the ones with XTYPE_XBOX360 and XTYPE_XBOXONE) to the default .gamepads file. They probably have the same button maps (They were consistent between Xbox One, Xbox 360 and Chillstream from what I noticed).

For example, there are at least 3 versions of the Xbox One controller, with different names.

0 Likes

#6

Here’s the .gamepads file with all the gamepads (what was already there in default.gamepads, Xbox 360, Xbox One, DS4, Joycons, plus all the xpad gamepads on Linux).

all_gamepads.gamepads.txt (450.7 KB)

To sum up:

  • On macOS, the DS4 controller doesn’t work at all via Bluetooth
  • On macOS, the Xbox One controller via Bluetooth is missing triggers and the share and guide buttons
  • On Windows, the Xbox 360 binding in default.gamepads had wrong trigger ranges. I replaced it with a working one
  • On Linux, it would be cool to be able to differentiate between Xbox One Bluetooth via xpadneo vs default HID driver.
  • On Linux, gdc crashes on startup for me (and it crashes for @Klear on Windows)
  • On Windows, gdc freezes, then exits silently when a DS4 is connected
5 Likes

#7

I added new task for that: Issue-4217 ( #4217)

5 Likes

#8

Hi, I found duplicates in you list for linux:
device: “Mad Catz Xbox 360 Controller”
device: “Afterglow AX.1 Gamepad for Xbox 360”
device: “PDP Xbox One Controller”
device: “Rock Candy Gamepad for Xbox 360”
device: “Logic3 Controller”
device: “PDP Afterglow AX.1”
device: “SteelSeries Stratus Duo”
device: “PDP AFTERGLOW AX.1”
device: “Razer Sabertooth”
device: “Razer Atrox Arcade Stick”
device: “Xbox Airflo wired controller”
device: “ThrustMaster Ferrari 458 Racing Wheel”

I think I can remove it? (or maybe duplicates should have another platform?)

1 Like

#9

Sure, if you found duplicates, you can remove them

0 Likes

#10

Solved in Defold 1.2.160 has been released

3 Likes