Xbox Series X Controller not Working on M1 Mac
shadoez opened this issue · 15 comments
My controller is detected by macOS & works perfectly around every other part of my system. The Controllable mod does not detect my controller & won't show in the "Select a Controller" screen. I've tried on 1.16 & 1.18 both have that same issue, tried Bluetooth & USB. I also tried running the x86 version of the game to see if there was a problem with the mod & the arm architecture but ended up having the same issue as if I were to run the game natively.
Me too, Contoller detected by OS but the mod can't select it, X-Box One Controller...
I have the same problem on MacOS. The controller is detected by the OS but the mod does not seem to see it. I'm using an Xbox Elite Series 2 controller.
My Series controller wasn't mapped in the community mapping repo: https://github.com/gabomdq/SDL_GameControllerDB
I created a mapping for my Series controller yesterday using the SDL gamepad tool, and it was detected by the mod, which I built locally after manually adding the mapping to the gamecontrollerdb within this mod.
This mapping exists on the previously mentioned repo now, so the next time this repo author updates with the latest mappings, it may fix your Series controllers not connecting. It may not though, since each model of controller has a unique guid.
Basically, you may just have to add the mapping yourself; there's nothing technically wrong with the mod if your controller isn't detected, it just isn't aware of your specific controller config.
I've tried using an M1 Pro MacBook Pro with Minecraft 1.19.2, Forge 43.1.38 and Controllable 0.16.5 and an Xbox One S controller without success.
@shadoez, which versions exactly did you use? Anything else you did to make it work?
@YouRik Did you ever get this to work? I'm in the same boat with a Switch Pro controller.
Fantastic. I tried everything I could think of, including updating to Ventura. Would be dope if we could get some clarity/updates on the issue.
Unfortuantely I simply can't provide clarity on the issue. I don't own a Switch Pro Controller, let alone a Mac to perform my own test.
- Try a different controller if possible to eliminate that it's not MacOS, just specific controllers.
- Install Steam and launch the game through it. I know on Linux it enables a virtual gamepad which is compatible with Controllable, so maybe Mac does it to.
- Patch the gamecontrollerdb.txt file inside of the mod jar with the latest version from here:
https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
I know at a certain point, newer versions of MacOS simply broke gamepad support for GLFW (a few issues mentioned after updating macOS). I don't write the libraries that interface with the drivers/hardware, that ultimately determines what controllers are supported. Games on Steam support controllers almost 100% because they have access to the Steam Input library, while I don't.
@MrCrayfish Thank you for the response! I meant no disrespect. Just trying to figure this out and make sure I havent missed anything along the way. Unfortunately I don't have another controller outside of the standard JoyCons, which I don't think are supported by Controllable. The Pro Controller (at least for me) does connect to my M1 just fine, and shows up in Gamepad Tester with no issues. I'll give points 2 and 3 a shot and see what happens, then update back here!
UPDATE: I tried the steam approach, and it sort of worked. Controllable recognized my Switch Pro, but did so as an Xbox 360 controller. Only the right joystick and right trigger button would work, however, with no other buttons being registered.
That's a good sign, however that leads me to a bug in GLFW. glfw/glfw#1627
Unfortunately I can't fix this. All I can recommend is getting a different controller. If you had Windows, DS4Windows is the solution to fix the Switch Pro Controller (for anyone stumbling across this issue).
@John-Lea For me, the Steam approach did not work but I retried @RussellSanders1's idea of creating an SDL mapping and rebuilding the mod locally and it worked this time.
I will add a PR with my Xbox One Controller String added to the gamecontrollerdb.txt file and I suppose this would be the best approach to fixing this issue for your controller as well.
If you need help with this, I'd be able to guide you.
BTW thanks to @RussellSanders1 for the solution and @MrCrayfish for the mod in general and for getting back to us.
This was using an Xbox One controller but I believe it should work for the Switch Pro controller as well. I do not have one to test.