• 1
  • 2
  • 3(current)
  • 4
  • 5
  • 7
Xbox One controller Support
#31
Profucious, I need to understand what's going on better. I tried to PM you, but you have that turned off.

I appreciate your solution, but I've got further issues and want to better understand what's going on.

- In an emulator program I discovered that I could not map the controller at all. It would instantaneously return a -z axis input for all button mappings. This looks a lot like what was going on with the left trigger in Kodi before I tried your XML file.

- In another controller mapping program (PadStarr, which is a cousin of Pinnacle Game Profiler) I'm getting similar bizarre behavior on an old profile for Google Chrome. The trigger appears to be controlling the mouse when I intended it to control scrolling up and down and the mouse ought to be mapped to the left joystick. As it is, it just causes the mouse to run up and left.

- The controller continues to work fine in Steam both in Steam's browser and in games.

- I had bought the wireless adapter that was released in late October. I thought there might be a driver issue (since the adapter shows up in Device Manager as a "network adapter" with the actual controller as an HID device). Hooking it up via USB shows the same weird behavior.

What gives? I'd like to help the designers of these programs, but I need to understand what's going on. I'm seeing conflicting information about combined and separate axes that Microsoft changed. Also something about XInput vs DirectInput, but nothing clearly explained.

Thanks in advance for your help.
Reply
#32
Keymap for Xbox one wireless controller using the default Kodi keymapping (same as X360)

joystick.Microsoft.Xbox.One.Controller.xml

HOW TO USE
- Put the file in your custom keymap directory "Username"\AppData\Roaming\Kodi\userdata\keymaps\
- Only if you use a skin with a vertical menu, change Left/right by Up/Down under the <Home> section

IMPORTANT
- Not tested thoroughly but should work, it is just copy/paste from the standard X360 keymapping coming with Kodi, plus a change related to triggers
- Unfortunately not the ultimate definitive solution

THE KNOWN ISSUE
- Kodi still doesn't read 100% correctly the triggers initial position (mapped to scrolling) when the application is focused.
- One can notice that when alt/tabbing Kodi ouside Home and going back to Kodi. There is a constant scrolling that can be stopped by pressing any key on the pad.
- You will not see that in home screen, because triggers have been mapped to directions instead of scrolling

NOT PERFECT FOR YOU IF
- You are launching executables taking the focus away from Kodi (via advanced launcher for example). You will see the scrolling when going back to kodi
- You are starting Kodi directly to another screen than Home (why?)

Maybe the remaining issue cannot be solved only by modifying keymap. So I really hope some user or Kodi team member with expert knowledge of Directinput/Xinput will have a closer look and come up with the 100% working fix, to make the Xone pad work as flawlessly as the old X360 pad

Thanks to users who brought solutions in this post (Ollsville, Profucius...)
Reply
#33
(2015-12-08, 12:47)natethomas Wrote: We need a version that doesn't alter keymapping. If you want to provide a version that keeps the old keymapping but just adds support for the One controller, we can add that to Kodi 16, but we'll need it pretty quick. We can then get the newer v3 keymap PR'd for Kodi 17.

RazorFR posted one, but it may not be complete. I don't have the time to test it now, but a look at the xml shows the joysticks are not named like my xml is: His are named <joystick name="Controller (Xbox One For Windows)"> whereas mine are named <joystick name="Xbox Wireless Adapter For Windows"> which means his xml may not work properly with the Xbox Wireless Adapter, though it may work fine if you plug your Xbone controller directly in with a MicroUSB cable.

(2015-12-09, 23:22)RazorFR Wrote: Keymap for Xbox one wireless controller using the default Kodi keymapping (same as X360)

joystick.Microsoft.Xbox.One.Controller.xml

HOW TO USE
- Put the file in your custom keymap directory "Username"\AppData\Roaming\Kodi\userdata\keymaps\
- Only if you use a skin with a vertical menu, change Left/right by Up/Down under the <Home> section

