Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Gamepad not detecting on macOS Catalina 15



  • I am having issues with the gamepad.

    I connect my xbox one controller to my mac (Catalina 15) and even running the simple gamepad test, it throws the error "Gamepads not found" I have already installed the latest drivers from the xbox360 github. I have tried the wired connection and also the Bluetooth connection. Nothing seems to find the controller. I have seen many people complain about this but haven't seen any fixes. How would I get this working on my mac?

    Thanks!


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Is the controller properly found by the system ?



  • yes shows up fine on the xbox360 driver GUI and other testing apps



  • Does anyone have any idea why this is happening and how to fix it?



  • Nobody has any answers to this? I have tried contacting the devs and QT technical support directly as well. It's very strange that such a big issue is going unanswered.



  • Post your sample/test code. Also, make sure your Qt app has the correct privilege level to read the USB events. I'm not a MAC guy so I do not know what's involved doing that on your platform. I've used xbox360 on many occasions under linux, and aside from mapping the buttons and pots correctly, it's pretty much plug-n-play. Keep in mind that if the particular xbox-one USB vendor/product ID isn't recognized by the x360 driver then it won't be enumerated at all.



  • The test code is simply the "simple test" for the gamepad in the example projects inside QT creator. I'm not doing anything special. I've used multiple controllers from different vendors and it doesn't recognize it. This issue on the mac has gone unanswered for 3 years now, the first bug report was opened in 2017, and yet QT still mentions that the gamepad is supported on the mac in their official website.

    I have opened a new bug report as well with absolutely no responses from QT.

    Also these gamepads i'm trying are recognized fine on my linux machine. I need this to work on my mac so that I don't need to keep jumping in-between distributions.

    Note: all privileges have been granted to QT. I've even completely disabled all security features.

    19:45:28: Starting /Users/user/Qt/Examples/Qt-5.12.6/gamepad/build-simple-Desktop_Qt_5_12_6_clang_64bit-Debug/simple.app/Contents/MacOS/simple ...

    error:

    qt.gamepad: Available backends: ("darwin")
    qt.gamepad: Loading backend "darwin"
    Did not find any connected gamepads
    


  • @bluezap said in Gamepad not detecting on macOS Catalina 15:

    I've used multiple controllers from different vendors and it doesn't recognize it.

    doesn't recognize "it" or doesnt recognize any USB gamepad?



  • If you run the QML example will it work?

    I recently just tried using QGamePad, at first it seems to not work but it actually does. On the apps startup every time there are no available gamepads. I actually hooked it up to a timer and have it try again, the second time it finds the gamepad and works.

    The behavior i strange, I am not sure why but I noticed that even though it was saying the gamepad wasnt working, in the QML example when I put in inputs from the gamepad they were being detected so I figured something was up, thats when i tried that timer approach. Here is a snippet of my code.

    connect(&mtimer,&QTimer::timeout,this,[&](){
            auto gamepads = QGamepadManager::instance()->connectedGamepads();
            if (gamepads.isEmpty()) {
                qDebug() << "Did not find any connected gamepads";
                return;
            }
            m_gamepad = new QGamepad(*gamepads.begin(), this);
           
           //connect gamepad signals to your slots now....
    
            mtimer.stop();
        });
    
    mtimer.start(1000);
    
    

    I connect the timer's timeout signal to a lambda which checks to see if there are any gamepads, if it doesn't find one (which it never does the first time for me) it will try again until it does. This is within my class constructor, mtimer and m_gamepad are class members. I also start the timer again when the gamepad disconnects, this way it will pick it back up if the gamepad reconnects.

    Hope that helps, good luck.

    -Shawn



  • @Kent-Dorfman Yes, the gamepads



  • @MrShawn Hi, thank you for your reply. Yes, I have tried this approach as well with absolutely no luck. Are you running macOS Catalina? if so did you install any additional drivers etc?

    I simply don't understand why QT says gamepad supports the macOS when it clearly does not. Can we all please complain about this, false advertising at it's best.


Log in to reply