I was able to translate every Joy-Con button over to something on the virtual Xbox controller.
Upon making this discovery, I ported over all of my Joy-Con parsing code to use HIDApi and ViGEm in windows C++. A workable solutionĪfter doing some more research, I stumbled upon ViGEm, which is a very well put together, well-maintained virtual Xbox 360 (and DS4) controller library for Windows written in C++. All of that said, it was extremely cool controlling a mouse on Linux, Windows, and OSX using a Joy-Con analog stick, and I definitely plan to do something with that project in the future, just not in a gaming-focused sort of way. I estimated that to fully cover all of the functionality in No Man’s Sky, I would need over 45 modes, so I quickly abandoned this approach. This all fell apart when there were modes that were impossible to activate (because they depended on the presence of something in-game that I couldn’t detect without analyzing screenshots) without using a hotkey. This worked extremely well at first, however games like No Man’s Sky, which has different controller mappings for practically every menu and every interaction in the game, I had to start coding in custom “modes” the program would enter into where the controller-to-keyboard-plus-mouse mapping would change based on any number of factors. I was experimentally able to figure out what parts of the HID data did what by observing the numbers as they came in, and eventually I was able to map out all the controls for both Joy-Cons (this is much more fun than simply looking up what the values are for each button). Next I became stubborn and decided to bypass this whole controller-emulation nonsense entirely by writing my own cross-platform Node.js program that used an HID library in conjunction with robotjs to read the Joy-Con input and translate it to mouse and keyboard. This phase was also dominated by a number of Steam-specific bugs in the edit controller window in Steam. In particular, it didn’t work at all in BeamNG, which is my husband’s must-play go-to game when he is bored, so this solution was out. This worked well in some games like Stardew Valley, but the configuration was extremely flaky and only worked in certain games. Going it alone - XJoy originsĪt first I attempted using the joycon-driver project in conjunction with VJoy. Thus I began my quest to map the input from my husband’s Joy-Cons to something he could use to play PC games.
Still, he wanted to be able to play his old PC games, as the number of titles (and genres) available for the Switch (as with any Nintendo-based platform) can be quite limiting, and he has hundreds of games in his Steam library. Unfortunately, the DualShock 4's use of generic DirectInput driversas opposed to XInput that the Xbox controllers usemeans using a PS4 controller on PC isn't quite as easy as plugging in an. Because the two Joy-Cons could be separated and held in his left and right hands apart in a resting position, he was able to play games once again, and for hours on end at that! The Switch changed everything for my husband.
Thus to his great dismay my husband was unable to play any PC or console games when his condition worsened - that is, until his Nintendo Switch arrived. He had an equally bad time with Xbox and PS4 controllers, as most of his strain came from having his hands too close together. This project arose originally out of my husband’s nerve-damaged wrists - PC gaming mice and even ergonomic mice put too much strain on his wrists. Visit the XJoy project to learn more The accessibility of Joy-Cons
Well now with my XJoy utility you can use these delightful Bluetooth devices as an input for your favorite PC games that support Xbox controller input.
This article gives a list of all PC games which support the Xbox 360 controller without special drivers or configuration, organized by genre.Ī listed game preceded by a Xbox 360 Controller recommended icon indicates that the specific game is best played with an Xbox 360 Controller, opposed to other input devices.Īlthough, theoretically, you can use a Xbox 360 controller on most games that allow you to change the controls of the game.Much has been said about the innovative detachable Joy-Con controllers that come with the Nintendo Switch.