IMPORTANT
- Not tested thoroughly but should work, it is just copy/paste from the standard X360 keymapping coming with Kodi, plus a change related to triggers
- Unfortunately not the ultimate definitive solution

THE KNOWN ISSUE
- Kodi still doesn't read 100% correctly the triggers initial position (mapped to scrolling) when the application is focused.
- One can notice that when alt/tabbing Kodi ouside Home and going back to Kodi. There is a constant scrolling that can be stopped by pressing any key on the pad.
- You will not see that in home screen, because triggers have been mapped to directions instead of scrolling

NOT PERFECT FOR YOU IF
- You are launching executables taking the focus away from Kodi (via advanced launcher for example). You will see the scrolling when going back to kodi
- You are starting Kodi directly to another screen than Home (why?)

Maybe the remaining issue cannot be solved only by modifying keymap. So I really hope some user or Kodi team member with expert knowledge of Directinput/Xinput will have a closer look and come up with the 100% working fix, to make the Xone pad work as flawlessly as the old X360 pad

Thanks to users who brought solutions in this post (Ollsville, Profucius...)

Thanks Razor from those who prefer the 360 mappings. Question, do you use the Wireless Adapter with this mapping? Or do you use a Micro USB cable? If the adapter, we may be able to merge our xml's together. If usb cable, then that would explain what I mentioned quoted to natethomas above.

Glad to see progress coming along here. I've been more than pleased with my XML, it feels second nature now. Looking forward to a Kodi implementation one day (v16 fingers crossed, v17 for sure).
Reply
#34
(2015-12-09, 02:48)Bedwyr Wrote: Profucious, I need to understand what's going on better. I tried to PM you, but you have that turned off.

Sorry about that mate, new to this forum so I haven't customized my settings yet. I'll try to answer anything that I can, and that hasn't already been.

(2015-12-09, 02:48)Bedwyr Wrote: - In an emulator program I discovered that I could not map the controller at all. It would instantaneously return a -z axis input for all button mappings. This looks a lot like what was going on with the left trigger in Kodi before I tried your XML file.

Not sure what's going on here. MS did change a few things since the 360 controller. Maybe a Kodi team member can investigate.

(2015-12-09, 02:48)Bedwyr Wrote: - In another controller mapping program (PadStarr, which is a cousin of Pinnacle Game Profiler) I'm getting similar bizarre behavior on an old profile for Google Chrome. The trigger appears to be controlling the mouse when I intended it to control scrolling up and down and the mouse ought to be mapped to the left joystick. As it is, it just causes the mouse to run up and left.

I haven't used PadStarr yet. I did try Pinnacle a bit, it looks featureful, almost too much. I ended up settling with Controller Companion, as it has a nice built-in mapping for general PC use (mouse movement, scrolling, etc) and switches nicely to fullscreen games automatically. You might try this one out and see if it helps you any.

(2015-12-09, 02:48)Bedwyr Wrote: - The controller continues to work fine in Steam both in Steam's browser and in games.

I think this is because Steam, being as big as they are, have a team that has worked hard at implementing compatibility. Also MS has provided nice drivers this time around.

(2015-12-09, 02:48)Bedwyr Wrote: - I had bought the wireless adapter that was released in late October. I thought there might be a driver issue (since the adapter shows up in Device Manager as a "network adapter" with the actual controller as an HID device). Hooking it up via USB shows the same weird behavior.

I just bought my adapter over black friday, not sure if there are any differences in model number or otherwise performance, though I would doubt so it being so new. The Network Adapter is actually how MS designed it, since technically the adapter is a modified version of WiFi that talks to the controller, unlike the PS4 and Wii U controllers which use standard bluetooth (thanks MS...). However, you can go into the Windows 10 store and download the "Xbox Accessories" app that will update the firmware of your controller now and in the future. Try that. I did mine way back before I started editing my XML because I thought that would've fixed the Kodi issue, maybe updating the firmware is necessary for my XML to work?
Reply
#35
@profucius
I am using the wireless adapter not the cable. Latest firmware updated through the Xbox accessories app
Microsoft driver under Network cards is called "Xbox Wireless Adapter for Windows", version 21.50.58.120 dated 03/11/2015

