durosoft / xjoy Goto Github PK
View Code? Open in Web Editor NEWUse Nintendo Switch JoyCons as a virtual Xbox 360 controller in Windows
License: MIT License
Use Nintendo Switch JoyCons as a virtual Xbox 360 controller in Windows
License: MIT License
Look i know u dont have time, but can u please change the input of the buttons to be like the xbox controller like x=Y and B=a pls
i will do it myself but i dont know how :(
The left joy con has a significant input delay compared to the right joy con. It's so bad, that it renders the whole setup unplayable. It's very peculiar since the right joy con seems to have no input delay whatsoever.
There is a full half a second delay on the left joycon while the right joycon works at a reasonable speed
Specifically MSVP140.dll
Hey, I'm not sure if this is simply how the program interacts with games on steam but I've noticed when trying the program that when using the right joy-con analog, there is either an input lag of around half a second to a full second when adjusting camera angles and in other game I've tried, the camera seems to jerk around instead of smoothly following the analog inputs. Is there a way to fix this or something I can do to help in the config or something to that affect?
Games I've tried where the camera proved to be a bit of an issue: Dark Souls III, Risk of Rain 2
It would be really usefull if they joycons could be used individually (at least on some games). Is there a way to map de main buttons (axis, triggers and the 4 buttons) to it's xbox counterparts and use 2 joycons as 2 "full"(no really full) xbox controllers?
i installed all the things and tried to run v0.1.4 but it still gives me this error.
Hello!
I tried to use 4 joycons to play with a friends and it turns out Xjoy only recognize one pair of Joycons
Do have any solution for us? Or is connecting 4 joycons juts impossible for now?
Thank you for your help!
I installed everything that was required for this to work. So when I run XJoy.exe I get this:
XJoy v0.2.0
initializing emulated Xbox 360 controller...
connection error: bus not found
press [ENTER] to exit
When moving the analog sticks, the full force is registered rather than the appropriate amount based on how much the analog stick is pushed.
For example, in a game if the stick is pushed slightly the character walks slower than if it was pushed entirely. I have not been able to replicate this functionality in Xjoy.
Thanks for the great work, hope its possible to add this!
I’ve been trying to use Xjoy for the NES Switch Online controllers that you can buy from Nintendo if you have a Switch online subscription but they don’t work, on the button mapping screen everything registers a left input and the d-pad doesn’t work at all.
These are still technically joy-cons but i haven’t found anything that works on PC for them.
Not sure what I did wrong but when I get to the finding-Joy-Cons step, XJoy says "could not find left Joy-Con" (or right Joy-Con, depending). Both are connected/paired to Windows as "Joy-Con (L)" and "Joy-Con (R)" under "Mouse, keyboard, & pen."
Note a possible complicating factor: I'm running Windows on a Mac via KB Parallels virtual machine. I might be overlooking something as I'm not great with Windows.
Thanks.
TOML or YAML
Hi,
XJoy stopped recognizing my JoyCons. Sometimes the left one, sometimes the right one.
I've re-paired them multiple times (remove and re-pair via windows settings), but it won't change anything.
Running Windows 10 Pro 1903.
Output:
XJoy v0.1.9
initializing emulated Xbox 360 controller...
=> connected successfully
=> added target Xbox 360 Controllerinitializing threads...
=> created report mutex
=> left Joy-Con thread started
=> could not find left Joy-Con
press [ENTER] to exit
Everytime I attempt to open the XJoy.exe I get an application error that reads "The application was unable to start correctly (0xc000007b). How do I fix this? Before this occurred it said I was missing msvcp140.dll and vcruntime140.dll although I had both of them installed so I put the before mentioned dlls into the folder where XJoy.exe resides and got the application error.
I've tinkered with XJoy a bit, including the code and I love it. My main use case for connecting the switch joycon to my windows machine, is to use the left joycon for movement in game (instead of the wasd keys) and use mouse for aiming. Suggestion: Do not require the presence of both left and right controllers.
The joycons are connected to my pc using bluetooth, I follow all the steps and everything is good,
but when I open xJoy it says
warning: user calibration data not found
Only in 1 joycon
As the title suggests, pressing any button on JoyCon (L) registers way more than 1 input of said button depending on how long the button is held for. Also, ANALOG doesn't work on JoyCon (L) but works fine on JoyCon (R).
EDIT: There's a line I found that maybe the root cause of this.
warning: user calibration data not found
EDIT 2: Don't know what happened, but this can apparently affect both controllers.
I have both joycons connected to my pc, and have everything installed, yet whenever I open the program it says that the left joycon wasn't detected and says press enter to exit. I've tried reconnecting my joycons and reopening the program, and restarting my pc multiple times, but still nothing.
I see that others have been having the same issue a few months back,
I have reinstalled multiple versions of Visual C++ and multiple versions of XJoy but I can't get it to work.
First it gives the error Msvcp140.dll is missing so I found it online seperately and put it in the same folder, but then it brings out the 0xc000007b error and doesn't work, I have installed the ViGE bus drivers and what not and really want to get this working.
Hi, when i'm using the latest version (0.1.8) i get the error that i'm missing the dll: VCRUNTIME140D.dll
Using an older version (0.1.4) works fine.
@wormyrocks not sure if you noticed before but it looks like some of the new analog support changes introduce some significant input lag / glitchiness. I'm going to investigate and see if I can figure it out.
In the Building section of README.md there's a mention to Visual Studio 2018, but the latest version of Visual Studio is Visual Studio 2017.
Visual Studio is released every other year.
By default (with no calibration / messages sent back to the Joy-Con), the Joy-Con supports 8-direction movement of both analog sticks, which is sent via data slot 3. Looking at other Joy-Con libraries, it is difficult to determine whether this can be increased to something more analog with some calibration. If anyone has any idea whether it is possible to do this, and what the procedure is for getting the Joy-Con out of the default 8-direction mode for analog sticks, it would be greatly appreciated.
update: this is fully possible, and I am working on adding it to XJoy
This is probably very low-priority, but are there plans to add the vibration feature to this?
for me it keeps saying "user cal not found". what can i do about that error? i followed all the instructions and can't seem to make it work.
Is the software not supposed to be able to pick up the analog stick controls? Everything works fine except the left and right analog sticks. It doesn't even show up in the command lines in XJoy.exe when I try moving them. I've tried it on both my Windows 8.1 and my Windows 10 laptops, and neither works.
I'm on XJoy v0.2.0.
I did everything according to the installation instructions, I get the console, the sound and the output as described. And then my system just freezes. No can do but brute force restart.
I'm using Windows 7 64x.
Probably not a top priority or anything, but I'd find it nice if this Program set the LEDs of the Joycons once connected, instead of letting them continue cycling them.
I tried rebuilding the application because I wanted to remap some buttons, but I couldn't get it to work. I'm not experienced in building .cpp files, but when I try I get an error log saying that the builder can't resolve external symbols.
The full log after running cl XJoy.cpp
:
XJoy.cpp
Microsoft (R) Incremental Linker Version 14.00.24210.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:XJoy.exe
/machine:arm
XJoy.obj
XJoy.obj : error LNK2019: unresolved external symbol vigem_alloc referenced in function "void __cdecl `dynamic initializer for 'client''(void)" (??__Eclient@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_free referenced in function "void __cdecl initialize_left_joycon(void)" (?initialize_left_joycon@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_connect referenced in function "void __cdecl initialize_xbox(void)" (?initialize_xbox@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_disconnect referenced in function "void __cdecl disconnect_exit(void)" (?disconnect_exit@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_target_x360_alloc referenced in function "void __cdecl initialize_xbox(void)" (?initialize_xbox@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_target_free referenced in function "void __cdecl disconnect_exit(void)" (?disconnect_exit@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_target_add referenced in function "void __cdecl initialize_xbox(void)" (?initialize_xbox@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_target_remove referenced in function "void __cdecl disconnect_exit(void)" (?disconnect_exit@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol vigem_target_x360_update referenced in function "unsigned long __cdecl left_joycon_thread(void *)" (?left_joycon_thread@@YAKPAX@Z)
XJoy.obj : error LNK2019: unresolved external symbol hid_init referenced in function main
XJoy.obj : error LNK2019: unresolved external symbol hid_exit referenced in function "void __cdecl initialize_left_joycon(void)" (?initialize_left_joycon@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol hid_enumerate referenced in function "void __cdecl initialize_left_joycon(void)" (?initialize_left_joycon@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol hid_open referenced in function "void __cdecl initialize_left_joycon(void)" (?initialize_left_joycon@@YAXXZ)
XJoy.obj : error LNK2019: unresolved external symbol hid_write referenced in function "void __cdecl subcomm(struct hid_device_ *,unsigned char *,unsigned char,unsigned char,unsigned char,unsigned char)" (?subcomm@@YAXPAUhid_device_@@PAEEEEE@Z)
XJoy.obj : error LNK2019: unresolved external symbol hid_read_timeout referenced in function "void __cdecl subcomm(struct hid_device_ *,unsigned char *,unsigned char,unsigned char,unsigned char,unsigned char)" (?subcomm@@YAXPAUhid_device_@@PAEEEEE@Z)
XJoy.obj : error LNK2019: unresolved external symbol hid_read referenced in function "unsigned long __cdecl left_joycon_thread(void *)" (?left_joycon_thread@@YAKPAX@Z)
XJoy.exe : fatal error LNK1120: 16 unresolved externals
I might just be doing something wrong, but I thought I would let you decide whether or not it's a bug or just me not knowing how things work.
Turns out this is caused by the left and right reports overwriting each other. We need to keep track of left_buttons
and right_buttons
separately, and only reset the currently active controller's buttons at the start of button processing for that controller (left_buttons = 0
, instead of report.wButtons = 0
).
When using a single joycon, the SL and SR buttons are quite useful. I tinkered with the code a bit and it looks like there is distinct signals detected, just that the code is not set up to handle that type of input yet.
As the title says. I can't find the XJoy.exe file anywhere in the zip. Help?
Hi, I want to be able to just use the left joycon as an xbox controller, but when I start up xjoy is detects the left controller, doesn't detect the right controller, and then tells me to hit enter to quit the program. I was hoping to do some PC gaming on steam using the left joycon as my WASD plus other functions that i'd be able to map in through steam, and then a mouse for aiming. but i didn't realize that i'd need both joycons if that's the case. an Xbox controller does seem to appear in my device list on steam, but the joy con won't do anything still. There's also no virtual controller appearing like the readme file suggests.
I'm having trouble learning how to customize the button inputs and would like to know how?
is there a way to have more than one pair of joycons working at the same time? I tried but all I got was the first pair registering the inputs on both instances of the application.
Hi! I've been browsing the issues page to find a fix but so far everything i tryed has failed.
I've also left a comment on an old issue about the same thing, but just in case I'm oppening a new issue.
When I open the program, it prompts that i'm missing several .dll files wich are on the same folder as xjoy.exe.
I'm on windows 10, installed vgem and all c++ redistributables from 2015 to 2019.
I also tried ussing older versions and I always get the same missing .dll files.
confused, getting the above error when running the program, and not sure what it means.
my gut instinct is telling me it has something to do with my wireless perhaps, but both joycons show up as connected in my bluetooth settings.
I cant find the stupid visual c++ 2017 file therefore I cant open xjoy....
It worked perfectly before, but now they aren't detected anymore
I have tried various other methods and Xjoy was the most efficient, but for whatever reason it doesn't detect anything
All dependencies are installed.
When I open xjoy it always says bus not found. The problem is I correctly installed the driver and restarted my computer. Any help?
I don't know why, but the program console, gets spammed with "" and so it automatically scrolls down
Dark Souls 2 is only using the first connected controller and there is no way to change it. Could XJoy be implemented as working before connecting Joy Cons?
Right now, XJoy can only be closed if running before connection of Joy Cons. It can be implemented as waiting for Joy Cons to be connected.
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.