emoose / xb2xinput Goto Github PK
View Code? Open in Web Editor NEWXB2X: User-mode Windows driver for Xbox OG controllers, supporting both XInput and DirectInput.
XB2X: User-mode Windows driver for Xbox OG controllers, supporting both XInput and DirectInput.
The current release (1.3.2) has the wrong name for Mad Catz PID 0x4520. This is the "MC2 Racing Wheel and Pedals" and not the "Control Pad Pro." Drivers work fine, but the device name is a bit misleading.
Pretty much every command is non-existent, so it does nothing... idk here :/
Administrative permissions required. Checking permissions... Installing system drivers... 'devcon' is not recognized as an internal or external command, operable program or batch file. Installing WinUSB drivers for known gamepads (this might take a minute or two) 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. 'wdi-simple' is not recognized as an internal or external command, operable program or batch file. Driver installation complete!
Tried it but alas the controller I have seems to not be supported. I was hoping PL-2023 driver would work.
Using Windows 10 x64. Xb2Xinput seems to be giving me issues. I'd insert it into one port in a USB hub, then it'd detect and work flawlessly. Then I'd disconnect it, and reconnect it, and it no longer works for that port. So I disconnect it from that port, then connect it into another port in the same hub, and then it works for that port, but if I disconnect it and reconnect it to that port, it stops working again. I tried disconnecting the hub and connecting it directly, and it works fine again, but upon reconnecting, it stops working. It's like each USB port is one time use. When I disconnect the controller, Xb2XInput seems to take a while to remove it from the active list.
I tried restarting my PC, and reconnected a USB hub and once again connected the Xbox controller into the hub, and it works fine again, but disconnecting it and reconnecting it to the same port brings back the issue.
Things that I was doing included:
hi. ive tried with 2 cotrollers now and windows and xb2ximput (and steam) finds them and identify them. but no button presses are recorded in either windows or steam.
edit: windows issue. its solved :-)
I have one. The ID is USB\VID_0F0D&PID_0001 .
The closest thing I've seen is Gamester arcade pad in XBCD. So Arcade Pad's should work.
If any information about it is needed, I can try to give it to you,
Thank you!
hi
i have a fanatec speedster 3 steering wheel
device instance path=
USB\VID_3767&PID_0101\6&22EEC8C9&1&1
hardware id's=
USB\VID_3767&PID_0101&REV_0280
USB\VID_3767&PID_0101
is there any chance you could add support for this
it does run in xbcd,just i get the pc crashes too
thanks
Driver needed for USB\VID_FFFF&PID_FFFF&REV_0100
heres the error when i run install drivers.bat
Administrative permissions required. Checking permissions...
Installing WinUSB drivers for known gamepads (this might take a minute or two)
Extracting driver files...
Success
Installing driver(s)...
libwdi:error [wdi_create_list] could not get hardware ID
im using the logitech og xbox wireless controller
Hello everyone.
I am running windows 7 and using an original xbox s controller. I downloaded and installed Xb2XInput successfully with version 1.3.2 and had great success playing halo. For some reason my controller is now not recognized. Furthermore the left usb port that I usually use to plug in the controller is now not responding to the controller. Can someone give me advice in how to uninstall everything and start from scratch with the newest released version? I tried this myself and it seems that everything installs correctly up until the usb driver installer. I run this as administrator and it cmd prompt flashes onto the screen but quickly closes without me knowing if it has installed. Any help would be greatly appreciate and if there is any further clarification or information I should provide please let me know. Thank you so much.
Dayton M.
note that this isnt really a issue there is just no discussions tab i can see.
I'm trying to add a few controller settings but I am new to c++ and using vis studio for windows programs. I already have the code to implement.
smoothing is the first thing I wanted to add and was wondering if someone could tell me where I could put the code for the smoothing, preferably after the deadzone calculations have already been done(basically what ever value is sent to be the output of the right stick is what I want to smooth).
I have already tried putting it in XboxController.CPP after line 472, but nothing I do to x_out or y_out at this point in the code seems to actually take effect once the program is built
Hi,
I'm trying to use 2 original xbox controllers under Win10 x64 but only one is detected...
Any hint ?
Thank you.
I just installed the drivers and stuff, and it really wowed me. It's much better than XBCD, but I just need deadzones, and then it'll be perfect.
Many games don't work with controllers that are detected as "Player 2/3/4". So I am requesting for Xb2XInput to have a way to change the player designation of the controller to "Player 1", or at least allow the controller to reset to Player 1 if all controllers are disconnected and only one controller is re-connected.
Expected behavior:
I expect Xb2XInput controllers to behave like Xbox 360 controllers. With Xbox 360 controllers, if the 360 controller is currently Player 2, you can make it change to Player 1 by unplugging all controllers and then plugging them in the desired order. The first controller connected becomes Player 1, the second controller connected becomes Player 2, etc.
Actual behavior:
A controller connected through Xb2XInput that is currently Player 2 does not reset to Player 1 if you disconnect all controllers and then connect again. It does not become Player 1 when reconnected, even if there is no other controller connected. Restarting the Xb2XInput software does not have any effect.
Temporary workaround:
Restart the computer, or log out and log back in. These are the only ways to reset an Xb2XInput controller to Player 1.
using Xb2Input v1.5c and ViGEmBus 1.22.0 i have a Microsoft Xbox Controller v2 (US) [045E:0289] working as intended, however, in Steam controller test and in games (with or without Steam Input enabled) i have noticeable input delays and very often button releases do not get updated until i press either a different button or touch one of the analog sticks. i cannot tell if this is an issue with Xb2Input or ViGEmBus. please let me know if there's any more information i can provide
EDIT: this still happens even using a fork with increased poll rate
EDIT: looks like ScpToolkit was superseded by ViGEm: https://github.com/ViGEm/ViGEmBus. Seems the driver for that works with Win10 perfectly fine, I'll have to look into getting XB2X migrated to it.
Great... I made this so that unsigned drivers wouldn't be needed, but it turns out MS messed around with how driver signing works in newer Win10 versions, making the signature on ScpVBus.inf invalid, meaning you'd still need to allow unsigned drivers to use it ;_;
nefarius/ScpToolkit#266 talks about it, but looks like the SCP dev has stopped working on it now though, so it's unlikely that'll have a fixed version released for it...
Xb2XInput sees my og xbox gamepad like this:
And windows sees it like this:
USB\VID_0F30&PID_8888 that corresponds to BigBen XBMiniPad it seems: https://github.com/emoose/Xb2XInput/blob/master/Xb2XInput/XboxController.cpp
But when testing in Windows control panel the emulated xbox 360 gamepad pressing the buttons on my xbox gamepad do nothing.
the arrows are the hat switch, because Xinput supports left and right or up and down at the same time, you just can't because of how the controllers are physically made. it's easy to tell because using steam's new controller test menu, pressing left and right together on a 360 dance mat pressed dpad left and dpad right.
the rest of the buttons (A,B,X,Y, Back and Start) are the exact same.
here's hoping to getting dance mats supported!
i have an intec hard mat that uses VID 0314 and PID 8801 if you need someone with a dancemat to test it, only issue is that it's showing as a generic usb hub, and not anything else, which is weird because it works just fine on my original xbox.
If you still want to add a wheel I can help
I installed the drivers using the "install drivers.bat" but realized too late I only needed certain drivers. Is there a way to uninstall the other drivers? And another related question:
To uninstall/remove the WinUSB driver you'll have to uninstall the driver from your gamepad in device manager (make sure "Delete the driver software for this device" is checked)
I find this section a bit unclear. Do I have to connect my controller and uninstall the driver that way?
does this support the analog face buttons the OG xbox has?
many og xbox games used the analog face buttons and with xemu and cxbxr improving.. this is the ideal solution for controller support/
The vibration motors seem to not be as strong when playing certain games, more specifically Skyrim Special Edition, and most likely the original Skyrim Legendary Editon, I also tested another Bethesda game, Fallout 4, and aside from the security baton having a weak vibration, other things like firing guns or landing from a higher height in the power armor have decently strong vibration from the motors. I'm not sure if it is a problem with the program or the original Xbox controllers.
When I launch the software, I am able to navigate the menu in Fall Guys, and start a match. As soon as the match begins, all inputs become disabled. If I go to Control Panel to test the controller, it still doesn't read any input. It seems like the game just totally disables any and all input until the software is restarted.
Hey is it possible to make this compatible with the steel battalion controller?
How long does it take to install the drivers? Been going for about 10 minutes. It says extracting driver files success, then installing drivers success over and over and over again
Currently WinUSB has to be setup for the controller manually (big thanks to MS for making the controller not provide any useful USB/HID descriptors, even though it can speak HID fine...)
The instructions for installing it could maybe confuse some people, so it'd be nice if we could automate it somehow. I think devcon can be used to install the winusb.inf for the device, but the vendor/product ID need to be known in advance first, and since there's a large range of IDs that could be troublesome...
libusb does seem to be able to enumerate devices without WinUSB (as seen in the listdevs.exe libusb sample app), but can't talk to it without the driver being installed - maybe we could check if the device is in the libusb list, and then if it fails to open the device, create a script that uses devcon and ask the user to run it?
Or maybe we can make a script that just tries to install winusb.inf for every vendor/product combo we know of? I think something like that might be possible...
Edit: doesn't look like devcon can install the winusb.inf since it's not configured for the hardware ID, damn...
https://zadig.akeo.ie is maybe an option, gives an easier way for users to set up the controller for WinUSB at least, I wonder if it could be ran as a batch script or something like that? If not, the library it uses for driver installs looks pretty simple to integrate, hmm..
Edit2: Looks like the wdi-simple app for libwdi can be ran in batch, but unfortunately it doesn't seem like compiled builds are released for it :( Will have a look into building it myself soon.
i have been using this for 3rd strike but after 3 weeks of use it stopped working (btw i used multiple controllers
VirusTotal gives 6 different adware alarms for v1.3.2. As Kaspersky is one of the scanners that gives an alarm, I'm suspicious it's real.
Comments?
I think the command "cd %~dp0" in batch is not working as if I right click install batch and select run as admin it repeatedly says cant find wdi-simple. Because path can contain spaces so need to put around quotes and also the /D is needed
Therefore this works.
cd /D "%~dp0"
For me I am now able to run by right clicking batch and run as admin.
Driver needed for a MadCatz controller ID: USB\VID_0738&PID_8263. Thank you.
If you have a controller that isn't supported please make a post about it here! (include the hardware id: Device Manager -> double-click device -> Details -> Hardware IDs, should look something like "USB\VID_0738&PID_4522&REV_0384")
If your controller is listed as supported inside XboxController.cpp but doesn't seem to work, try following the instructions posted by @Bisonfan95 below to install WinUSB manually: #1 (comment)
Known devices that currently aren't supported:
Wheels and DDR pads currently aren't supported since I don't own any of them and I'm not sure how they translate to XInput, if someone has a wheel / DDR pad and wants to help me add support for it please let me know here!
If I leave the controller plugged in and my PC goes to sleep, it will still be detected by xb2xinput but nothing happens. Unplugging and plugging back in does not fix the problem. The specific order to restore function is to close xb2xinput, unplug controller, start xb2xinput, plug in controller
When the controller tries to vibrate, sometimes it doesn't vibrate at all or it would and would occasionally get stuck, and I would usually have to bang it a tiny bit to get the buzzing to stop, for the record I am using an Xbox Controller S
Just want to say thank you, awesome work, I used xbcd driver works well but it doesn't have vibration when using steam gamepad configuration, Xb2Xinput works great and has vibrations also
I've installed everything according to the Readme and none of my controllers work. I've tried OG Xbox controllers (multiple) Madcats, and Gamster controllers. NONE of them are detected. I have checked the supported controllers list and all controllers I have tried are listed there. I have tried multiple USB ports and still nothing is found. Please help
Tried to use it, no results didn't detect it.
I installed the drivers according to the readme, and everything went okay. When I plug the controller to the PC (Windows 10), it is recognized as a Microsoft Xbox Controller S v2. It's actually a S controller, so it's good. Still emulators or whatever program don't recognize the controller, same goes for the app (Xb2XInput): it always says "Wait for controller". What could it be?
Note: I have removed the original cable from this controller, since it was broken, and I put a known good USB cable to it. I soldered the red, white and green cable in the right places, and giving that this USB cable has 2 black wires, I put the last one (it was named 5 by the header) in the uppermost hole, the other black wire in the other hole. So I soldered 5 wires, leaving the yellow wire hole alone. I guess it's working, giving that Windows recognizes it as a Xbox controller S, still I don't get what's preventing it from working.
EDIT: I fixed this by updating automatically the drivers from the Device Manager, it's working as intended!
When I Plug In The Controller Xb2Xinput Doesn't Recognize It
And Even XBCD Doesn't Work As A Backup Option Either
My hardware ID is USB\VID_045E&PID_0288&REV_0121
but it doesn't seem to work. It's is listed in the supported IDs however
Shows up as Microsoft Xbox Controller S v2
While the install script takes care of installing Vigembus, it does not install or mention the need for Vigembus's own prerequisites. So I ran into two issues (which are both documented on Vigembus Wiki, but not in the Xb2XInput readme).
Issue #1 - Microsoft KB3033929 update. This is necessary on Windows 7 to enable SHA-2 driver signing which is what Vigembus uses. Otherwise the driver will not load without disabling signing, which sort of defeats the purpose.
Issue #2 - Vigembus emulates the 360 controller through the actual controller driver, which therefore must be installed. Otherwise, when attempting to activate Xb2XInput it locks up the entire system.
Once these 2 items were addressed, I was able to use the program successfully.
everything was working fine , I was playing Valorant and GTA5 online and when I decided To install Minecraft Java and I wanted To start finally Developing a small game with the support of old controllers too , I installed Java and This Stopped working
I deleted RSA and fixed everything else was supposed to be the cause of the problem but not working anymore I deleted JAVA as well
Everything was working I was able to control and edit vibration settings on Windows 11 , you have done a great job.
But I ended up with this strange message
Administrative permissions required. Checking permissions...
Installing WinUSB drivers for known gamepads (this might take a minute or two)
Extracting driver files...
Success
Installing driver(s)...
libwdi:error [wdi_create_list] could not get hardware ID
Hello,
I've spent a few days writing a small c# application to your Xb2Input program, I absolutely loved it so much that I had to write something else that could work for me, so here is what I have:
https://github.com/JustTrev/Xb2XInput/releases/tag/Xb2Input
My tool is called "Xbox OG Kit" and it works with the Xb2Input.ini file directly. The XboxOGKit Installer will unpack all of the prerequisites that Xb2Input requires in order to work properly, according from your latest statement.
What is included in XboxOGkit Installer is; XboxOG Kit, Xb2Inputv1.5c with driver packages, and ViGEmBus Setup 1.21.442.
Please checkout this small quality of life I've worked on, and I hope it helps you and with any valuable ideas to support into xb2input in the future and other people with Xb2Input as well!!!
I am so thankful I am able to use my ultimate favorite controller of all time again!!!!!
Thank you soo much!
T
Instead of WinUSB there's also the libusb driver that can be installed for a device, libwdi can install this driver fine, and Xb2XInput seems to recognise devices that use that driver... but then after connecting to it immediately decides to disconnect. I guess non-driver libusb must be returning an error code somewhere after opening the device.
Not a huge problem since we suggest/automate installing WinUSB anyway, but supporting libusb drivers would still be a nice addition.
The Pelican PL-2020 Eclipse II gamepad (VID 0x0E6F, PID 0x8801 and VID 0x0E6F, PID 8813) unfortunately seems to lack support from the provided driver. Directly targeting the device with wdi-sample does result in driver installation (which makes sense, working or not), however no functionality is present.
Device presents in Device Manager as two separate devices prior to driver install, "Generic USB Hub" (PID 0x8801) and "Pelican" (PID 0x8813). After attempting to load driver by manually invoking wdi-sample a single device is presented. This behavior presents itself no matter which PID is targeted by the driver.
I'm sure there's something I'm overlooking about configuring the device, I plan to take a look in further detail later. I hope I've been able to provide some useful information
Right now we just send the raw data along to XInput, would be nice if we can give the user a way to define their own deadzone though, since not many games allow to customize that.
I'm not sure if calibrating is important, ProconXInput has a method of calibrating ProCon sticks but it seems maybe that's only needed if the controller isn't sending the full 16-bit value that XInput uses (Xbox OG pads do, but Procon only sends an 8-bit value, which is maybe why that needs to be calibrated)
If anyone can think of a good way of implementing those please let me know!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.