HOW-TO:Configure controllers: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
m (Fix mininav)
(Update guide for Estuary skin)
Line 2: Line 2:


{{future|17}}
{{future|17}}
{{notice|1= 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 v17 Krypton features improved controller support. The [[HOW-TO:Modify joystick.xml|joystick keymaps]] have been simplified and basic configuration can now be done without leaving Kodi.


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.
== Connecting controllers ==


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.
{{big|Start by connecting your controllers. You should receive a notification like this:}}


__TOC__
[[File:Controller connected.jpg]]


== Setting up controllers ==
{{big|If not, see [[Troubleshooting controllers]].}}


{{larger| First, find the controller window in System settings. It's well hidden. }}


[[File:Controllers 1.png]]
== Configuring controllers ==


{{big|Kodi has a controller configuration utility to configure the physical layout of your controller. It can be found under system settings:}}


[[File:System settings.jpg]]


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


[[File:Controllers 2.png]]
{{big|Under the Input category, find the "Configure attached controllers" item:}}


[[File:Configure attached controllers.jpg]]


{{larger| (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. }}
{{big|If this is greyed out, see [[Troubleshooting controllers]].}}




[[File:Controllers 3.png]]
{{big|The controller configuration utility looks like this:}}


[[File:Controller configuration utility v17.jpg]]


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


{{big|Select the "Kodi" controller. You will be asked to press A:}}


[[File:Controllers 4.png]]
[[File:Controller dialog - Press A.jpg]]


{{big|If you do nothing for 6 seconds, the prompt will be cancelled. You can start again at any button by selecting it.}}


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


{{larger| 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. }}
{{big|After mapping A, the utility will ask you to map B. This will continue until all buttons are mapped or the prompt times out.}}


{{larger| The picture in the center gives a better idea of which buttons are which. }}
[[File:Controller dialog - Press B.jpg]]




[[File:Controllers 5.png]]
{{big|If your controller doesn't have a button (like the Guide button), let the prompt time out and move on to the next button}}


[[File:Controller dialog - Press Guide.jpg]]


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


{{big|If you have a controller that looks different than the 360 controller, you can select "Get more..." to download additional controller profiles:}}


[[File:Controllers 6.png]]
[[File:Controller dialog - Get more.jpg]]




{{larger| When you select a button, an instruction appears. }}
{{big|For example, the SNES profile lets you map a SNES controller:}}


[[File:Controller dialog - map SNES.jpg]]


[[File:Controllers 7.png]]


{{big|Kodi uses the "Kodi" profile. If you map this, it will override the SNES profile. To unmap the "Kodi" profile, select "Reset":}}


{{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.
[[File:Controller dialog - reset controller.jpg]]
 
{{larger| If your controller is radically different, you have two options. }}
 
* {{larger| You can press the button that matches the physical location }}
* {{larger| You can press the button that matches the game logic }}
 
{{larger| For example, a physical match would be the 360 controller's A and the SNES's B. }}
 
{{larger| On the other hand, a logical match would be the 360 controller's A and the SNES's A. }}
 
{{larger| If no button is pushed after a few seconds, the instruction will start counting down. }}
 
 
[[File:Controllers 8.png]]
 
 
{{larger| When the countdown reaches zero, the prompt is aborted. }}
 
{{larger| The prompt can also be aborted by pressing any key on the keyboard or remote that causes the button to lose focus. }}
 
{{larger| When the wizard reaches the end of the list, the instructions are over and your controller is mapped. }}
 
 
[[File:Controllers 9.png]]
 
 
{{larger| 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 [https://github.com/garbear/xbmc/blob/retroplayer-15.2/system/keymaps/joystick.xml joystick.xml].
 
 
 
Specifically, the joystick keymap used to look like:
 
<syntaxhighlight lang="XML">
<button id="1">Select</button>
<axis id="1" limit="-1">AnalogSeekBack</axis>
</syntaxhighlight>
 
 
The controller configuration utility creates a buttonmap that looks like:
 
<syntaxhighlight lang="XML">
<feature name="a" button="1" />
<feature name="lefttrigger" axis="-1"/>
</syntaxhighlight>
 
 
And Kodi's remaining keymap looks like:
 
<syntaxhighlight lang="XML">
<a>Select</a>
<lefttrigger>AnalogSeekBack</lefttrigger>
</syntaxhighlight>
 
 
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)


[[Category:Gaming]]
[[Category:Gaming]]

Revision as of 21:01, 6 November 2016

Home icon grey.png   ▶ Remote controls
▶ Games
▶ Game controllers ▶ HOW-TO:Configure 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.

Kodi v17 Krypton features improved controller support. The joystick keymaps have been simplified and basic configuration can now be done without leaving Kodi.

Connecting controllers

Start by connecting your controllers. You should receive a notification like this:

Controller connected.jpg

If not, see Troubleshooting controllers.


Configuring controllers

Kodi has a controller configuration utility to configure the physical layout of your controller. It can be found under system settings:

System settings.jpg


Under the Input category, find the "Configure attached controllers" item:

Configure attached controllers.jpg

If this is greyed out, see Troubleshooting controllers.


The controller configuration utility looks like this:

Controller configuration utility v17.jpg


Select the "Kodi" controller. You will be asked to press A:

Controller dialog - Press A.jpg

If you do nothing for 6 seconds, the prompt will be cancelled. You can start again at any button by selecting it.


After mapping A, the utility will ask you to map B. This will continue until all buttons are mapped or the prompt times out.

Controller dialog - Press B.jpg


If your controller doesn't have a button (like the Guide button), let the prompt time out and move on to the next button

Controller dialog - Press Guide.jpg


If you have a controller that looks different than the 360 controller, you can select "Get more..." to download additional controller profiles:

Controller dialog - Get more.jpg


For example, the SNES profile lets you map a SNES controller:

Controller dialog - map SNES.jpg


Kodi uses the "Kodi" profile. If you map this, it will override the SNES profile. To unmap the "Kodi" profile, select "Reset":

Controller dialog - reset controller.jpg