HOW-TO:Configure controllers

From Official Kodi Wiki
Revision as of 19:13, 6 November 2016 by Garbear (talk | contribs) (Test mininav edit)
Jump to navigation Jump to search

{{mininav|Remote controls
▶ Games|[[Game controllers]}}


Future.png FUTURE Krypton FEATURE:
This page or section describes features that are a future part of the Kodi v17 release, codename "Krypton". For more information see development builds.
Emblem-important-yellow.png NOTICE:
This is just an initial wiki copy of http://forum.kodi.tv/showthread.php?tid=252465 to help get the ball rolling on the final documentation. Much of this is subject to change, and some of the content below might not make sense outside of the thread it was copied from.

Kodi v17 Krypton features improved controller support. The old system required cumbersome log scanning and xml editing. Now, everything can be done from the GUI.

Kodi is joining a large effort to automatically configure controllers for emulators (because let's face it, input configuration is [i]by far[/i] the worst experience of any emulator setup). Automatic configuration means you can plug in an N64 controller and have it work in a SNES game, automatically and without any input.

If you'd like to help, you can share your button maps with the Kodi community. As we gather data from many users, this "votes" for your configuration, allowing it to potentially become the default for all Kodi users.

Setting up controllers

First, find the controller window in System settings. It's well hidden.

Controllers 1.png


When you first launch the configuration utility, you will see something that looks like this:

Controllers 2.png


(optional) The most interesting thing you can do here is to select "Get more...". This lets you install profiles of controllers for several game platforms.


Controllers 3.png


When you've pimped out your install with every controller, it will look like this:


Controllers 4.png


On the left is a list of controllers for several different platforms ("Kodi" will allow you to control Kodi).

On the right is a list of buttons belonging to each controller. When you select a different controller, the list updates to show its buttons.

The picture in the center gives a better idea of which buttons are which.


Controllers 5.png


If the mapping process is not immediately evident, there is a help button in the bottom right.


Controllers 6.png


When you select a button, an instruction appears.


Controllers 7.png


{{larger| If your controller looks the same as the one on the screen, you should push the button on your controller that matches the button you see.

If your controller is radically different, you have two options.

  • You can press the button that matches the physical location
  • You can press the button that matches the game logic

For example, a physical match would be the 360 controller's A and the SNES's B.

On the other hand, a logical match would be the 360 controller's A and the SNES's A.

If no button is pushed after a few seconds, the instruction will start counting down.


Controllers 8.png


When the countdown reaches zero, the prompt is aborted.

The prompt can also be aborted by pressing any key on the keyboard or remote that causes the button to lose focus.

When the wizard reaches the end of the list, the instructions are over and your controller is mapped.


Controllers 9.png


Good job!


Limitations

Note: This section assumes familiarity with Kodi's Keymap system for joysticks.

It's important I mention the limitations of the current utility. This was built to solve ONE PROBLEM AND ONE PROBLEM ONLY. I've removed the 4,000 lines of joystick XML configuration and replaced it with a single keymap named joystick.xml.


Specifically, the joystick keymap used to look like:

<button id="1">Select</button>
<axis id="1" limit="-1">AnalogSeekBack</axis>


The controller configuration utility creates a buttonmap that looks like:

<feature name="a" button="1" />
<feature name="lefttrigger" axis="-1"/>


And Kodi's remaining keymap looks like:

<a>Select</a>
<lefttrigger>AnalogSeekBack</lefttrigger>


The driver-specific data (button IDs, axis IDs) have been separated from the Kodi commands. Kodi's joystick keymap is now independent of the driver configuration. The controller configuration utility simply allows you to collect this driver information without doing it by hand as before.

This means that all previous limitations STILL HOLD:

  • You can't have different button maps for different players if they use the same joystick
  • You can't change commands in the joystick.xml keymap (you'll have to edit joystick.xml by hand, just like every other keymap)