Getting the hardware for XBox 360 Controller on Mac
The required hardware, besides a Mac of course, is straight forward.
Microsoft XBox 360 Wireless Controller for Windows
Either buy a “Microsoft XBox 360 wireless controller for Windows” bundle (app. $40) or, in case you have XBox 360 controllers laying around, just get the “Xbox 360 Wireless Gaming Receiver for Windows” (app. $16).
In this article I intend to play games under Steam on a Mac, on MacOS X Yosemite (free), by using this controller.
Updated article for XBox One Controllers …!!
If you’re running macOS Catalina (10.15) or newer, and you’re considering an XBox One Controller, then please read the article “Bluetooth XBox One controller on a Mac” for more up to date info.
Apple Bug waiting to be resolved for certain Wireless Controllers
Some wireless controllers may not work well with recent macOS X versions. See also this issue report.
At least one clone USB dongle appears to work – probably due to a very different implementation in the hardware.
(Thanks Thomas for reporting this!)
About the hardware …
- The USB receiver can handle up to 4 XBox 360 controllers.
- Any XBox 360 controller will work.
- The USB receiver works fine even when connected to a USB hub.
- The software used will also work with a wired controller.
- The USB cable of the Wireless Play and Charge kit is just a charger cable! A USB receiver is still needed!
Note that this is not the only Game Controller option out there for your Mac. Other Joysticks/Game Controllers, even the ones from a PlayStation or Wii will work with your Mac as well. Some wired, some wireless (proprietary or Bluetooth). We’re just focussing on the XBox 360 controller in this article.
XBox One Controller and Alternative Drivers …
For those who have an XBox One controller: good news. Well, partially anyway. There are good drivers for the XBox One Controller, but not for operating it wireless. The XBox One Controller needs to remain connected with an USB cable. The advantage would be that your rechargeable battery pack remains charged (obviously not you regular AA batteries!).
Drivers, which work with the XBox 360 controller as well, can be found for free on Github: 360Controller.
There is an alternative driver: XBoxOneControllerEnabler, little less of a nice GUI and a little less frequent maintained though.
MacOS X does not natively come with drivers for the XBox 360 controller, which makes sense, it’s not their responsibility to provide hardware drivers for 3rd party hardware manufacturers, especially when they choose to swerve away from standards …
Unfortunately, Microsoft, doesn’t feel the need to supply drivers for Mac users for their hardware, which is unfortunate and leaves the user with the mess to solve by themselves.
So we require a driver created by another party. And there is such a think in this case.
Colin Munro, at TattieBogle, released a driver as early as 2006, which appears not to have been updated since 2012. For this, seemingly abandoned driver, you’d need some tricks to get it to work under Yosemite – which is related to new “rules” concerning the use of Kext’s (Kernel Extensions). Not something I’d like to do …
UPDATE: There is a 360 Controller driver that is being actively maintained, a fork of the original project, you can get it from GitHub as well:
DOWNLOAD - XBox360 Controller for Mac
||1.0.0 Alpha 4
Direct reference link: https://www.tweaking4all.com/downloads/360ControllerInstall.dmg
| Download Now
Step 1 – Install the driver
After downloading the driver (above), double click the DMG file, so your Mac mounts it.
Double click the “Install 360 Controller.pkg” file to start installation, and follow the instructions.
Keep in mind that your Mac has to reboot after the installation.
After rebooting your Mac, you’ll notice that you can find “Xbox 360 Controllers” in the System Preferences.
Mac System Preferences – XBox 360 Controllers settings
Step 2 – Connecting the XBox 360 Controller to your Mac
The next step is to connect your controller,… which is easy …
First of all, connect the USB receiver to a free USB port, either on you Mac or on a USB hub (if you use one). Once plugged in a USB port, the USB receiver’s green light should go on or start blinking.
Now follow these steps to get connect (one time only) your XBox 360 controller:
- Press the big XBox logo button (a.k.a. the “Guide” button) on the game controller for it to switch on.
- Press the button on the USB receiver.
- Press the Connect button on the game controller.
- The circle around the Xbox button should light up one quarter of the circle indicating the controller number.
Once linked, if you want to use the controller in the future, simply just press the big Xbox button on the controller to get going.
XBox 350 Controller – Get Connected
Step 3 – Testing the XBox 360 Controller
Now that the controller is connected to your Mac, time to go test if it works OK.
Go to “System Preferences” “XBox 360 Controllers” and you’ll see a screen like the screenshot below.
You can now test all buttons on the controller to see if they work properly – there is not much else going on here, except that you can shutdown the controller (use the “Power off” button) …
MacOS X – Xbox 360 Controller Preferences
Step 4 – Playing Source (Valve) games on your Mac
Well, I’m a Steam user, so the first thing I’d like to test are some of my favorite games like the “Half-Life 2” series – yes, I know it’s OLD, but I just love the Half-Life games and Half-Life 3 is still not available (I honestly doubt it will ever see the day of light, but I’m still hoping) …
It didn’t take much effort to find this Knowledge Base Article at Steam, concerning the use of a XBox 360 Controller on Mac with Source games (Half-Life is a so called “Source” game by Valve).
First we need to get into the so called “Developer Console”, which is relatively easy for most Valve games.
- Launch your Valve game
- From the main menu select “Options” “Keyboard” and click the “Advanced” button.
- Check the option “Enable developer console (~)” and click “Apply“.
Once enabled (your game will remember next time you start the game), use the “~” key (tilde) during game play, or in the main screen, to get to the console.
Half-Life 2: Episode 2, Portal, Team Fortress 2, and Left 4 Dead
These Valve games come with XBox 360 controller support build in.
To enable the controller, type in the developers console (~):
To disable the controller, type:
Half-Life 2 and Half-Life 2: Episode One
Tip: First try
exec 360controller in the developer console before proceeding with these steps – it might already work!
For these two, we will need to define a configuration file (which can also be used with the other games to customize the controls). Creating such a configuration file is easy, simply use a text editor like TextWrangler to create a plain text file with the (example) content below. With the code below we will mimic the behavior seen with “Half-Life 2: Episode 2” so we can use
exec 360controller and
Save the file as “360controller.cfg” in the following location:
~/Library/Application Support/Steam/steamapps/common/<game name>/<short name>/cfg/
For example, for Half-Life 2, this would be:
~/Library/Application Support/Steam/SteamApps/common/Half-Life 2/hl2/cfg/
joy_name "Xbox360 controller"
bind "Z AXIS POS" "+attack2"
bind "Z AXIS NEG" "+attack"
bind "JOY1" "+jump"
bind "JOY2" "+reload"
bind "JOY3" "+use"
bind "JOY4" "impulse 100"
bind "JOY5" "+speed"
bind "JOY6" "phys_swap"
bind "JOY7" "impulse 50"
bind "JOY10" "+zoom"
bind "JOY9" "toggle_duck"
bind "JOY8" "pause"
bind "POV_UP" "slot1"
bind "POV_RIGHT" "slot2"
bind "POV_DOWN" "slot3"
bind "POV_LEFT" "slot4"
To mimic the “undo360controller” as described for “Half-Life 2: Epsiode 2” and others, create a file called “undo360controller.cfg” with the following content:
More details can be found here:
Step 5 – Configuring for ALL Games on your Mac
Now, I’m fully aware that there are more games for the Mac than just those awesome Half-Life games. For those you might want to consider, and even for Half-Life 2, the use of a so called JoyStick Mapper application that map a joystick action to mouse or keyboard inputs. These tools really improve the experience of your XBox 360 Controller on Mac.
Some example applications:
Do you have suggestion or alternatives? Please post them in the comment section!
NOTE: Mapping Joystick Actions to Keystrokes …
For a while Joystick Mapper was the go-to tool to map Joystick actions to keystrokes – useful for games that do not natively support a controller. This application no longer seems to work with Catalina.
A better, and FREE alternative is Enjoyable – which allows you to make your controller to keystrokes.
Of all the tools that can map joystick actions to key strokes or mouse moves, I’ve picked “Joystick Mapper” as my test candidate – honestly, $5 is a steal considering the amount of work that actually goes into developing a tool like this.
First off all you’ll need to get Joystick Mapper of course, it’s available for $4.99 at the Apple App Store.
Keep in mind that you have to connect your joystick before starting Joystick Mapper, or go to “Quick Options” and click “Refresh Joysticks” (or press R ), so your connected Joystick will be seen.
We will need to create a preset for our game preferences, which is easy.
Just open Joystick Mapper and click “Add New Preset“, and a new window opens.
Joystick Mapper – Create a new Preset
Enter a name for future reference, as it’s typically created for a specific game or user (“My Game” in the screenshot) and for each joystick/player, click “Add a new joystick“.
Now that we have identified our joystick, time to “bind” joystick inputs to keyboard or mouse moves, which is a surprisingly easy thing to do.
Click on “Add new bind“, and next click “scan” and press the button or or control of your Game Controller that you’d want to use, or select on manually. Next select a keyboard or mouse action – pretty much everything you’ll ever need is in the list.
Rinse and repeat for all the buttons you’d like to use.
Joystick Mapper – Bind keys or mouse actions to your game controller
If needed, you can do this again for other Game Controllers – and to make it easy there is is little “Clone” icon in the upper right corner so you can replicate for other controllers.
You can close this window when you’re done.
To use the preset, simply set a checkmark before the preferred preset (profile) you’ve created for the game you’re about to play. Once checked simply start the game and you’re good to go!
Note : Do NOT close Joystick Mapper before starting the game – keep it running! You can use “ H ” to hide the window.
Joystick Mapper – Enable your Preset before starting your game