Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a virtual controller to merge Joy-Cons. #434

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

madwind
Copy link

@madwind madwind commented Dec 23, 2024

No description provided.

@Daenorth
Copy link
Contributor

Done testing on MK8, PKM Letsgo, Super Mario Oddeysey, all works like a charm with orientation, Motion, Dual mode and single mode.

@sakuka47
Copy link

sakuka47 commented Jan 1, 2025

I tested it under botw and it works fine.

I'm sakuba

@stenwill
Copy link

stenwill commented Jan 3, 2025

It works fine when I used single JC on SMP

@stenwill
Copy link

stenwill commented Jan 3, 2025

It works fine when I used single JC on SMP

@RanceJustice
Copy link

Very basic testing on Fitness Boxing: Fist of the North Star (using the compiled release from the Github-actions bot listed above, so it may not be the latest version. ) and Fitness Boxing 3 shows promise - it does seem that Dual Joycon w/motion on both sides is registering! I'll need to do more comprehensive testing on Ring Fit Adventure and the titles above. I've run into a couple of questions or potential issues

Issue/bug w/ Controller Applet pop up - While playing at varying irregular intervals, the controls applet (will have to check the name again) pops up suggesting that the current gamepad configuration is invalid for the type of game (it does properly show the dual joycon graphics) and to reconfigure. It may be this happens during periods of inactivity or if the gamepad goes into standby, but I've also gotten it during active play (which thankfully usually pauses the game). Simply exiting the pop-up and resuming play seems to maintain Dual Joycon w/ dual motion usage so its not like you actually need to reconfigure anything, but I gather it still should not be happening. Maybe one of the updates since the compiled build from the bot solves this already, but if not I wanted to make sure to document.

Rumble - What are the suggested Rumble settings to replicate Switch default "HD rumble"? Some of the games listed also include the rumble component along with the motion in different ways, and using the Ryujinx control options simply to enable Rumble with its defaults seemed functional, but I wanted to make sure I was using the proper setup. When I test Ring Fit I'll be able to see if it "feels" right as Ring Fit Adventure makes pretty significant usage of rumble.

Accuracy of gyro/motion registering - I had some issues with accurate and timely detection of motion/gyro related inputs in Fitness Boxing FotNS, especially when there were lots of concurrent, incidental inputs. That is to say, When playing a Fitness Boxing title, you typically grip the Dual Joycons by making a fist around them, sideways - so that you could easily slide your thumb up and press L or R with your thumb, for instance, and once you slid on the side connector with the wrist strap your fingers would curl around the unused SL/SR buttons, as well as be likely touch face buttons or sticks during gameplay. I mention this as I said above, it seemed that perhaps both incidental button press inputs and more importantly frequent motion input strings (ie a series of 6 - 8 punches in different styles,/direction of motion, using both joycons in an alternating fashion during the series - left jab, right straight, left uppercut, left body uppercut, right body hook etc) seemed to be likely to result in it not registering and missing, especially after the first one or two events . PLEASE NOTE: I need to conduct more tests to rule out any hardware or input issues on my side, but I thought it worth mentioning.

Suggestion, Ryujin Input config - Its great that the new drop-downs for selecting the Dual Joycon layout and applying to to Dual Joycon hardware are functional. Likewise, the default keybindings are pre-assigned and accurate. Clicking on one of them to rebind-as-means-of-testing-connection , like the Dpad Up button on Joycon L and then A Button on Joycon R, confirms both halves of the Dual Joycon layout are functional. Would it be possible however to show a visual representation without the need to rebind and most importantly, add one for both gyros? That is to say, on the little 3D model Dual Joycons, have whatever button you press or thumbstick you use light up momentarily to show it is registering and the proper command (ie pressing A has the A button on the model glow ) ? For motion/gyro, perhaps a small X, Y, Z wireframe in the shape of a joycon on each sided that could move in response to the user tilting or shifting the joycon? Seems like it may be a nice QoL update related to this new functionality; not sure if it was worth its own suggestion but given that the function would be most comprehensive when using Dual Joycon, it should also apply to Pro Controller, solo Joycon etc... just using their models instead to light up the buttons and with only a single motion demonstration wireframe instead of the both of them.

Thank you to Greem, Madwind and others who have brought this comprehensive, important feature into Ryujinx!

@madwind
Copy link
Author

madwind commented Jan 3, 2025

Very basic testing on Fitness Boxing: Fist of the North Star (using the compiled release from the Github-actions bot listed above, so it may not be the latest version. ) and Fitness Boxing 3 shows promise - it does seem that Dual Joycon w/motion on both sides is registering! I'll need to do more comprehensive testing on Ring Fit Adventure and the titles above. I've run into a couple of questions or potential issues

Issue/bug w/ Controller Applet pop up - While playing at varying irregular intervals, the controls applet (will have to check the name again) pops up suggesting that the current gamepad configuration is invalid for the type of game (it does properly show the dual joycon graphics) and to reconfigure. It may be this happens during periods of inactivity or if the gamepad goes into standby, but I've also gotten it during active play (which thankfully usually pauses the game). Simply exiting the pop-up and resuming play seems to maintain Dual Joycon w/ dual motion usage so its not like you actually need to reconfigure anything, but I gather it still should not be happening. Maybe one of the updates since the compiled build from the bot solves this already, but if not I wanted to make sure to document.

