Main > Software Forum

Keyboard2Xinput (Virtual X360 pads from keyboard)

<< < (27/34) > >>

dino82:
Firstly I'd like to thank you for the software, if I had a more conventional setup I would be all set to go, that being said.....

I have two IPAC Ultimates, Players 1 and 3 on one, and Players 2 and 4 on the other

[3 1 2 4]

Players 1 and 2 use an U360 (USB) joystick, while Players 3 and 4 use a traditional 8-way.  The U360's are directly connected to the PC using USB, the 8-ways are connected to the IPACS and mapped to keyboard keys.

Mapping all of the keys works fine, absolutely no issues there.  The issue is that the joysticks for Players 1 and 2 don't work at all, being that they are not connected to the IPAC nor are they keyboards, I expected some fuss from them.  What would be the best suggestion to get an analog stick + IPAC mapped keys to work here?

If I use something like X360CE, it will create a new virtual controller out of the P1 U360/IPAC, and P2 U360/IPAC, but I assume that will either conflict or completely remove the ability for P3 and P4 to create virtual controllers as well, since they are also on the P1/P2 IPAC?

kagaden:

--- Quote from: Schwing on September 13, 2020, 04:44:21 am ---Hi all,
The input delay problem with Injustice 2 and Mortal Kombat 11 for users that have a six-button configuration has been nagging me, so I made a very raw implementation of Keyboard2Xinput in C++, to see if it perform better. First results were encouraging, as it reported 0ms between 2 keyboard presses more often than not. It would not be perfect as I also had 7-15 ms between presses sometimes (I'd say 2 out of 10 times), but it was worth a shot.
So I mapped a joypad, fired up Mortal Kombat 11 (which I bought thanks to a donation :)), and... Nothing. I'd say 1 throw out of 20 presses. ---fudgesicle---.

Then I got an idea: for these games, instead of sending the button press as soon as I get the keyboard event, I store the joypad state, and wait 10 ms before sending the joypad state. This way if I get another keyboard event within 10 ms, the next joypad state will have both buttons pressed simultaneously. It's far from ideal, as this introduces input lag, but it might be bast than nothing. This time it worked ! To get it to work reliably I had to make it 15 ms (so a full frame at 60fps), but every single throw works.

I think I will introduce this feature in the C# Keyboard2Xinput, but before I do that, I'd like to have some feedback from those who are affected by this, So I packed multiple versions of the C++ experimental build, with different delays. If some of you would be so kind to test & report which delay works for them (if any), that would be useful for default values in the sample configuration.
Please keep in mind that this is a very raw implementation, so the mapping is hard-coded, there's a big window that serves no purpose and none of the features of Keyboard2Xinput are present besides one joypad being created.
It's available here: http://kb2xi.schwingsk.net/Keyboard2XinputCpp.zip.

The mapping is the following:
Up = UP
Down = DOWN
Left = LEFT
Right = RIGHT
LControlKey = A
LMenu = B
LShiftKey = X
W = Y
D5 = START
D1 = BACK

So if you want to test a throw, you have to push shift & left Control simultaneously.

--- End quote ---

Can't believe no one's tested this yet. Yes! This program is seriously rough, my keyboard stopped working at all even after it was closed while testing. MK11 after closing it once had 4 corrupted files and wouldn't reboot without reverifying the game.

As for throws! I tested out 7ms and 10ms tonight:

Rig - Windows 10 Home 64bit (fresh install/upgraded hardware)
i5-11400
32gb DDR4
1080GTX

Normal version - 5% of throws accomplished. Repeated many sets of 10 throws each.
7ms results - 70% of throws accomplished. Repeated many sets of 10 throws each.
10ms results - 75% of throws accomplished. Repeated many sets of 10 throws each.
15ms results - 95% of throws accomplished. Repeated many sets of 10 throws each.
25ms results - 100% of throws accomplished. Repeated many sets of 10 throws each.

Conclusions - THIS HELPS A TON, and I'd love to see this in a special build to use for Netherrealm fighters. It does add some input latency that will likely be a little noticeable at higher skill levels. I'd stick with 15ms as that seemed like a really good balance between latency and success rate. Plus with a little training it felt like I could get this timed 100%.


Other thoughts - Unfortunately after I closed MK11 while testing it corrupted on me, likely due to me end-tasking it suddenly. I was not nice on my computer while running this. Reverifying the files through steam and it's working again.

I may -FINALLY- try my build on Windows 7 as well before I upgrade it to windows 10 just for record keeping, but I don't think i'll use this experimental app on it just in case :P I'll post a Win 7 update for the stable build when I get around to upgrading my 2nd arcade pc soon.

Thanks again, please dm me your paypal Schwing!
-K

Pierre_Blignaut:
Good work.

Sent from my SM-N970F using Tapatalk

Schwing:
Hi Kagaden, and thanks a lot for trying these builds (never had those problems with MK11 corruption, really sorry about that :() !
This is really good news, so I'll be adding the option in the next release. There's a non-zero probability that it will land next week, but don't keep your hopes up ;) If it doesn't, I'm afraid you'll have to wait until the end of July, as I'll be taking  some holidays without access to my computer (unless COVID ---smurfs--- everything up again...).

Again, thanks a lot for testing these wonky builds!

xul:
Looking forward to the next build and take the time needed.  Appreciate your hard work.  :cheers:

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version