Questions

How to set up a controller in RetroArch on a Mac

Most well-known controllers configure themselves in RetroArch. If yours does not, go to Settings, Input, RetroPad Binds, Port 1 Controls, choose Set All Controls, and press each button as it asks. If the pad is dead even there, change the controller driver: on a Mac RetroArch has three, mfi, hid and sdl2, and a pad that is silent in one often works in another.

The steps are from the libretro documentation, Input and Controls and Controller Autoconfiguration, read on October 7, 2026. I make InputConfig, a free Mac app that maps controllers to keys and mouse. RetroArch does not need it to read a pad, and I say below where it helps.

On this page: 10 sections
  1. Steps
  2. Let it configure itself first
  3. Bind it by hand
  4. Pick the right controller driver on a Mac
  5. Set up hotkeys without accidents
  6. Add a second player
  7. If the pad is dead
  8. Where a mapper helps, and where it does not
  9. The short version
  10. Questions

Steps

  1. Connect the controller to the Mac and open RetroArch.
  2. Go to Settings, Input, RetroPad Binds, Port 1 Controls.
  3. Choose Set All Controls and press each button as RetroArch asks for it.
  4. Choose Save Controller Profile so RetroArch recognizes the pad next time.

Let it configure itself first

RetroArch keeps a database of controller profiles and matches a pad by its name, its vendor and product numbers, and the driver in use. A match means the pad works the moment it connects, menu included. The profiles update from inside RetroArch: Main Menu, Online Updater, Update Controller Profiles. Update the controller profiles before mapping anything by hand.

Download InputConfig on the Mac App StoreInputConfig is completely free on the Mac App Store. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon.

Bind it by hand

  • You: Go to Settings, Input, RetroPad Binds, Port 1 Controls, and choose Set All Controls.
  • RetroArch: Asks for each button of its RetroPad in turn.
  • Check: Press the matching button on your pad each time. Then choose Save Controller Profile.

The RetroPad is RetroArch's own imaginary controller: a D-pad, four face buttons, Select and Start, two shoulders, two triggers and two clickable sticks. You map your pad to it once, and every system RetroArch emulates takes its buttons from it. Bind the RetroPad once, and every core inherits it.

Pick the right controller driver on a Mac

DriverReadsUse it for
mfiApple's game controller supportPads listed under Game Controllers: PS5, PS4, Xbox, Switch Pro
hidUSB and Bluetooth devices directlyPlain USB pads, SNES-style pads, adapters
sdl2The SDL library's controller listA second try for either kind

Change it under Settings, Drivers, Controller, then restart RetroArch. A pad that macOS does not list as a game controller will never appear in the mfi driver. How to use a USB SNES controller on a Mac covers the plain USB kind.

Set up hotkeys without accidents

RetroArch's shortcuts have keyboard defaults: F1 opens the menu, F2 saves a state, F4 loads one, and Space toggles fast forward. They can go on controller buttons as well, and the libretro documentation recommends binding an Enable Hotkeys button first, so a hotkey only fires while that button is held. Bind Enable Hotkeys before any other hotkey, or a game button will double as save state.

Add a second player

Port 2 Controls is the same screen for the second pad, and each port is bound separately. Bind each port with the pad that will play on it. How to use two controllers on a Mac and two-player arcade encoders cover the Mac side.

If the pad is dead

  1. Check the Mac. A pad should show under System Settings, Game Controllers, or for a plain USB pad under System Information, USB.
  2. Change the driver. mfi for pads in Game Controllers, hid or sdl2 for the rest. Restart RetroArch after changing it.
  3. Bind by hand. Set All Controls, then Save Controller Profile.
  4. Quit Steam while you test. Its controller layer can send keys of its own into other apps.

On a Mac, the driver setting fixes more dead pads in RetroArch than anything else. Emulator controller not working on a Mac goes further.

Where a mapper helps, and where it does not

  • Not for the pad itself. RetroArch reads controllers directly. Bind the RetroPad there.
  • Keyboard-only setups. RetroArch's default player keys are the ones InputConfig's Emulator / Arcade layout sends, apart from Select, so a pad RetroArch cannot read can still play through its keyboard binds.
  • The Mac around RetroArch. The same pad moves the pointer through file dialogs and opens RetroArch from a button.

Use RetroArch's own binds when it sees the pad, and keys from a mapper when it does not. InputConfig sends keyboard and mouse events, not a virtual controller.

The short version

  • Known pads. Configure themselves. Update the profiles.
  • Unknown pads. Set All Controls, then save the profile.
  • Dead pads. Change the controller driver and restart.

Profiles first, binds second, driver third.

Questions

Which controller driver should I use in RetroArch on a Mac?

mfi for controllers macOS lists under Game Controllers, such as PS5, PS4, Xbox and Switch Pro pads, and hid or sdl2 for plain USB pads. Restart RetroArch after changing it.

Why is my controller not working in RetroArch on a Mac?

Usually the controller driver does not match the pad. Change it under Settings, Drivers, Controller, restart, and bind the pad with Set All Controls.

Does an Xbox controller work with RetroArch on a Mac?

Yes, an Xbox Wireless Controller paired over Bluetooth. macOS lists it as a game controller, so the mfi driver reads it.

How do I save my controller setup in RetroArch?

After binding, choose Save Controller Profile in the same Port 1 Controls screen. RetroArch then recognizes that pad by itself.

What are RetroArch's default hotkeys on a Mac?

F1 opens the menu, F2 saves a state, F4 loads one, and Space toggles fast forward, by the libretro documentation.

Download InputConfig on the Mac App StoreCompletely free. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon. Open source on GitHub.

Updated