English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 11 March 2017, 05:02   #1
ReL0aDed
 
Posts: n/a
Xbox One gamepads and Xbox 360 gamepads as one combined controller entity in WinUAE

I recently found out that my Xbox One gamepads had to be mapped in each and every config-file I have for my games in WinUAE, even though they are previously mapped to my Xbox 360 gamepads. It seems like the Xbox One gamepads and Xbox 360 gamepads are registered as separate entities in the Input settings of WinUAE.

Is there any way to somehow make all xinput devices (Xbox One / Xbox 360 gamepads) viewed as the same entity in the Input menu in WinUAE? If that's not the case, I would personally love having an option to combine those controllers as a single entity in the Input menu, maybe even by clicking a checkbox for enabling doing so.

(Btw, I have to use the -norawhid launch-command to get the Xbox One controllers to work in WinUAE 3.4.0 as of now).
 
Old 11 March 2017, 17:35   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
It is by design to keep all game controllers separate, even if they are same models (and have unique id) to enable separate config for two+ player games.

Problem with xinput is that there is no way (at least I haven't found any) how to match xinput device with rawinput device. (Yes, there is way to detect device type but not uniquely identity that _this_ xbox one controller is _this_ rawinput controller if you have more than one connected.)

I'd like to support it but I refuse to add any even more confusing options to select input mode.

Xbox pad not working (at least in Windows 10) is Windows bug, it reports device as rawinput capable but it never sends any events. It is already fixed in current Windows 10 preview versions. (Was fixed about 2 months ago)
Toni Wilen is online now  
Old 19 March 2017, 16:41   #3
ReL0aDed
 
Posts: n/a
Thanks for very informative reply.

I have some issues when it comes to mapping individual key-commands via the input-panel in 2 player games. I can use the game Blues Brothers as an example. I prefer having the jump button mapped to one of the controller buttons on the gamepad, instead of pressing d-pad up for jumping. Thereby pressing both button 1 and d-pad up triggers the jump function in this game. I also use button 4 on the gamepads for the F7 function, switching players in 2 player mode.

All is well and done as long as I have two controllers plugged in, but as soon as I want to start Blues Brothers in 1 player mode (only connecting one controller), the config somehow forgot that I used button 1 as jump/up as well as up on the d-pad, and I'm forced to jump using d-pad up while playing in 1 player mode.

If I start the game again with two controllers attached however, WinUAE remembers that I use button 1 as up and button 4 as F7 on both controllers. Starting the game without a secondary controller makes the game forget the "special" keymappings for button 1 & button 4.

If I then only use one controller, and remap the then unmapped button 1 as up and the unmapped button 4 as F7, it messes up the config the next time I start 2 player mode with two controllers connected. Then button 1 and button 4 are un-mapped in 2 player mode with two controllers connected.
 
Old 19 March 2017, 19:13   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
Quote:
Originally Posted by ReL0aDed View Post
All is well and done as long as I have two controllers plugged in, but as soon as I want to start Blues Brothers in 1 player mode (only connecting one controller), the config somehow forgot that I used button 1 as jump/up as well as up on the d-pad, and I'm forced to jump using d-pad up while playing in 1 player mode
That shouldn't happen. Attach your config file. More questions later
Toni Wilen is online now  
Old 19 March 2017, 23:55   #5
ReL0aDed
 
Posts: n/a
Here you go
Attached Files
File Type: uae Blues Brothers.uae (21.1 KB, 180 views)
 
Old 27 March 2017, 18:41   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
Do you mean Gameports panel custom config? (Not Input panel custom config)

It looks like GamePorts may not support this fully.
Toni Wilen is online now  
Old 30 March 2017, 02:24   #7
ReL0aDed
 
Posts: n/a
I'll guess by firstly mapping the gamepad buttons in the "GamePorts" menu, then map the remaining "special" buttons in the "Input" panel for each of the two Xbox One gamepads (special buttons = button 1 for jump/d-pad up and button 4 for F7).

I select "Joystick" as devices for both the controllers in the "GamePorts" menu.

So the game config it's a hybrid/mix of both the GamePorts and the Input panels while mapping the buttons of this particular game.
 
Old 30 March 2017, 09:56   #8
Tomislav
Registered User
 
Join Date: Aug 2014
Location: Zagreb / Croatia
Posts: 302
If you use custom settings in "Input", put port that you configure in "Input" to "<none>" in "GamePorts".
Tomislav is offline  
Old 08 April 2017, 07:07   #9
ReL0aDed
 
Posts: n/a
Hi; sorry for late reply.

I've done some testing now, and this is how it all went:

It works; to some extend. What I mean by that, is that configuring the GamePorts to "none" and rather map all the keys in the Input section, it finally made all the assigned buttons work with both a single- and two controllers connected. Even the special assigned keys for d-pad up/jump (button 1) and F7 (button 4) in Blues Brothers works with either one or both controllers connected now.

There's a catch, however. For the player 1 in any Amiga game (as I know of), the buttons assigned for that player has to be the Joy2-keys. Thereby player 1 has the Joy2-keys, while player 2 (the secondary Xbox One gamepad in the input menu) has to have the inputs of the Joy1-keys.

The first connected Xbox One gamepad then gets player 1 in-game, and the secondary connected Xbox One gamepad gets the player 2 key-commands. It all works fine and all as long as two controllers are connected, but when you close WinUAE and disconnect the secondary controller, and start the game once more, the first (and only connected) Xbox One controller gets the button mapping from the secondary controller all of a sudden.

It seems like it works like this:

After mapping a game with two controllers connected;

Xbox One gamepad [1] = Joy 2-keys
Xbox One gamepad [2] = Joy 1-keys

Closing the emulator, and disconnecting the secondary controller. Launching the game config via WinUAE, thereby starting the game again;

Xbox One gamepad = Joy 1-keys

Ok; I would try to fix this by remapping the Xbox One gamepad to the Joy 2-keys again, and see what happens;

Xbox One gamepad = Joy 2-keys

I'll start the emulator once more, but now with two controllers connected;

Xbox One gamepad [1] = Joy 2-keys
Xbox One gamepad [2] = unmapped, I also have to enable the gamepad

Fine, I'll remap everything again, so it looks like this;

Xbox One gamepad [1] = Joy 2-keys
Xbox One gamepad [2] = Joy 1-keys

Seems fine, now exit the emulator and disconnect the secondary controller, and see what happens;

Xbox One gamepad = Joy 1-keys


This is what happened. My workaround as of now is to assign the Joy 2-keys to the secondary controller, and the Joy 1-keys to the first one. Thereby I play as player 1 with the first connected gamepad if it's the only powered on gamepad, and I play as player 2 with the first connected gamepad if both gamepads are connected.

The game I tested was Blues Brothers this time too, the newest configuration file is attached to this post.
Attached Files
File Type: uae Blues Brothers.uae (18.5 KB, 171 views)
 
Old 08 April 2017, 13:20   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
I need to think about this situation more, too long since I worked with input system deeply enough
Toni Wilen is online now  
Old 13 April 2017, 15:03   #11
ReL0aDed
 
Posts: n/a
I tried WinUAE again this day, and I just found out that I was wrong when I talked about the Xbox One gamepad where I previously assumed this:

One controller connected;

Xbox One gamepad = Joy 2-keys

Two controllers connected;

Xbox One gamepad [1] = Joy 1-keys
Xbox One gamepad [2] = Joy 2-keys

Well, this still holds up, but I assumed that when two wireless Xbox One gamepads are powered on, that the controller that has the [2] symbol was the last powered on Xbox controller. I was wrong; the "Xbox One gamepad [2]" is the first powered on gamepad when two controllers are connected.

I found out by powering up both Xbox One gamepads, starting Blues Brothers, entering the WinUAE menu by pressing F12, entering the Input section and pressing the Test-button. Then I pressed a button on the first powered-on Xbox One gamepad, and to my surprise that gamepad went under the name "Xbox One gamepad [2]", and not "Xbox One gamepad [1]" as I was so sure of on my previous post.

Now it seems like WinUAE works as intended with Xbox One gamepads, and controller support seems to be working way better than only a year ago
 
Old 14 April 2017, 12:34   #12
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
Identical device's are ordered by its unique name or ID.
Toni Wilen is online now  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Having a hard time mapping multiple Xbox One gamepads in WinUAE ReL0aDed support.WinUAE 4 26 July 2016 17:26
Xbox 360 controller problems kep support.WinUAE 16 11 June 2015 19:47
XBOX 360 controller disappointment Zak Retrogaming General Discussion 20 20 December 2013 15:07
XBox 360 controller support (hat switch) sulaco support.WinUAE 6 13 April 2012 16:50
Problems with an XBox 360 Controller? JohnnyWalker support.WinUAE 7 25 June 2011 18:46

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:41.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.18437 seconds with 14 queries