Kodi is reading
17:02:56 T:7016 NOTICE: CJoystick::EnumJoysticksCallback : Enabled Joystick: Controller (Xbox One For Windows)

But yeah maybe some altnames will need to be added just to be sure.
Reply
#36
(2015-12-10, 07:48)profucius Wrote: I just bought my adapter over black friday, not sure if there are any differences in model number or otherwise performance, though I would doubt so it being so new. The Network Adapter is actually how MS designed it, since technically the adapter is a modified version of WiFi that talks to the controller, unlike the PS4 and Wii U controllers which use standard bluetooth (thanks MS...). However, you can go into the Windows 10 store and download the "Xbox Accessories" app that will update the firmware of your controller now and in the future. Try that. I did mine way back before I started editing my XML because I thought that would've fixed the Kodi issue, maybe updating the firmware is necessary for my XML to work?

It likely already updated the firmware. I'd tried the accessories app and it doesn't do anything functional. I take that to mean that there's no changes required. I've also tried experimenting by finding an older driver I can try to use and roll back to, but haven't found links to anything substantial.

My guess at this point is that it's simply the weird axis change they made on the triggers in a recent(ish) driver or firmware that's causing all the weird behavior. Programs like PadStarr/Pinnacle and others may simply expect a pure 360 XInput control setup. Likewise Kodi. They and other companies will simply find that the latest changes break XB1 controller support in their programs.

I agree that Steam has the resources to deal with it, but what weirds me out is that all games I've tried using that controller still work perfectly. Game controller support is separate from Steam and Valve, so they're definitely doing something right that certain independent software vendors haven't caught up to yet. Maybe an MSDN programmer who knows can provide insight about what's been going on in the world of XInput support.
Reply
#37
One thing is for sure, and that is that Kodi needs a more aggressive deadzone for axis controls in the defaults. Both this issue and others would greatly benefit from that.
Reply
#38
(2015-12-11, 10:09)Ned Scott Wrote: One thing is for sure, and that is that Kodi needs a more aggressive deadzone for axis controls in the defaults. Both this issue and others would greatly benefit from that.

