xbmc / peripheral.joystick

Kodi joystick support (drivers and button maps)
GNU General Public License v2.0
24 stars 47 forks source link

keymaps: Xbox Elite Wireless Controller Series 2 + Wireless Xbox controller #286

Closed JGoutin closed 11 months ago

JGoutin commented 11 months ago

More Microsoft Xbox controllers keymaps:

Note: Xbox Elite Wireless Controller Series 2 (USB wired) is already detected.

garbear commented 11 months ago

Awesome, thanks!!!

garbear commented 11 months ago

I released a new version with all the xbox button maps! It'll be going out soon.

@JGoutin A while back I added a feature to show the controller's icon in the GUI:

screenshot00001

If you want, you could copy game.controller.default in the controller topology project and create new controller profiles with updated artwork for the modern Xbox controllers. It would be way cool if we could show the more modern Xbox controllers instead of the dated 360 controller.

JGoutin commented 11 months ago

@garbear

I can take a look to the controller topology project and try to add the xbox controllers variants to it.

I also have questions:

Also, some feedback about how the controller appear on peripheral menu (Like on your screenshot)

garbear commented 11 months ago

Sorry for the late reply,

Is there a way to add support for the new "share" button of the latest versions of the controller.

This might have to be done in the code: https://github.com/xbmc/peripheral.joystick/blob/Omega/src/api/xinput/JoystickXInput.cpp

I'm not sure how the Share button is handled in the X-Input API. If you can discover this, I can add support.

Why this controller profil have more sections (Other controllers types) than all the others Xbox controllers profiles ?

This is part of the "automation" that lets all physical controllers emulator all virtual controllers. The map with all the controllers serves as a "codex" for how to translate controllers.

Previously, we had many maps with many controllers, and they would "vote" by figuring out which cross-maps appeared most. However, many people mapped inconsistently, so we removed all cross maps, and then added one that sticks to the libretro "retropad" map which uses the physical mapping between controllers.

The "voting" still takes place, but it's a 1/1 vote because there's only 1 map.

For more info, see https://github.com/xbmc/peripheral.joystick/pull/264

Maybe the name should be renamed to something like "Xbox compatible controller" (Or eventually "Xbox 360/One/X/S compatible controller") because the Xbox 360 is very old now (Microsoft calls them "Xbox Wireless controller" today).

Good idea, we should revisit controller naming now that over 8 years have passed since my initial controller work.

The icon used for the generic Xbox controller does not look as good as the icons for the other controllers: Not the same style and orientation, this icon looks outdated.

Another good idea, as this image was photoshopped by me over 8 years ago.

JGoutin commented 11 months ago

Thanks for the answer.

I'm not sure how the Share button is handled in the X-Input API. If you can discover this, I can add support.

The support for this button seem to be variable and is not present in the standard Xinput API for now.

I found some information here: https://stackoverflow.com/questions/69184882/how-to-check-if-xbox-series-controller-share-button-is-pressed.

Also: Windows 11 seems to support it with the "Xbox Accessories app", Steam also seems to support it.