Skip to content

Adaptive Button Mapping

Quinton Ashley edited this page Apr 12, 2020 · 7 revisions

What is Adaptive Button Mapping?

// Xbox/PS Adaptive profile example
// for an Xbox One controller:

// Nintendo: remapped to match button positions
//  Y B  ->  X A
// X A  ->  Y B

// Xbox or MAME: not remapped
//  Y B  ->  Y B
// X A  ->  X A

// Playstation: not remapped (similar btn positions)
//  Y B  ->  △ ○
// X A  ->  □ X

Although some may find this confusing at first, adaptive profiles map the button layout of your controller to match the physical button layout of controllers made for the system being emulated. In the NTSC region, Xbox and Playstation use the bottom button of the face button diamond as the "yes" or "make selection" button. Starting with the SNES the B button has been at the bottom of the layout diamond on Nintendo controllers. The B button on Nintendo systems means "no" or "back".

Hence by using an Adaptive profile you will always be using the physically correct button layout for the system library you're browsing, regardless of what controller you use!

I recommend using adaptive mapping in your controller settings for each emulator too. This way you can play games using the button layout that game developers intended even if you're using a controller made for a different system.

The other included gamepad mapping profile types are Consistent, for non-adaptive remapping between controller types and None, for no mapping, which is not recommended. You can easily change between these options by editing your preferences file. Configure your controller by editing ui.gamepad. Valid profile names are the controller type (Xbox_PS or Nintendo) plus an underscore then the profile type (Adaptive, Consistent, None).

"gamepad": {
  "gca": true,
  "default": {
    "profile": "Xbox_PS_Adaptive",
    "map": {}
  },
  "ps": {
    "profile": "Xbox_PS_Adaptive",
    "map": {}
  },
  "xbox": {
    "profile": "Xbox_PS_Adaptive",
    "map": {}
  },
  "nintendo": {
    "profile": "Nintendo_Adaptive",
    "map": {}
  }
}

Related Topics:

  • Editing User Preferences