• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!
  • Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Mac OSX Yoyo Runner not recognizing gamepad inputs (Switch Pro controller) on my Mac Mini (M1)

I recently bought a 2020 Mac Mini with an M1 processor, an upgrade from my 2014 Macbook Air. On my old machine, I was able to pair my Nintendo Switch Pro controller via bluetooth without any issues. I can still pair my controller to my new Mac Mini, and I can even play games on itch io with it. So I know my computer is receiving and interpreting the controller inputs correctly. But I cannot for the life of me get my Gamemaker executable in the Yoyo Runner to recognize my controller's input. I've changed nothing in the code from when it was working on my Macbook Air, and the Yoyo Runner is receiving input from the keyboard. It's just my controller that's not being recognized. I've tried pairing it both through the native bluetooth connection and my 8Bitdo USB. Neither work. I've ensured Gamemaker and Yoyo Runner have access to receive inputs from bluetooth in my security preferences too. Nada. Any ideas what could be causing this? Any resources out there to help me pair a controller with my Mac Mini M1 for use in testing my game in Yoyo Runner?

UPDATE: I decided to purchase the SN30 Pro+ by 8Bitdo and it pairs and plays perfectly on my machine. I highly recommend this controller for anyone developing on a new Mac.
 
Last edited:
I recently bought a 2020 Mac Mini with an M1 processor, an upgrade from my 2014 Macbook Air. On my old machine, I was able to pair my Nintendo Switch Pro controller via bluetooth without any issues. I can still pair my controller to my new Mac Mini, and I can even play games on itch io with it. So I know my computer is receiving and interpreting the controller inputs correctly. But I cannot for the life of me get my Gamemaker executable in the Yoyo Runner to recognize my controller's input. I've changed nothing in the code from when it was working on my Macbook Air, and the Yoyo Runner is receiving input from the keyboard. It's just my controller that's not being recognized. I've tried pairing it both through the native bluetooth connection and my 8Bitdo USB. Neither work. I've ensured Gamemaker and Yoyo Runner have access to receive inputs from bluetooth in my security preferences too. Nada. Any ideas what could be causing this? Any resources out there to help me pair a controller with my Mac Mini M1 for use in testing my game in Yoyo Runner?
Official Nintendo controllers are a ***** to make work on anything else than the hardware they were meant to be used with. Even on windows, they're a pain to setup, I can't even imagine on a Mac.
That said, I was able to make mine work (except the rumble, never got it to work, and not sure it's even possible) with @kburkhart84 marketplace extension.
But...The real easy and cheapest way to go gamepad is to use and support mainly XBox controller.
I'm playing South Park: The Fractured But Whole these last days, and it doesn't support half the controllers I got, so in the grand scheme of things, is it THAT important to have 10000% gamepad support? Hmmm...
It's cool to have the remapping options, tho, even on a keyboard. I use a cheap-a** one from Amazon and it ghosts like crazy, so it's useful.
 

Maa2007

Member
Nintendo switch controller cant even run on windows properly because it does not have the drivers yet,
but it does work perfectly with steam, as steam has added support for Nintendo Switch controllers
so what I do on windows is I import my game into steam, through: games menu > add a non-steam game to my library
then run your game from steam and it should have perfect support for Nintendo switch controller
also don't forget to activate Nintendo switch support from steam sittings, as it's off by defaults

this solution works on windows, I didn't try it on a Mac
 

kburkhart84

Firehammer Games
That said, I was able to make mine work (except the rumble, never got it to work, and not sure it's even possible) with @kburkhart84 marketplace extension.
If you got it working with my extension, then the OP should be able to get it working with the standard input system as well. My extension is nothing but GML with some added stuff on top to make things better. So that means that GMS and therefore GML are picking the gamepad up. I'm guessing that it is working in my extension since it checks literally all DInput supported inputs, like 10 axes, 32 buttons, and 4 POV Hats, most of which doesn't exist on most devices. I'm guessing the switch drivers are mapping things to non-standard stuff, and so the OP isn't picking it up.

It is also worth noting that the docs on gamepad support are really pretty lacking as far as explaining standard gamepads(as opposed to XInput stuff). So, the main explanations show XInput stuff, using the gp_ constants for the axes and buttons. But you can also use just IDs, 0 - 9 for axes, 0 - 31 for buttons, to access things, and the gp_ constants don't work generally for DInput devices. Since XInput doesn't exist on Mac(the API doesn't, drivers for the devices exist in other forms of course), the gp_ constants are also likely not working.

@JordanOttesen Does your code use only gp_ constants, or are you using integer ID values?
 
If you got it working with my extension, then the OP should be able to get it working with the standard input system as well. My extension is nothing but GML with some added stuff on top to make things better. So that means that GMS and therefore GML are picking the gamepad up. I'm guessing that it is working in my extension since it checks literally all DInput supported inputs, like 10 axes, 32 buttons, and 4 POV Hats, most of which doesn't exist on most devices. I'm guessing the switch drivers are mapping things to non-standard stuff, and so the OP isn't picking it up.

It is also worth noting that the docs on gamepad support are really pretty lacking as far as explaining standard gamepads(as opposed to XInput stuff). So, the main explanations show XInput stuff, using the gp_ constants for the axes and buttons. But you can also use just IDs, 0 - 9 for axes, 0 - 31 for buttons, to access things, and the gp_ constants don't work generally for DInput devices. Since XInput doesn't exist on Mac(the API doesn't, drivers for the devices exist in other forms of course), the gp_ constants are also likely not working.

@JordanOttesen Does your code use only gp_ constants, or are you using integer ID values?
@kburkhart84, I'm using only gp_ constants, so I'll have to look into using the IDs instead. The gp_ constants did however work on my 2014 Macbook Air without issues, so somehow XInput was working on that machine. Curiously, on my 2020 Mac Mini when I use gamepad-tester.com, I can see my machine picking up inputs from the Switch controller as if it is two sources. One gamepad index is relatively unresponsive (sometimes showing inputs, but often not; it commonly freezes on axis inputs as well) and the second index is more responsive, though still not 100% accurate. I'm beginning to think this is deeper than a mapping issue... I just ordered the 8Bitdo SN30 Pro+ with the USB receiver as I've seen in gaming forums that it plays well on the new macs. I'll keep this thread updated when I find out if it works with gp_ constants. If that doesn't work, I'll try an xBox controller as @Slow Fingers suggests.
 

Attachments

kburkhart84

Firehammer Games
so somehow XInput was working on that machine
Unless I'm missing something, XInput can't/won't exist on your Mac based machines. It is a Microsoft only API, similar to all the DirectX stuff(D3D, DInput, etc...). Now, XInput devices can(and seemingly do) work fine on Mac, using other drivers that are not XInput. And it is possible that the gp_ constants have worked in the past as well. It just depends on what those constants actually are, and what the driver is reporting. It is also possible you are working with a different driver than the one you were working with before. It's also possible you had actually installed a good driver from the start on the other machine and forgot about it, and then haven't done it on this machine. I personally don't use Mac, so I don't know all the details...but hopefully you have something to go on.
 
Gotcha, it must have been a driver on my old Mac then. Regardless, I've found a solution in the 8Bitdo SN30 Pro+. Works like a dream on the M1 mac (which recognizes it the same way it would a Dualshock 4). Thanks for taking time to respond to this thread! I'm new to this forum, and thus far have had great experiences with the community.
 

kburkhart84

Firehammer Games
Gotcha, it must have been a driver on my old Mac then. Regardless, I've found a solution in the 8Bitdo SN30 Pro+. Works like a dream on the M1 mac (which recognizes it the same way it would a Dualshock 4). Thanks for taking time to respond to this thread! I'm new to this forum, and thus far have had great experiences with the community.
That's awesome!
 

BenRK

Member
Gotcha, it must have been a driver on my old Mac then. Regardless, I've found a solution in the 8Bitdo SN30 Pro+. Works like a dream on the M1 mac (which recognizes it the same way it would a Dualshock 4). Thanks for taking time to respond to this thread! I'm new to this forum, and thus far have had great experiences with the community.
I've managed to get my Xbox One controller running on my M1 Macbook Air, though I admit I haven't tried using it in GMS2.3 yet. Best of luck on your project!

EDIT: I will say I've heard a lot of people having issues with controllers and the M1 Macs in general due to the Rosetta 2 compatibility layer. I don't know if that's been fixed and I don't know if YoYoGames recompiled the Mac runner for the M1 or if they're relying on Rosetta.
 
Top