Dolphin, the GameCube and Wii emulator - Forums

Full Version: Support for more than 4 Xinput devices?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hello

I have been interested in MKDD lan for a while and would like to use Dolphin to help that along. What I want to do it is have 2 Instances of Dolphin run on my PC. I got the set up working perfectly. except for the controllers.

from what I understand Dolphin can only recognize 4 Xinput devices. I would use DirectInput instead but I only have Xinput controllers.

Could expansion of Xinput support be considered? Failing that would someone happen to know a work around?

Thanks

Alucard2k

(07-24-2019, 01:01 AM)zrosch@yahoo.com Wrote: [ -> ]Hello

I have been interested in MKDD lan for a while and would like to use Dolphin to help that along. What I want to do it is have 2 Instances of Dolphin run on my PC. I got the set up working perfectly. except for the controllers.

from what I understand Dolphin can only recognize 4 Xinput devices. I would use DirectInput instead but I only have Xinput controllers.

Could expansion of Xinput support be considered? Failing that would someone happen to know a work around?

Thanks

This is a limit of XInput at operative system level. I don't think this can be bypassed by Dolphin.
This is correct.

XInput does not allow more than 4 devices. DirectInput must be used in that case.
(07-24-2019, 05:33 AM)Alucard2k Wrote: [ -> ]This is a limit of XInput at operative system level. I don't think this can be bypassed by Dolphin.

this was true for older OS systems. But as of Windows 10  Xinput is now caped at 8 controllers. in fact when I tried connecting my controllers windows recognized all 7 I had. and Loading a Steam game that supported 8 local players all 7 were recognized. The 4 controller limit is only enforced by Dolphin now.

Because Windows 10 supports 8 devices do you think it would be simple to expand Dolphin from 4 to 8? Granted I don't know how it's coded, but if it's a number somewhere in the code could that be changed from 4 to 8 without hassle?
(07-24-2019, 07:19 AM)Helios Wrote: [ -> ]This is correct.

XInput does not allow more than 4 devices. DirectInput must be used in that case.


this was true for older OS systems. But as of Windows 10  Xinput is now caped at 8 controllers. See the response I made to Alucard2k .
(07-24-2019, 09:45 AM)zrosch@yahoo.com Wrote: [ -> ]this was true for older OS systems. But as of Windows 10  Xinput is now caped at 8 controllers. in fact when I tried connecting my controllers windows recognized all 7 I had. and Loading a Steam game that supported 8 local players all 7 were recognized. The 4 controller limit is only enforced by Dolphin now.

Because Windows 10 supports 8 devices do you think it would be simple to expand Dolphin from 4 to 8? Granted I don't know how it's coded, but if it's a number somewhere in the code could that be changed from 4 to 8 without hassle?

The game may have been doing magic with an input abstraction lib to make that work or your devices aren't exclusively xinput only.

https://docs.microsoft.com/en-us/windows/win32/xinput/getting-started-with-xinput

See the section on Multiple Controllers.
Windows.Gaming.Input is Microsoft's newer XInput-like API without the 4 gamepad limit.
I started work on supporting this API (https://github.com/dolphin-emu/dolphin/pull/7614) but it has been sitting while other things matured.
(07-24-2019, 10:15 AM)Billiard26 Wrote: [ -> ]Windows.Gaming.Input is Microsoft's newer XInput-like API without the 4 gamepad limit.
I started work on supporting this API (https://github.com/dolphin-emu/dolphin/pull/7614) but it has been sitting while other things matured.

Ah. I knew I was not crazy. very interesting. Glad someone was already aware then. 

by reading your Github post I guess progress is stalled at the moment. Do you have a time frame in mind? or are you waiting on other factors?

Thanks.   
(07-24-2019, 09:52 AM)Helios Wrote: [ -> ]The game may have been doing magic with an input abstraction lib to make that work or your devices aren't exclusively xinput only.

https://docs.microsoft.com/en-us/windows/win32/xinput/getting-started-with-xinput

See the section on Multiple Controllers.
the 7 controllers were all Xbox controllers. So I know for a fact they were all Xinput. however I am not sure what the game was doing. 

I will admit that after doing some digging on the web I was wrong about Xinput being bumped to 8. that is Still at 4. However I did find 2 things of interest.

1: it seems some API's let the developer force DirectInput over Xinput. the game Gang Beasts  for instance has an in game toggle for this. allowing xinput to be read as Directinput instead. Could such a thing be added to Dolphin? 

2: as Billiard26 Posted It turns out I was thinking of another API Microsoft released that does in fact support more controllers. This Windows.Gaming.Input. 

So maybe there is hope for more Xinput devices in the future. 
(07-25-2019, 01:01 AM)zrosch@yahoo.com Wrote: [ -> ]Ah. I knew I was not crazy. very interesting. Glad someone was already aware then. 

by reading your Github post I guess progress is stalled at the moment. Do you have a time frame in mind? or are you waiting on other factors?

Thanks.   

The code hit a bug in the Windows SDK version that the Dolphin project targeted. We may have updated since then.
Non-xbox controllers are detected but unresponsive, but I don't know if they are even supposed to work with Windows.Gaming.Input.
At that point I got mad and worked on other more fun things. Maybe I'll look at it again some day.
Pages: 1 2