I’ve been experimenting with the marvellous Dolphin Emulator recently. It’s an open source project that allows us to play Nintendo Gamecube and Wii games on modern hardware. Dolphin is available for Windows, OS X and Linux.
I have a wireless Xbox 360 controller for Windows at my disposal, but the only Windows hardware I have is the first generation Surface Pro. While the controller connects without issues, the Surface sadly just isn’t fast enough to run Dolphin.
My more powerful hardware is Mac based, and Dolphin runs great on my Mac Mini. But I had no idea how to connect my Xbox controller to it.
Turns out it’s actually a breeze to setup: let me show you how it worked for me on OS X El Capitan.
Which Xbox Controller am I referring to here
Before we start, let’s clear up a small misunderstanding that may arise with Xbox controllers. The Xbox 360 came with wireless controllers that used to hook up directly to the console. Those are great, but traditionally there was no way to connect them to anything else (they don’t use standard Bluetooth).
To alleviate this, Microsoft have released two versions of this controller for PC gamers: the Xbox 360 Controller for Windows (wired, USB cable attached), and a more elegant version called the Wireless Xbox 360 Controller for Windows (same controller as the one that came with the Xbox 360, plus a wireless USB dongle).
Either controller will work fine, here’s a picture of the one I’m using:
Installing the Xbox 360 controller’s driver
No official Mac drivers are available for the Xbox controllers, but Colin Munro developed one back in 2005. The project was forked and further developed on GitHub, where you can find the latest version. Head over to the Releases section and download an installable DMG archive.
After installing the driver, you’ll find a new item under System Preferences called Xbox 360 Controllers:
Plug in your wireless USB dongle now and press the big X button to connect the controller to the dongle (I’m assuming it’s already been paired). Wired controllers simply plugin to the USB port and are connected immediately.
Open the preference pane to verify this: when connected, your controller should show up in the list.
The driver will read the controller’s input, but it won’t map anything you do to what a game might expect (for example, press the space bar to jump in a platform game). To use the controller with anything other than Dolphin, you’ll need a small utility that will interpret controller input and translate it to keyboard and mouse movements, such as Joystick Mapper or Gamepad Companion (both available from the App Store).
However, the Dolphin Emulator has such a mapping option built in, so there’s no need for such tools. Let’s see how to map that Xbox controller so that it behaves just like an old Gamecube controller.
Configuring Dolphin for use with the Xbox 360 Controller
Open Dolphin and head over to GCPad. If you don’t see this option, it will read “Controllers”. That’s an indication that Dolphin can’t see a gamepad, probably because the driver isn’t installed, or it’s disabled. If Dolphin was open while you installed the driver, restart your system.
Click on GCPad and select your Xbox controller under device. By default the button mapping looks like this:
I didn’t quite understand how to change this, but it’s remarkably easy and only takes 30 seconds:
Take a look at the left box entitled Buttons. You’ll see a column of controller buttons (A, B, X, Y, Z, etc) that correspond to the buttons on the original Gamecube controller. By default they’re mapped to keyboard shortcuts you can see in the right column (for example, the Gamecube controller’s A button is mapped to your Mac keyboard’s X button).
To change this, simply click on the mapped shortcut. Turns out the right column in each section is made up of buttons (I didn’t get that at first). Click one and Dolphin will wait a few seconds for you to press what you’d like to map to this button instead (it shows “waiting”). If you’re not fast enough, it’ll revert back to the previous value.
So to setup our controller, simply press the button next to A, then press the corresponding button on your Xbox controller. Do this with every item on the menu, and within less than a minute, you’ll have a fully functional gamepad setup. My results look like this:
You can store this setup if you like: type a suitable name in the Profile field at the top right and hit Save. Dolphin will also remember your setup even if you don’t though.
See that my C-Stick in the screenshot above is pointing diagonally downwards? This can happen when an analogue stick is moved and then snaps back into the middle. The “middle” isn’t always exactly the same, so every time it snaps back, the controller will deliver a slightly different value.
When we come to launch a game, it may happen that this is interpreted as the stick being pushed into this direction, leading to an annoying in-game experience. If your stick is fair and square in the middle (like my left one), you have nothing to worry about. But if you see something like I have on the right, here’s how to fix it.
When connected to a console, game pads usually calibrate themselves every time you launch a game. But because we’re dealing with different software here, we may have to configure Dead Zones to alleviate such issues. Dead Zones are areas around the middle of the stick that are regarded as “the stick is now in the middle, no matter what feedback we get”.
While Dolphin supports this feature, it’s much more visible and easy to understand by opening up the Xbox Controller preference pane again. Head over to the Advanced tab and use the little slider to draw a small square around the middle of each stick’s position. Anything inside that little square is now seen as “the stick is in the middle”, even if it’s off by just a fraction.
Once adjusted, head back to the Dolphin GCPad configuration and map your sticks again (if you had this issue obviously, otherwise ignore my ramblings).
Enjoy Gamecube on your Mac!
That’s really all there’s to it: grab a ROM, select it and start playing. Your Xbox 360 controller will henceforth behave just as if it was a Gamecube controller, and your Mac will behave as if it was a Gamecube (or Wii – although I haven’t figured out how to connect a Wii Remote yet. Watch this space).
Not all games will run particularly well, so this isn’t a complete replacement for a games console – but it’s enough for several afternoons of retro gaming fun.
To give you an idea of performance: My dual core i7 MacBook Pro only has an Intel HD3000 graphics card, and it’s struggling. But my quad core i7 MacMini with its Intel HD4000 card plays Pikmin just fine – however it’s still not enough to enjoy Super Mario Sunshine.
If you hook up your Mac to a big screen TV, help your graphics card by switching the output to 720p rather than the default 1080p. It’ll mean less work for your card and a smoother gaming experience (under System Preferences – Displays – select Scaled and pick a resolution).
As always, enjoy!