Xinput Vs Dinput
I got a controller for my PC and on the back of it there is a switch that let me choose which between direct input and x input. Whats the difference a. Difference Between Dinput And Xinput. Dinput stands for direct input. As of 2010, the XInput API will have restrictions that DirectInput does not respect: XInput only supports next-generation controllers. This is mainly limited to Xbox 360 controllers with even Windows drivers. Windows controllers, joysticks, and exteroception general feedback devices are not supported.
- I cannot consider xinput to be a better dinput. The goals of the apis are somewhat orthogonal where one could be considered to be proving a subset of the functionality that the other provides. It is only better when talking about gamepads. Dinput is a generic input API, xinput is only for controllers.
- Xinput can be used for xbone, steam, and logitech controllers. Dinput is good for other controllers like the PS4 and Fightpad controllers.
- The input system (that is, the class that handles dinput and xinput) handles the API calls and provides events through some event handler interface which is currently implemented by the 'game' class (that is, the class I instanciate from main that keeps all the stuff).
Xinput Vs Dinput 8bitdo
Xinput Mame
02-17-2019, 02:56 PM
Xinput Vs Dinput
If you have ever wanted to have a DInput controller and a XInput controller work with the same game controller profile at the same time try this:
Example. Normally a button mapping for two controllers looks something like this.
For Button A
`Button 1` | `Button A`
The button 1 is from my DInput Power A Gamecube controller, the Button A is from the XInput Xbox 360 controller.
To make them both appear and register with Dolphin regardless of which one is the active device or on at the time. I now use this:
For Button A
`DInput/0/Wireless Gamepad:Button 1` | `XInput/0/Gamepad:Button A`
------------------------------
Short how To:
In your controller setup window. Map the buttons for the first controller so for example the Xbox360 controller. It should have XInput/0/Gamepad in the Device section of the controller setup. Once done mapping your buttons, right click on each button you just mapped, to open the configure input menu. In here, put: XInput/0/Gamepad: or XInput/1/Gamepad: or whatever the Device name happens to be before the controller button you mapped in.
Now, turn on the other controller or plug in the other controller, in my example I have a Power A Wireless Gamecube controller. This shows up for me as a DInput/0/Wireless/Gamepad. When I map the buttons for this one I use the |OR. Then put DInput/0/Wireless/Gamepad: in front of the buttons I just mapped for the DInput controller and vwalla both controllers work and it doesn't matter which Device is the active device.
This might seem silly to some, but for me this is a solution that has made a huge difference in my enjoyment of my system. Running a front end, it makes a big difference.
In my setup, the xbox controller is the main controller that the front end is setup with, the only time I have an issue is when I want to use gamecube controllers for gamecube. By doing it this way, when I navigate to dolphin and start the game with the 360 controller, I can then pick up my gamecube controller and just start playing the game. Before hand I had to open the menus and fiddle with it with a keyboard and mouse to switch the profile to my Power A controller.
Just sharing with the community, this was a huge breakthrough for me, hope this helps someone else out if they are in the same boat. If this has already been covered somewhere else, my apologies for the duplication.
Example. Normally a button mapping for two controllers looks something like this.
For Button A
`Button 1` | `Button A`
The button 1 is from my DInput Power A Gamecube controller, the Button A is from the XInput Xbox 360 controller.
To make them both appear and register with Dolphin regardless of which one is the active device or on at the time. I now use this:
For Button A
`DInput/0/Wireless Gamepad:Button 1` | `XInput/0/Gamepad:Button A`
------------------------------
Short how To:
In your controller setup window. Map the buttons for the first controller so for example the Xbox360 controller. It should have XInput/0/Gamepad in the Device section of the controller setup. Once done mapping your buttons, right click on each button you just mapped, to open the configure input menu. In here, put: XInput/0/Gamepad: or XInput/1/Gamepad: or whatever the Device name happens to be before the controller button you mapped in.
Now, turn on the other controller or plug in the other controller, in my example I have a Power A Wireless Gamecube controller. This shows up for me as a DInput/0/Wireless/Gamepad. When I map the buttons for this one I use the |OR. Then put DInput/0/Wireless/Gamepad: in front of the buttons I just mapped for the DInput controller and vwalla both controllers work and it doesn't matter which Device is the active device.
This might seem silly to some, but for me this is a solution that has made a huge difference in my enjoyment of my system. Running a front end, it makes a big difference.
In my setup, the xbox controller is the main controller that the front end is setup with, the only time I have an issue is when I want to use gamecube controllers for gamecube. By doing it this way, when I navigate to dolphin and start the game with the 360 controller, I can then pick up my gamecube controller and just start playing the game. Before hand I had to open the menus and fiddle with it with a keyboard and mouse to switch the profile to my Power A controller.
Just sharing with the community, this was a huge breakthrough for me, hope this helps someone else out if they are in the same boat. If this has already been covered somewhere else, my apologies for the duplication.