Rumble - What are the suggested Rumble settings to replicate Switch default "HD rumble"? Some of the games listed also include the rumble component along with the motion in different ways, and using the Ryujinx control options simply to enable Rumble with its defaults seemed functional, but I wanted to make sure I was using the proper setup. When I test Ring Fit I'll be able to see if it "feels" right as Ring Fit Adventure makes pretty significant usage of rumble.

Accuracy of gyro/motion registering - I had some issues with accurate and timely detection of motion/gyro related inputs in Fitness Boxing FotNS, especially when there were lots of concurrent, incidental inputs. That is to say, When playing a Fitness Boxing title, you typically grip the Dual Joycons by making a fist around them, sideways - so that you could easily slide your thumb up and press L or R with your thumb, for instance, and once you slid on the side connector with the wrist strap your fingers would curl around the unused SL/SR buttons, as well as be likely touch face buttons or sticks during gameplay. I mention this as I said above, it seemed that perhaps both incidental button press inputs and more importantly frequent motion input strings (ie a series of 6 - 8 punches in different styles,/direction of motion, using both joycons in an alternating fashion during the series - left jab, right straight, left uppercut, left body uppercut, right body hook etc) seemed to be likely to result in it not registering and missing, especially after the first one or two events . PLEASE NOTE: I need to conduct more tests to rule out any hardware or input issues on my side, but I thought it worth mentioning.

Suggestion, Ryujin Input config - Its great that the new drop-downs for selecting the Dual Joycon layout and applying to to Dual Joycon hardware are functional. Likewise, the default keybindings are pre-assigned and accurate. Clicking on one of them to rebind-as-means-of-testing-connection , like the Dpad Up button on Joycon L and then A Button on Joycon R, confirms both halves of the Dual Joycon layout are functional. Would it be possible however to show a visual representation without the need to rebind and most importantly, add one for both gyros? That is to say, on the little 3D model Dual Joycons, have whatever button you press or thumbstick you use light up momentarily to show it is registering and the proper command (ie pressing A has the A button on the model glow ) ? For motion/gyro, perhaps a small X, Y, Z wireframe in the shape of a joycon on each sided that could move in response to the user tilting or shifting the joycon? Seems like it may be a nice QoL update related to this new functionality; not sure if it was worth its own suggestion but given that the function would be most comprehensive when using Dual Joycon, it should also apply to Pro Controller, solo Joycon etc... just using their models instead to light up the buttons and with only a single motion demonstration wireframe instead of the both of them.

Thank you to Greem, Madwind and others who have brought this comprehensive, important feature into Ryujinx!

  1. Controller Applet pop up, I think that’s because your controller disconnected. Any one of the Joy-Cons disconnecting will cause that. like this, disconnected => conneted
    Untitled
  2. I use a third-party Joy-Con, so I can't solve this issue. Maybe others can. And as far as I know, SDL2 has reverted the PR for HD rumble.
  3. I haven't encountered those situations in Fit Boxing 3. Maybe its detection is more lenient. Also, in all Fit Boxing games, As long as I swing the controller at the right moment, I can complete all the detections. For example, always throwing jabs.. I'm not sure if it's an issue with my Joy-Con.
  4. That might be a different issue.

@RanceJustice
Copy link

RanceJustice commented Jan 3, 2025