You're right, but I don't think it would help the control mismatch. This is my understanding (I could be wrong as I'm no expert). By default the position (unpressed) of the left trigger in the XB1 is sending through Xinput the 360 equivalent of a full (not sure about that one because movement stops at about the halfway point of pulling the trigger) -z deflection. Changing the size of the deadzone wouldn't do anything in this case.

But in general I agree with you. Gamepads seem to be a tad touchy.
Reply
#39
Ok, this is just a reference I'm posting for experimenters who want to try some different things. A long time ago Major Nelson posted 32 and 64 bit drivers for the XB1 as a USB plug-in device here. He removed those links once the wireless adapter was released but a news site still has direct access to those links and they do appear to be dated 2014.

The news site:

http://wccftech.com/xbox-controller-pc-d...or-nelson/

The links (valid as of posting date):

32: http://mjr.mn/XboxOnePCDriversx86
64: http://mjr.mn/XboxOnePCDriversx64

Use at your own risk.
Reply
#40
This seems to be an issue with newer versions of Kodi. The Alienware Alpha with the Hivemind version of Kodi runs Helix and the xbox one controller works perfectly fine with no issues. If anyone can help me possibly find the file that is getting this working i'd greatly appreciate it. It's gotta be in there somewhere. I've tried copying and pasting the entire keymaps folder to the newest version of Kodi and that doesnt fix the issue. Any other ideas?
Reply
#41
Is there a ticket opened in the bugtracker for this? All I found was initial support added before MS mucked around with the XInput layout:

https://github.com/xbmc/xbmc/commit/0d4d...1bb1f7297d


If there's nothing the dev team is tracking, I'd hate to see this problem languish.
Reply
#42
i myself have been wondering the same thing , im still waiting for proper xbox one wireless controller support in kodi
Reply
#43
1. It works fine on USB (seems to use old 360 driver?)
2. It's all kinds of effed up on wireless dongle

I appreciate profucius's effort at rebuilding it for being useful, but I think we need a proper fix.

OK, this is what I got so far editing joystick.Microsoft.Xbox.360.Controller.xml ...

I fixed the triggers like so:
Code:
.
      <axis id="3" trigger="true" limit="+1">ScrollUp</axis>
      <axis id="6" trigger="true" limit="+1">ScrollDown</axis>

They seem to work perfectly like that. Anything else and the 6 axis seems to always be "on" (profucius's fix shows volume on all/most the time)

Also, since this is a "new controller" kinda, it should have it's own XboxOne XML and removed from the 360 XML, but this is how I added it to the existing one:

Code:
.
<keymap>
  <joystickFamily name="Xbox 360 Controller (Windows)"> (down a bit)
     <name>Controller (XBOX One For Windows)</name> (at the end. delete this!)

create a new family:
Code:
.
  <joystickFamily name="Xbox One Wireless Adapter">
     <name>Controller (XBOX One For Windows)</name>
  </joystickFamily>

add a new joystick using the new family under global:
Code:
.
  <global>
    <joystick family="Xbox One Wireless Adapter">
      <-- trigger fix -->
      <axis id="3" trigger="true" limit="+1">ScrollUp</axis>
      <axis id="6" trigger="true" limit="+1">ScrollDown</axis>
    </joystick>

That fixes the trigger problem on the home screen. Since it's (properly) starting a whole new family/controller (so as not to break others), you will need to add each and every button back in.
I copied and pasted most of the globals back in (didn't touch home, etc) and it mostly works, but I can't figure out why the dpad doesn't work... I'm stumped.

I give up from here if someone else can figure it out.

profucius somehow got it working in his XML. I tried it and that part works, but his fix still has trigger problem and keys are remapped wildly to random stuff just to get it mostly working. I don't even understand how it even works as his dpad directions are scrambled in another part of the XML:

Code:
.
      <button id="11">Up</button>
      <button id="12">Down</button>
      <button id="13">Left</button>
      <button id="14">Right</button>

and then:

Code:
.
      <button id="12">Left</button>
      <button id="13">Right</button>
      <button id="14">Up</button>
      <button id="15">Down</button>

how does this even work? lol

Here is the WIP edit of the default XML:
http://pastebin.com/MV9RX8EQ

Backup your original before replacing the contents or otherwise you will need to reinstall Kodi...
No other files should have to be deleted/edit unless you have profucius's XML still around maybe.

Edit:
Don't know if this breaks Xbox One over USB. Have not tested. I assume it just uses it like a normal 360 though and not related to this new family I made.
Reply
#44
Looks like nothing more can be done

At least we narrowed the problem
Issue is not with Keymap (Everything button is working OK and we can reproduce exactly the X360 mapping), not with Trigger deadzone, or MS drivers (Other software are working allright)

Looks like it is something with Kodi joystick code, and more precisely just the initialization. Kodi is not retrieving the correct z axis position. Everything back in order as soon as something is pressed on the pad

Let's hope the team will have a look and find a fix, as the Xbox one pad is here to stay, and is becoming the new standard for PC.
Reply
#45
(2016-01-19, 19:15)RazorFR Wrote: Let's hope the team will have a look and find a fix, as the Xbox one pad is here to stay, and is becoming the new standard for PC.

Ditto. But I'd like to repeat my question: Does the bugtracker have an appropriate issue and do I need to create one?

I haven't used the bugtracker at all and I'd rather make a decent report that won't get shut down or de-prioritized by the development team.
Reply
  • 1
  • 2
  • 3(current)
  • 4
  • 5
  • 7

Logout Mark Read Team Forum Stats Members Help
Xbox One controller Support1