d3xMachina / BetterJoy

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Other
72 stars 5 forks source link

[ENHANCEMENT] Use joy-con as well.... Joy-con! #26

Closed GustaKir closed 1 month ago

GustaKir commented 1 month ago

I have been messing around BetterJoy (kinda a lot) And still haven't figured out a way to do this, so I am guessing it's not an option? Or at least isn't working how I think it does? I don't know.... Anyway, I think a feature to use joy-con as joy-con inputs would be great for third party controllers. What I mean is, for my understanding, if I leave "ShowAsXInput" and "ShowAsDS4" off, betterjoy is not doing anything right? I would like to have an option to "ShowAsJoycons". My third party joycon are kinda screwed, maybe by themselves, or maybe is the whole bluetooth 4.2 fiasco, either way, both my Right and Left joycons are detected (natively) as Right joycon, at least for Yuzu and some other places, and even when it does detect correctly somewhere else, everything is all over the place with things not working (Windows bluetooth names show correctly tho, and my linux was showing them working normally too for a bit, but after windows everything got screwed everywhere). I would like to use BetterJoy to fix those issues (that they do already fix normally btw, great software), but keep using the joycon as joycon input, since Yuzu, Ryujinx (and some other softwares) can natively already support joycon, that would make it so I don't need to every single time set up functions again or handle all the craziness. ( And yes, I know I can use them as X inputs, but then they show both as that, which is hard to know what is what when you're setting up things, even more if you have like 4 or more controllers at the same time, and you need to go back and forth between betterjoy if you wanna join them together for a game, redo everything, is annoying).

Or, another option (possibly better? not sure, I think showing them as joycon would be great for native support, but if this is an option I think it works out too). Maybe an option to show them as three different controllers instead of two (Kinda like Yuzu already does by themselves), so it shows them like "Nintendo Joy-Con (R)", "Nintendo Joy-Con (L)" and "Nintendo Joy-Con (L/R)". With that then I wouldn't need to go back and forth between them all the time to set up things, I can use both whenever I wanna use both and use separated whenever I wanna use that.

d3xMachina commented 1 month ago

To make a Xinput or DS4 virtual controller, ViGEmBus is used. There are no such project to make a virtual joycon. It wouldn't be trivial to implement and the driver would need to be signed which cost quite a bit of money every years. It's also outside of the scope of this project. So I won't be able to implement this feature.

I would guess your thirdparty left joycon is not sending the correct data and is modifying the byte 3 instead of 5 here and it's also reporting as a right joycon for the subcommand 0x02.

You should contact the thirdparty controller's vendor to see if they have a firmware that fix the issue or return it if it's still possible.

GustaKir commented 1 month ago

Oh that's a bummer, but I understand it. Thanks for the help with the controller too, I might return them or ask them to fix at least. About the later tho, would still be possible to add a third option with both joycon joined like Yuzu does? Or is also not something possible? Thanks Again.

GustaKir commented 1 month ago

(Little update, just tested with another pair of joycons I had (another brand) and is working correctly, so is def a issue with the first pair of joycon. Is there any way I can fix or change that by myself or is only fixable with a firmware update from the brand that made them?)

d3xMachina commented 1 month ago

Oh that's a bummer, but I understand it. Thanks for the help with the controller too, I might return them or ask them to fix at least. About the later tho, would still be possible to add a third option with both joycon joined like Yuzu does? Or is also not something possible? Thanks Again.

By default, left and right joycons are joined when possible in BetterJoy and appear as a single virtual controller. It's also possible to disable this behavior with the "DoNotRejoin" option.

(Little update, just tested with another pair of joycons I had (another brand) and is working correctly, so is def a issue with the first pair of joycon. Is there any way I can fix or change that by myself or is only fixable with a firmware update from the brand that made them?)

I believe it's only fixable by a firmware update.

GustaKir commented 1 month ago

By default, left and right joycons are joined when possible in BetterJoy and appear as a single virtual controller. It's also possible to disable this behavior with the "DoNotRejoin" option.

I mean, an option to do both at the same time, kinda like Yuzu does (only if possible, of course). Show Right, Left and a joined joycon, three controllers at the same time (instead of the usual two controllers at the same time that usually shows up if you're using them separated, or only one if they're joined.

I believe it's only fixable by a firmware update.

Oh that's so annoying. I tried an update I found for it from the manual, but it didn't really update anything. I did test it out with the Joy-con toolkit tho, and yeah, it 100% shows up the left joy-con as right, so weird. Even more annoying is those are very good joy-con for the price too, the other one I got for the same price is very very trashy (other than the fact that actually shows up correctly lol).

Either way, thanks again or all the help, and sorry for any troubles.