HOW-TO:Map multiple controllers
| Remote controls
|Game controllers||HOW-TO:Map multiple controllers|
Kodi supports mapping multiple "controller profiles". This article explains the reason for this and how to make use of this feature.
There are two reasons for providing multiple profiles:
- You can map the controller in your hands to one that looks like it on the screen
- If your version of Kodi includes Emulators, then you can map each game platform independently
By default, the controller configuration utility ships with a single profile named "Kodi". This is the profile that Kodi uses to interpret actions (see HOW-TO:Modify_joystick.xml).
However, your controller might not look like the Kodi controller. In this case, you can download the profile that matches your controller by selecting "Get more...".
Translating between profiles
If you map just your SNES controller to the SNES profile, Kodi needs to translate it to the "Kodi" controller to know which actions from joystick.xml to use.
Additionally, if your Kodi can play Sega Genesis games, but you have only mapped a SNES controller, Kodi needs to know how to translate the SNES mapping to a Sega Genesis controller.
You will quickly realize that everyone has a different idea of how controllers should map to a different platform's controller. So how does Kodi know how to translate controllers?
"Learning" controller translations
Kodi is not programmed how to translate between controller types. For example, no one told Kodi that the A on an Xbox 360 controller should map to the X on a PlayStation controller.
If you have seen the article HOW-TO:Share button maps, then you will know that many people have submitted button maps with multiple controllers mapped. This is a wealth of data about controller mapping. Kodi analyzes this data and selects the most popular method of translation for the desired controller profiles.
After analyzing this data, it is clear that people prefer two main types of controller mapping:
The physical mapping translates the buttons to where they would "physically" be on the target controller. For example, the A and B buttons are physically swapped between the SNES controller and the 360 controller.
Therefore, a physical mapping would translate A on the SNES controller to B on the 360 controller.
The logical mapping translate the buttons based on the "game logic" that they perform. For example, A is commonly used on both the SNES and the 360 to select an option. They both have the same game logic, even though the buttons are physically reversed.
Therefore, a logical mapping would translate A on the SNES controller to A on the 360 controller.
In the future, there may be a way to quickly swap between these two methods. For now, the physical mapping occurs in the data most often, so this is typically the method that Kodi uses.
Sharing your button maps is important! This gives Kodi a wider wealth of data to draw information from. See the article HOW-TO:Share button maps.