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

[Feature Request] Dual JoyCon support w/ independent gyro motion control on each ; required for Ring Fit Adventure, Fitness Boxing series, and many other titles #361

Open
RanceJustice opened this issue Dec 8, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@RanceJustice
Copy link

RanceJustice commented Dec 8, 2024

Overview

At the moment Ryujinx does not have native support Dual Joycons controller inputs. One commonly suggest work around is to use a 3rd party driver utility like BetterJoy , DS4Windows, or even Steam's very comprehensive Controller configuration, which have support for joining both Joycon L and Joycon R into a single input. Unfortunately , these solutions lack a very critical feature - the ability for BOTH JoyCons to have detectable Gyro/Motion and Rumble support. Its possible through these workarounds to enable Gyro functionality from only one source, either L or R, but not both, which creates impossibilities playing certain games as intended, if at all. With this in mind, it would be a significant QoL improvement to solve this issue.

I'd like to request that Ryujinx adds native support for Dual Joycon layouts ( AKA a single player using physical Left Joycon and Right Joycon together to form one functional layout), particularly with support for motion control gyro input (and secondarily, rumble) on both concurrently.

Smaller details

I am aware that other FOSS emulation projects, including one for Switch, has implemented one solution to this issue. In the version with which I was familiar, it had excellent results allowing users, so long as they connected both Joycon L and Joycon R to their PC via Bluetooth, to successfully combine and select a Dual Joycon layout from within the emulator settings and then apply control mappings as they wish, including enabling motion and rumble on both. It worked seamlessly as any other sort of controller selection and configuration, including motion calibration and other features

If I am correct, that emulator was using SDL for its input, including motion (ie it did not require cemuhook or any form of separate servers for gyro specified locally or otherwise, but it did maintain this method as an optional backup), but this required a custom driver or module to enable Dual Joycon support given that , I think, SDL only supports a single device by default. I am unsure what manner of alterations were necessary atop this to add independent gyro/motion sensors for both JoyCons, but on the good side given that the project is FOSS perhaps assessing its method will prove helpful .

It is my understanding that Ryujinx, especially this fork, already has comprehensive native support for many other gamepads (Switch Pro, DualSense, DualShock4, Xbox Series X/S etc...as well as JoyCon L and JoyCon R used independently) including motion control and rumble (both native SDL by default and option for Cemuhook UDP servers). Thus, much of the secondary functionality is already there, the primary and likely greatest challenges being A) native support to join both sides of the physical JoyCons into a single unified Dual JoyCon layout and B) properly reading from both gyro/motion sensors concurrently as part of a user's Dual Joycon inputs, while also C) applying appropriate HD Rumble states to both JoyCons as directed.

Nature of request

I believe I covered the nature of the request above, if there is some particulars I missed please let me know

Why would this feature be useful?

Support for Dual JoyCon w/ Gyro/Motion Control on both devices is a critical, required input methodology to play certain Nintendo Switch titles. Games that have a full body movement component, such as exercise focused or involved titles are perhaps the best examples that require this input method. Perhaps most famously, the popular "Ring Fit Adventure" requires Dual JoyCon w/ Motion sensors on both concurrently, as does "Fitness Circuit" and the boxing focused titles "Fitness Boxing 3" and its predecessors 1 and 2 plus variants like "Fitness Boxing: Fist of the North Star" or "Fitness Boxing featuring Hatsune Miku" . In these sorts of titles, for instance the Fitness Boxing series, players hold Dual JoyCons,one in each hand, and follow the instructions to punch, dodge, and the like. Having motion control on just one site, such as JoyCon R will be insufficient as it means every time you punch with your left hand holding JoyCon L, it will not be detected.

I'd hypothesize when it comes to emulation, these sorts of games are the primary reason a user would choose to make use of the Dual Joycon layout at all, as opposed to the more conventional Switch Pro Controller layout. Without Gyro/Motion-capable Dual Joycons, the above titles and many others either cannot be played at all, or certainly not anywhere close to the intended experience. Thus, it provides not only an improvement to QoL, but adds a large component to playabiity and thus is even a more meaningful improvement . Thanks.

@RanceJustice RanceJustice added the enhancement New feature or request label Dec 8, 2024
@InstantRamenPack
Copy link

Note that this would also be useful because dual joycon cannot use any motion on Mac.

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

No branches or pull requests

2 participants