Motion controls mainly for Windows handhelds #610

Open
SomeoneIsWorking wants to merge 1 commits from SomeoneIsWorking/feat/sdl3-handheld-gyro into master
SomeoneIsWorking commented 2025-02-01 13:01:24 +00:00 (Migrated from github.com)

What is this: Motion input for devices such as ASUS ROG Ally without emulating another type of controller.
How it works: Using SDL3 device sensors instead of relying on controller sensors.
Does it work: Well... It's not perfect. The aiming is a bit off but for example for games that use flick motions (ie: hat throwing), it should cover all your needs.

Alternatively I was in the process of making a separate software using SDL3 that works as a CemuHook emitter but it's not done.
I failed the first time then decided to borrow CemuHook code from Ryujinx to handle the protocols but never got around to finishing it.

The "previous" Ryujinx staff decided against merging this because this makes the project use both SDL2 and SDL3 which is not ideal and also SDL3 wasn't fully released yet.

I decided to open this PR not with the goal of getting it merged but if there is anyone interested in it then they will know there is some work towards this and they can download this, play around, maybe got it working better, not sure.

What is this: Motion input for devices such as ASUS ROG Ally without emulating another type of controller. How it works: Using SDL3 device sensors instead of relying on controller sensors. Does it work: Well... It's not perfect. The aiming is a bit off but for example for games that use flick motions (ie: hat throwing), it should cover all your needs. Alternatively I was in the process of making a separate software using SDL3 that works as a CemuHook emitter but it's not done. I failed the first time then decided to borrow CemuHook code from Ryujinx to handle the protocols but never got around to finishing it. The "previous" Ryujinx staff decided against merging this because this makes the project use both SDL2 and SDL3 which is not ideal and also SDL3 wasn't fully released yet. I decided to open this PR not with the goal of getting it merged but if there is anyone interested in it then they will know there is some work towards this and they can download this, play around, maybe got it working better, not sure.
github-actions[bot] commented 2025-02-01 16:46:22 +00:00 (Migrated from github.com)
Download the artifacts for this pull request: * [ryujinx-Release-1.2.0+0705505-linux_arm64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525300218.zip) * [ryujinx-Release-1.2.0+0705505-linux_arm64-AppImage](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525300311.zip) * [ryujinx-Release-1.2.0+0705505-macos_universal](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525304855.zip) * [ryujinx-Release-1.2.0+0705505-linux_x64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525305127.zip) * [ryujinx-Release-1.2.0+0705505-linux_x64-AppImage](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525305192.zip) * [ryujinx-Release-1.2.0+0705505-win_x64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525316416.zip) <details><summary>Only for Developers</summary> * [ryujinx-Debug-1.2.0+0705505-linux_arm64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525304917.zip) * [ryujinx-Debug-1.2.0+0705505-linux_arm64-AppImage](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525305045.zip) * [ryujinx-Debug-1.2.0+0705505-macos_universal](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525305545.zip) * [ryujinx-Debug-1.2.0+0705505-linux_x64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525307075.zip) * [ryujinx-Debug-1.2.0+0705505-linux_x64-AppImage](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525307198.zip) * [ryujinx-Debug-1.2.0+0705505-win_x64](https://nightly.link/Ryubing/Ryujinx/actions/artifacts/2525317967.zip) </details>
GreemDev commented 2025-02-01 16:47:40 +00:00 (Migrated from github.com)

I'd prefer if this is delayed until we properly support only SDL3.

Much like the original team, I am very much against relying on 2 different versions of the same library; especially when it's not needed and one of the SDLs is used for a niche purpose (such as allowing motion on handhelds)

2 different SDLs, as a result, 2 SDL DLLs (or .SO or .dylib) exist in the result app folder; one of which for an insanely niche use, is not great.

I'd prefer if this is delayed until we properly support *only* SDL3. Much like the original team, I am very much against relying on 2 different versions of the same library; especially when it's not *needed* and one of the SDLs is used for a niche purpose (such as allowing motion on handhelds) 2 different SDLs, as a result, 2 SDL DLLs (or .SO or .dylib) exist in the result app folder; one of which for an insanely niche use, is not great.
This pull request has changes conflicting with the target branch.
  • Ryujinx.sln
  • src/Ryujinx/UI/Views/Input/MotionInputView.axaml.cs

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin SomeoneIsWorking/feat/sdl3-handheld-gyro:SomeoneIsWorking/feat/sdl3-handheld-gyro
git checkout SomeoneIsWorking/feat/sdl3-handheld-gyro
Sign in to join this conversation.
No description provided.