Controlify

Controlify

609k Downloads

[Bug] DualShock 3 over Bluetooth on Linux not detected when native libs are loaded

TechniKris opened this issue ยท 2 comments

commented

Current Behaviour

If native libs are loaded then Minecraft doesn't recognize the controller at all if connecting over Bluetooth.
The only reaction from the game is that it sends [Render thread/WARN]: No controller found via USB hardware scan! Using SDL if available. in the log right after the device connects. Other than that, there's no on-screen prompt, no pop-up and the game ignores all controller input.

Expected Behaviour

The controller should be detected over Bluetooth and show correct glyphs.

Screenshots

Connecting the controller over Bluetooth when native libs are disabled. It's detected as a generic controller and displays Xbox glyphs.
DS3 detected, displays as an unknown controller

Connecting the controller over a wire. It displays as a missing texture, however it displays correct PlayStation glyphs, so it seems to be detected correctly.
DS3 detected, displays as a missing texture

Reproduction Steps

0.1. Pair the controller with your system (on Arch the DS3 requires the additional bluez-plugins package to be installed, I have no idea about other distros)

  1. Start an instance with SDL libs enabled
  2. Turn on the controller
  3. Wait for the device to connect
  4. See on-device diodes indicate that connection got established, bluetoothctl CLI tool report that device connected, a desktop tray icon (if present) show that connection got established, but Minecraft log only show No controller found via USB hardware scan! Using SDL if available.
  5. Try using the controller in game, confirming there's no reaction

Logs

I couldn't attach multiple log files here, so I added them as files in the "Additional Information" section

Mod Version

1.4.6+1.20 (Minecraft 1.20.1)

Controller

Sony DualShock 3

Bluetooth

  • Yes

Operating System

Linux/SteamOS

ARM

  • Yes

Additional Information

The issue does not occur if native libs are disabled, however the game detects the controller as a generic one, therefore displaying Xbox glyphs. There's also zero vibrations, but that's expected.

For reference: wired connection seems to detect the controller properly (works; displays PS glyphs), regardless if using native libs or not. Only "broken" things are DS3's missing icon.png and the game requesting callibration on every connection of the device, every time creating an additional controller entry in config/controlify.json

Additional details:

  • OS: Arch Linux
  • Launcher: MultiMC (installed using the official PKGBUILD)
  • Exact controller details:
    • model no.: CECHZC2E
    • rev.: A1
    • product/vendor IDs: 054c:0268

Logs:
sdl libs disabled.log
Libs disabled: the log reports successful connection with the controller over Bluetooth (although detected as an unknown controller, with Xbox glyphs), then disconnection, then successful (although with an error related to missing icon.png) connection over USB.
sdl libs enabled.log
Libs enabled: the log reports failure to detect the controller connected over Bluetooth, then successful (...) connection over USB.

Potentially related issues:
It seems like incorrect glyphs with libs disabled could be related to #104, although that user seems to have SDL libs enabled

Just to make sure...

  • I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
  • I have made sure there are no other issues describing the same problem on the issue tracker.
commented

This also is closed by 372cfa6

commented

I can confirm, 372cfa6 has brought this case up to par with the case where SDL libs are disabled: There's no vibration, Xbox glyphs are used and a wrong controller icon.png is used (the SNES/"Unknown" one this time though), but other than that the controller is fully functional. So I'd say that closes this particular issue. Thank you for the fix!

Also, just to confirm: da44ec3 does take care of the black and pink missing texture thing on wired connections (even though it depicts a DS4 instead, but I'm not going to be picky about it ๐Ÿ˜…).