Make your Mac invincible
Connect a PS4 Controller via USB. You can simply use you mini USB cable that came with your PS4 controller to connect it to your Mac computer. Plug the PS4 controller cable into a USB port on your Mac. Then, turn on your controller by holding down the PS4 button located between the two controller sticks. After the controller flashes you’ll then see “Wireless Controller” added to the Mac’s list of paired Bluetooth devices. How to configure your PS4 controller to work with Euro Truck Simulator 2. Open Euro Truck Simulator 2 on your Mac and Continue Game or Create New Profile; Once the game loads you’ll be taken to the screen which. You can use your wireless controller to play games streamed from your PS4 using the Remote Play app on PC or Mac. Your wireless controller can also be used with compatible games and applications on your PC or Mac. Please visit the publisher's website to check if a game or application supports the DUALSHOCK 4 wireless controller. Input Mapper is designed to bridge the gap between the devices you use and the games you play. Started in 2014 as DS4Tool and then DS4Windows, Input Mapper immediately gained a strong following after allowing users to use their Dualshock 4 controllers in games that don't allow for the direct input protocol used by the device.
Making the jump from console gaming to playing on a Mac can be a difficult transition, especially if you buy into the idea that the average Mac gamer is more skilled than their console equivalent.
Besides, you’ll also need to consider the fact that by moving to Mac you’ll no longer be able to use your library of console games, or play with friends you’ve made on there. Plus, you’ll have to learn to use a mouse and keyboard. Or will you?
If you’re wondering how to use Xbox One controller on Mac, or the one from PS4, you’re in the right place. This article is about using Xbox One controller on Mac, as well as PS4, to play games like Overwatch, Minecraft, Eve: Valkyrie, House of the Dying Sun, Thumper, Elite Dangerous, and Star Trek: Bridge Crew (be warned: you might need virtual PC software for some of these titles).
The great thing about having a choice in which controller to use is that, even though both of them are around the same price point, they have a few distinct differences, meaning every Mac user can pick the one more suitable for them. An Xbox One controller is, for example, a little heavier and boasts haptic feedback triggers, whereas the lighter Sony DualShock 4 has an additional (touchpad) button, integrated lithium ion battery, and motion sensitivity.
Upgrade gaming with Setapp
Setapp solves all connection problems. From connecting external devices to securing network connections. An all-in-one tool for Mac.
How To Connect PS4 Controller To Mac
In addition to the advantages mentioned above, many Mac gamers prefer the DualShock 4 to an Xbox One controller because there are a few different ways of connecting PS4 controller to Mac. The first, and perhaps most obvious, is to use an official wireless adapter.
Connecting PS4 controller to Mac wirelessly
It’s likely that many of you reading this, namely those who have struggled with unofficial products and sketchy workarounds in the past, will be breathing a sigh of relief to learn that an official DualShock USB Wireless Adaptor exists.
The official wireless connector is a decent solution for Remote Play or playing Mac games that support the use of external controllers. But the critics may be sceptical about the high price of the accessory — the top video on YouTube that mentions this product is titled “WHY DID THEY MAKE THIS???” — as much cheaper options are readily available: such as micro USB and Bluetooth.
How to use PS4 controller on Mac with micro USB
If you’re not, for whatever reason, picky about whether you play wirelessly or not, then you can just connect PS4 controller to Mac using the micro USB cable that you’d usually use to plug it into your PlayStation.
The extra benefit of using micro USB is that the cable also charges your controller while you play. When you plug it in, you’ll see an orange light appear on the touchpad indicating that it’s charging.
Pair PS4 controller with Mac via Bluetooth
The easiest, fastest, and cheapest way to start playing is to connect PS4 controller to Mac with Bluetooth via PS4 Bluetooth pairing. To do that:
- Open System Preferences > Bluetooth
- Press the PS and Share buttons simultaneously on your controller until you see a light on your DualShock 4 start blinking to indicate that it’s ready to pair
- Look for the wireless controller in the list of Bluetooth devices on your Mac
- Click Pair, and the light on your controller will go from blinking to lit
An even quicker and easier PS4 Bluetooth pairing option is to use ToothFairy, a utility that lets you add and manage all your Bluetooth devices:
- Simply launch ToothFairy
- Highlight the controller from the list of devices
- Click Select
In Settings, you can also choose to add an icon to your menu bar that will connect to your chosen device (in this case, your PS4 Bluetooth controller) with a single click. At this time, there’s no controller icon, but you could use something like a keyboard symbol or the magic wand in its place.
Get ToothFairy for quick connection
Install ToothFairy for free and forget about any Bluetooth trouble. Any device will be paired with your Mac in a click.
If you love shortcuts, ToothFairy gives you an option to record a hotkey to connect or disconnect your controller, and show how much battery life your DualShock 4 has left next to its icon. As long as your controller is awake, ToothFairy is really handy for connecting it to your Mac with a single click!
Best of all, ToothFairy is available for free during your trial with Setapp, along with more than 150 top Mac utilities and apps. Try it out for seamless PS4 Bluetooth experience.
How to connect Xbox One controller to Mac
Input Mapper Ps4 Controller Download Secure
Since it’s so easy to connect a PS4 controller to a Mac, and since Xbox One controllers have built-in support for connecting to Windows, you could be forgiven for thinking that connecting Xbox One controller to Mac would be simple. Unfortunately, you’d be wrong — consider it a casualty of the ongoing Windows vs. Mac war!
It’s possible to connect Xbox One controller to Mac, but doing so requires a little bit of extra work. For a start, you can’t use Bluetooth to connect, so that’s the wireless route blocked right off the bat. You’ll also need to purchase a micro USB cable, since one isn’t included with Xbox One controllers like it is with a PS4 handset.
Once you’ve got your controller and cable in hand, you’ll need to download an Xbox One controller driver for Mac before you can plug anything in:
Ps4 Input Mapper
Head to GitHub (yes, it’s shocking that mapping an Xbox One controller requires unofficial drivers downloaded from GitHub)
Download the latest release
Double click the .dmg file that appears in your Downloads folder
Run the .pkg file
Follow all of the instructions, check out the Read Me file, and then click Install to progress to the next step
Restart your computer and you’ll find an Xbox controller icon in your System Preferences menu
Now it’s time to (finally) plug your controller in, using a USB-C to USB-A adapter if necessary, and head to Security & Privacy to bypass the popup that’ll appear when you plug the controller in.
Once all that’s done, you should be connected!
Which controller should you choose?
Just a quick glance at the instructions above shows that listing how to connect Xbox One controller to Mac takes up almost as much space as three different ways of explaining how to pair PS4 controller with Mac. So for some readers, that will make the decision of which controller to use a no-brainer.
If you already own an Xbox controller, it’s worth remembering that, while the above may look like a bit of a headache, the process is something that you only need to go through once.
Console and Mac gaming often tend to be treated as polar opposites, as if they are on different ends of the spectrum, and never the twain shall meet. But in reality, there’s a huge grey area in the middle that offers up a lot of fun.
Using a controller can, for example, be a really compelling way to enjoy VR titles that aren’t “on rails.” In fact, until someone starts mass producing those omnidirectional treadmills from Ready Player One, they are the best way to do so.
Whichever option you choose, using a controller offers an intuitive and familiar experience that’s backed up by all of the processing power a high-end Mac can offer. And don’t forget to make sure your Mac is properly optimized for games.
There are certain viewpoints that are widely held by gamers — those who play mobile games aren’t for “real” gamers, a Mac doesn’t make for an effective gaming laptop or desktop, and that “controllers are for consoles, mice and keyboards are for computers.”
Don’t buy any of that for a second! Gaming should be something that brings you joy and, whether that means crushing candy all the livelong day or using a controller with your Mac, more power to you.
Meantime, prepare for all the awesome things you can do with Setapp.Read on
RetroArch is the official front end for the libretro API. RetroArch and libretro provide a way to take an existing emulator and load that emulator as a library or 'core'. RetroArch then handles the input (controls) and output (graphics and audio) while the emulator core handles the emulation of the original system. With a few simple changes to the emulator source code, almost any existing emulator could become a libretro core.
In RetroPie, the libretro emulator cores are identified with a
lr- in front of their name. For example,
lr-snes9x2010 is the libretro core of the SNES emulator called snes9x2010.
RetroArch and libretro provide ability to configure controllers once for many emulators instead of having to configure each emulator individually. However, RetroArch also provides the freedom to configure specific emulators individually and even individual games differently if the user wants. This allows a specific setting or button mapping for a certain console or even just for a certain game.
For emulators which are not libretro cores, there are emulator-specific configurations under the respective system's wiki page.
The RetroPad concept
When you configure your controller in EmulationStation, the RetroPie setup script automatically configures RetroArch with the same controls.
RetroArch controls map real-world controller buttons to a virtual controller called a 'RetroPad'. A RetroPad does not exist in real life, it's a concept only within RetroArch. A RetroPad has an ABXY layout like a SNES controller plus four shoulder buttons and dual analog sticks like a Sony DualShock.
You don't have to map all of the RetroPad buttons to a real world button. If your real controller has less buttons than a DualShock, then the virtual RetroPad also has less buttons, that's perfectly fine.
As RetroArch starts an emulator core, it maps the RetroPad configuration to the emulated system's original controls. The mapping for many consoles is represented by the pictures below and on each system's wiki page. If you wish, you can reconfigure this control mapping, either for all RetroArch, for a specific system, or even for a specific ROM.
There are 3 main ways to configure input for RetroArch:
- Autoconfigurations - made in EmulationStation
- Hardcoded Configurations - made by editing
- Core Input Remapping - an easy way to do specific control configurations for specific cores, made in the RetroArch RGUI
RetroArch controls have been integrated into EmulationStation and will be the first thing you see when you boot from the RetroPie SD image the first time. You can also access it from the start menu within EmulationStation under the Configure Input option. Your joypad is automagically configured for libretro (RetroArch) emulators when you configure your controller in EmulationStation. You'll know if your controller has been automagically configured if you see a flash of yellow text on the bottom of the screen with your gamepad ID when you start a game.
The following diagrams are for the 3 most common controllers: Super Nintendo, Xbox 360, and PlayStation 3. They can be used as a reference when configuring your controllers. Each emulator page on the wiki has a diagram of the original controller for its respective console that will correspond to the same inputs listed below.
After you've configured your controller the autoconfig will be created here:
This is an example config for a USB SNES controller
As seen above in the config for the USB SNES controller, each input on the controller has an associated value. When setting up the controller in EmulationStation, these values are then assigned a respective action on RetroArch.
For example, suppose the 'A' button on a USB SNES controller has a value of '1.' When setting up the controller, EmulationStation would prompt you to press the 'A' button on your controller. Pressing the 'A' button would then record into the config file as
input_a_btn = '1', so RetroArch will know that the 'A' button on your physical controller corresponds to the 'A' button on RetroArch's virtual controller, the RetroPad. Therefore, the next time you play a game such as Super Mario Bros. pressing the 'A' button will tell RetroArch to press the 'A' button on its RetroPad, causing Mario to jump. If you accidentally pressed the 'B' button with a value of '2' during setup when it prompted for 'A,' then it would be recorded into the config file as
input_a_btn = '2', so if you want to jump in Super Mario Bros., you would have to press 'B' on your controller.
Hotkeys are combinations of buttons you can press in order to access options such as saving, loading, and exiting games. The following defaults are set automatically the first time you set up your controller from EmulationStation (the numbers will vary depending the controller you use).
Default joypad hotkeys:
|Select||Hotkey||input_enable_hotkey_btn = '6'|
|Select+Start||Exit||input_exit_emulator_btn = '7'|
|Select+Right Shoulder||Save||input_save_state_btn = '5'|
|Select+Left Shoulder||Load||input_load_state_btn = '4'|
|Select+Right||Input State Slot Increase||input_state_slot_increase_btn = 'h0right'|
|Select+Left||Input State Slot Decrease||input_state_slot_decrease_btn = 'h0left'|
|Select+X||RGUI Menu||input_menu_toggle_btn = '3'|
|Select+B||Reset||input_reset_btn = '0'|
Determining Button Values
If you want to edit the entries in the .cfg file for your controller, you will need to know the values corresponding to the buttons on your controller. Usually the relationship between the two can be deduced by looking at the file and noting the entries' names along with the values next to them, assuming that the values have not been jumbled from previous edits or been mixed up due to unknown issues. For example, the USB gamepad above has an entry for
input_x_btn = '0', indicating that the 'X' button on the controller (or the button that you associated as 'X' during controller setup in EmulationStation) has a value of '0.'
On the other hand, maybe you are not sure if the values in the .cfg file is correct or the file is missing entries for buttons that are available on your own controller, such as a 'Home' button. You can run jstest (joystick test) in the terminal by selecting Quit EmulationStation (a keyboard will be required for the following steps).
In the terminal, type and enter
Replace js0 with js1, js2, js3, etc. as needed if not detected.
A multitude of rows and columns should appear. Pressing buttons or moving analog sticks/joystick will cause various entries in the columns to swap between on and off and fluctuate through a range of numbers. The value next to an on/off entry corresponds to the button that you have pressed. The fluctuation of numbers from -32767 to 32767 correspond to the input on your controller that has a range of motion, such as analog sticks/triggers.
If you are interested in figuring out which is your 'Select' button, pressing and holding 'Select' on your controller will cause one column to switch from off to on. The value next to it corresponds to the 'Select' button. If you have a controller with a 'Home' button, pressing the 'Home' button will also cause one column to switch from off to on. To exit jstest, press
Ctrl + c. To return to EmulationStation from the terminal, type and enter
Using these values, you can edit the .cfg file for that controller as needed. For example, if you were interested in switching the your Hotkey button to a 'Home' button available on your controller, you would edit
input_enable_hotkey_btn = 'some number', replacing 'some number' with the value you found for your 'Home' button in jstest.
These configurations are manual edits you can make that are locked to a specific libretro core and controller. Hardcoded controls can be configured either globally, specific to the emulator core, or specific to an individual game.
All RetroArch based emulators can be configured in the following way:
Global settings - that are settings which should apply to all systems - are done in the file:
System-specific settings are done in the files:
Here, SYSTEMNAME is
snes, etc. All settings in these files will override the corresponding global setting as long as they are placed above the
ROM-specific settings can be created in the runcommand menu and show up as configuration files by ROM title:
ROMNAME includes the original file extension before the
supermariobros.zip.cfg These configurations are used when starting this specific ROM.
Custom RetroArch Override Examples
Example Default Per-System retroarch.cfg
Example Per-System Control Override retroarch.cfg
Note the values below are for one person's controller, your values may differ. Make sure that these values are placed above the
Example Per-ROM Override retroarch.cfg
Core Input Remapping
Core Input Remapping differs from the other two methods as it remaps how the core receives input rather than how the gamepad is coded, for example you can tell the snes core to switch button A and B on the controller for gameplay, but you can still use 'A' to select in the RGUI and 'B' to go back where as hard-coding would make B select and A back. Core Remapping is much more practical than hard-coded mapping but is limited to the cores that support it.
Quick way to do it:
- Start a game of the system you want to remap the buttons
- Invoke RGUI (Hotkey+X with player 1)
- Go to Quick Menu and then Controls
- Configure the buttons the way you want
- Select Save Core Remap File
- OR, if you want to save this remapping for the current game only, select Save Game Remap File
Retroarch Controls Cheat-Sheet
- Core input remapping: Remapping your controller by Floob
- Testing Joypad: Testing joystick by Floob
- Configuring USB Controllers With Retroarch, Controller not configured fix by Herb Fargus
- Configure a wireless PS3 controller with RetroPie 3 by Floob
- XBox 360 Wireless Controller Configuration by Herb Fargus