I bought a Gamesir T4 gamepad that has Xinput support. In windows, it is recognized as a Xbox One Controller and works normally. But in Ubuntu 19.10 I am unable to get it working on Xinput mode. It does not show up on jstest and also on Steam. This gamepad has Dinput support, this mode it is detected, but the humble does not work.
If I remember correctly, Windows Project only supports XInput controllers.
You can create Cross Platform Desktop Project (also known as DesktopGL) which should work with most controllers, but usage is slightly different.
I had the same condition of the XBOX USB controller showing IsConnected = false (Monogame Cross Platform Desktop Project) and was also frustrated by the condition. In testing, while the game was running, I pressed the [Start] button on the gamepad and the gamepad showed IsConnected = true. Subsequent restarts of Visual Studio and the game did not require pressing the [Start] button.
I would like to emulate an XInput gamepad (controller) using Java. I've searched around the net but I couldn't really find any solution for my problem. Is it possible to simulate an XInput controller using Java?
I'm currently playing a game called Assetto Corsa, this game doesn't support the gamepad I'm currently using. This is why I would like to create a little program that simulates an XInput controller based on the current controller I'm using.
I tried x360ce using Assetto Corsa but once you load a track the frame pause every 1 or 2 seconds and it's completely unplayable for me. I play with a g27 and an old xbox type-s gamepad (no xinput) and the only way I found to use a non-xbox360 xinput controller is to set the controls to Wheel/Custom. I'll give you my settings it might fix it for you as well!
What I am trying to do is translate the analog stick motions to certain events in my application. Specifically what I am trying to do is move a map when the joystick is moved.Is it possible to use the xinput with vb.net? I'm stuck in either vb or c# based on what the COM libraries are for the application. Any attempts to add the DLL's just throws an error at me too.
My game updates the UI with specific images depending on the used gamepad. For example, if you use an Xbox One gamepad, the UI displays Xbox One images. If you use a PlayStation gamepad, the game displays PlayStation images.
Note that the Arduino Uno, Nano, and Mega are missing from this list. Those three boards do not have native USB support and will not work for this. You will need to buy another microcontroller. Sorry Charlie ?
You need to download the one(s) required for your microcontroller and install them. Specific installation instructions are provided in each repo. Make sure you have the latest version of the Arduino IDE to avoid any issues.
Hi, is it possible to use 4 pots (two for x axis and two for y axis) instead of just 2 (one for x axis and one for y axis)? I was messing around with another xinput library (MSF-XINPUT) and I have exhausted all possibilities without a positive result so I thought that maybe your library will be more flexible. I need every direction (left, right, up, down) to hove its own potentiometer.
Sorry for bothering you but your library is much more complicated (although I think meticulous would be a better word) and I am struggling a bit with it. I guess this is the first part I need to modifie?
Can you help me by adding the necessary lines of code in the second part? Normally I would not ask for such a thing but it would take a minute to type these few lines of code for you and hours of trial and error for me.
How difficult would it be to modify this to work with Adafruit Feather Bluefruit LE 32u4? I actually got most of the inputs to work by loading my board with your Circuit Playground with Xinput firmware. But I need to access my Feather BT,
XInput is a closed standard, which is why I had to reverse engineer the descriptors myself and why the project is strictly for hobbyists and non-commercial projects. The way this works is by telling the PC that the Arduino/Teensy is a genuine Microsoft-branded Xbox 360 controller. The PC then loads the official Microsoft driver for Xbox controllers and everything works smoothly. When you add additional descriptors onto the end, the PC no longer recognizes the controller as the official Xbox controller and everything stops.
As seen in all examples, there is never a use of attachInterrupts, instead always a use of digitalRead funktions. I wanted to make a steeringwheel with FFB and this looked like the best library. To get the steeringwheel angle I wanted to use a rotary encoder but here I need to use Interrupts. On a classic way I cant get the Interruptfunktions to be called, like it would be on a normal Joystick library. I#m using a Arduino Leonardo. Do you have any ideas for me?
You need to find the motors you want to use, then pass the XInput data using the XInput.getRumbleLeft(); or XInput.getRumbleRight(); functions. How to drive a motor with an Arduino is well beyond the scope of this tutorial, though.
So would it be possible to utilize parts of this control just one of the buttons on the controller itself rather than it be a complete emulator? I am trying to reconfigure one of my controllers where the controller feeds to the xbox the user input that is actually coming from a code being run on the arduino.
Given that iOS 13 now supports Bluetooth controllers (or at least, certain ones, namely the PS4 controller and newer Xbox One controllers), would the XInput library be useful in making a controller emulator that works over Bluetooth instead of USB? For example, would it be possible to swap out the USB layer for Bluetooth?
This is great. I have used a $3 Pro Micro from China to replace the zero-delay USB controller in my self-built arcade stick.
This has brought several improvements.
Firstly it now works with games that only support XInput.
Secondly, I have coded one of the buttons to enable/disable rapid fire, selectable from 8 different speeds via the joystick. Any fire button/trigger, can have any of the 8 speeds configured independently.
Thirdly, I can switch the joystick to emulate the left analog stick if required.
Hi there David! Great work on this library, it worked flawlessly on my Windows 10 machine. I am trying to make a controller with your library that works on an Android phone. I have seen some comments that some Android phones are not supported, mine may unfortunately be one of them.
hello i sucessfull installed the code in a pro micro works but i trying to figure out the response time if there are some input lag and if it can be be lowered in some form. im playing a fight game and i suspect that there are a little time between push the button and the action but there are no traces in code of that. (and dont know if its the arduino or something more in the pc)
thanks for the tutorial and the time to make it
Please let me know if you have any ideas about what might be causing this. I have a good amount of practice debugging electronics, but this is defeating me at the moment. All I really want is some way to get analog steering and gas pedal for Rocket League. If it has to be all discrete, then so be it.
Hi Dave, thank you and thank you so much for the reply. I did not know about the Teensy LC and the Teensy 3.2 having two I2C. I hope the 3.2 will be powerful enough to run the code and sensors as smoothly as on the 4.0. I will try. Thank you!
Wanted to clarify that I have used this method based on a mini router and virtualhere, to make wireless your xinput gamepad based on the Arduino leonardo. The previous locomotion system I have used, was based on just one i2c channel on an arduino mega mounting a digipot shield. The digipot shield on the arduino mega was replacing the joystick of the arduino leonardo. The arduino leonardo was connected via usb to the minirouter and the minirouter was wireless connected to my pc internet home network
I am asking you the question, because i am wondering if i could somehow control the joystick of a pc gamepad with my arduino/teeensy based locomotion system , also without crearing a custom xinput controller.
In the video below , for example, i am using the locomotion system to move the avatar in vr games (to control the joystick of the original vr controller) , while at the same time i am using the original vr controllers
With math! Subtract the current value from the maximum of the range and then add the minimum of the range to get the inverse. In practice most analog to digital converter (ADC) functions will return an unsigned value (i.e. starting at 0) so you only have to subtract from the maximum.
Hi Dave, thank you for the incredible work you do here and the prompt replies to all of the comments. You set a high bar in the open source world. I have a quick question because I was confused about this at first: it is not possible to connect this to an Xbox360 or XboxOne an pretend to be a controller right?
I was originally using the Arduino Joystick Library and it was causing various issues for what I needed it to do, switching to your library let me get my controller functioning exactly the way I wanted. Thanks for making this library, it saved me scrapping a few months of work.
Do you have any idea what might be wrong? This device was working fine as a serial+keyboard+mouse+joystick device, but I really wanted to get it working with XInput rather than DirectInput. Any help gratefully received!!
Ok, I have now tried the simulate all example on a virgin Teensy LC, with the same result. I also tried a genuine wired 360 controller and that worked fine. Tested it on multiple PCs with the same result. So, bit confused now!
Hey Dave. Do you know the update rate of this controller emulation? Recently I learned that polling rate is how often your PC checks for new data, not necessarily how often a USB device will update with new data. As it turns out, even though an Xbox controller will be set to a 25oHz polling rate by default, the controller itself only provides new button states 124 times a second (124Hz). Even if you use tools to increase polling rate, the controller still only provides new data at 124Hz.
c80f0f1006