Very basic testing on Fitness Boxing: Fist of the North Star (using the compiled release from the Github-actions bot listed above, so it may not be the latest version. ) and Fitness Boxing 3 shows promise - it does seem that Dual Joycon w/motion on both sides is registering! I'll need to do more comprehensive testing on Ring Fit Adventure and the titles above. I've run into a couple of questions or potential issues
Issue/bug w/ Controller Applet pop up - While playing at varying irregular intervals, the controls applet (will have to check the name again) pops up suggesting that the current gamepad configuration is invalid for the type of game (it does properly show the dual joycon graphics) and to reconfigure. It may be this happens during periods of inactivity or if the gamepad goes into standby, but I've also gotten it during active play (which thankfully usually pauses the game). Simply exiting the pop-up and resuming play seems to maintain Dual Joycon w/ dual motion usage so its not like you actually need to reconfigure anything, but I gather it still should not be happening. Maybe one of the updates since the compiled build from the bot solves this already, but if not I wanted to make sure to document.
Rumble - What are the suggested Rumble settings to replicate Switch default "HD rumble"? Some of the games listed also include the rumble component along with the motion in different ways, and using the Ryujinx control options simply to enable Rumble with its defaults seemed functional, but I wanted to make sure I was using the proper setup. When I test Ring Fit I'll be able to see if it "feels" right as Ring Fit Adventure makes pretty significant usage of rumble.
Accuracy of gyro/motion registering - I had some issues with accurate and timely detection of motion/gyro related inputs in Fitness Boxing FotNS, especially when there were lots of concurrent, incidental inputs. That is to say, When playing a Fitness Boxing title, you typically grip the Dual Joycons by making a fist around them, sideways - so that you could easily slide your thumb up and press L or R with your thumb, for instance, and once you slid on the side connector with the wrist strap your fingers would curl around the unused SL/SR buttons, as well as be likely touch face buttons or sticks during gameplay. I mention this as I said above, it seemed that perhaps both incidental button press inputs and more importantly frequent motion input strings (ie a series of 6 - 8 punches in different styles,/direction of motion, using both joycons in an alternating fashion during the series - left jab, right straight, left uppercut, left body uppercut, right body hook etc) seemed to be likely to result in it not registering and missing, especially after the first one or two events . PLEASE NOTE: I need to conduct more tests to rule out any hardware or input issues on my side, but I thought it worth mentioning.
Suggestion, Ryujin Input config - Its great that the new drop-downs for selecting the Dual Joycon layout and applying to to Dual Joycon hardware are functional. Likewise, the default keybindings are pre-assigned and accurate. Clicking on one of them to rebind-as-means-of-testing-connection , like the Dpad Up button on Joycon L and then A Button on Joycon R, confirms both halves of the Dual Joycon layout are functional. Would it be possible however to show a visual representation without the need to rebind and most importantly, add one for both gyros? That is to say, on the little 3D model Dual Joycons, have whatever button you press or thumbstick you use light up momentarily to show it is registering and the proper command (ie pressing A has the A button on the model glow ) ? For motion/gyro, perhaps a small X, Y, Z wireframe in the shape of a joycon on each sided that could move in response to the user tilting or shifting the joycon? Seems like it may be a nice QoL update related to this new functionality; not sure if it was worth its own suggestion but given that the function would be most comprehensive when using Dual Joycon, it should also apply to Pro Controller, solo Joycon etc... just using their models instead to light up the buttons and with only a single motion demonstration wireframe instead of the both of them.
Thank you to Greem, Madwind and others who have brought this comprehensive, important feature into Ryujinx!

1. Controller Applet pop up, I think that’s because your controller disconnected.  Any one of the Joy-Cons disconnecting will cause that.  like this, disconnected => conneted
   ![Untitled](https://private-user-images.githubusercontent.com/35490391/399936239-5fa5f3e9-910e-429a-9ba8-aea6ab211bb4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzU5MDQ4ODgsIm5iZiI6MTczNTkwNDU4OCwicGF0aCI6Ii8zNTQ5MDM5MS8zOTk5MzYyMzktNWZhNWYzZTktOTEwZS00MjlhLTliYTgtYWVhNmFiMjExYmI0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAxMDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMTAzVDExNDMwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFiMzQ2MTY1YzMzOTc2OTVhMDFhMTIyYTRhZDQ5NGVmMDBhMzg4Y2E5NTk3ZDhkMDFjYTk3ZDFjYjVlMWUwOWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.llZBpQFld_0dXwrivcrV9JaNBWvLf0mfZ185yveRphw)

2. I use a third-party Joy-Con, so I can't solve this issue. Maybe others can. And as far as I know, SDL2 has reverted the PR for HD rumble.

3. I haven't encountered those situations in Fit Boxing 3. Maybe its detection is more lenient. Also, in all Fit Boxing games, As long as I swing the controller at the right moment, I can complete all the detections. For example, always throwing jabs.. I'm not sure if it's an issue with my Joy-Con.

4. That might be a different issue.
  1. I'll check into this. As far as I know it was not "properly" disconnecting (ie I did not have to re-pairit in the OS etc) as clicking off the applet allowed me to resume play without apparent issue, but as I mentioned in the other bit I'll check to ensure that there isn't a hardware or connection issue
  2. Okay, I can understand this. I'm using official JoyCons and I want to confirm that both sides do in fact Rumble, but given there are settings for the low intensity/high intensity (which I left at default, 1.00 for both) I just wanted to ask about configuration to make sure that if there was any difference in experience it didn't come down to setting as opposed to some more granular part of the implementation itself. I'll continue to test
  3. I'm going to attempt to check both connection and another pair of JoyCons to try to narrow down variables and see if its an issue on my side or something else going on, as mentioned above. Playing FotNS on another emulator variant did not seem to have the problem, but it could have been a one off issue; I'll have to compare. Also, if you've played Fit Boxing 3 , immediately after completing the tutorial and were given the ability to choose varying options like Daily Exercise or Settings etc... have you successfully loaded the Settings? Every time I tried it crashed the emulator. I was thinking of making a separate Issue on the crash if its not already fixed but if you're using a more recent build or compiled it yourself, it may already be fixed.
  4. Makes sense, I figured that since the Dual Joycon and Gyro/Motion + Rumble would have to be added to the Control Settings , it may be included there but I could make an Issue for QoL fixes like that after we get the main functionality sorted.

Thanks!

@mcost45
Copy link

mcost45 commented Jan 5, 2025

I’ve experienced point 1 on stable Ryujinx a couple of times, so I think it’s unlikely that it’s related to this commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants