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

No motion detected on latest steam client #45

Closed
fivezeroes opened this issue Apr 12, 2023 · 41 comments · Fixed by #65
Closed

No motion detected on latest steam client #45

fivezeroes opened this issue Apr 12, 2023 · 41 comments · Fixed by #65

Comments

@fivezeroes
Copy link

While using the latest steam client beta, no gyro movement is being registered. I've tried reinstalling, rebooting, confirmed the service is running, and tested with both cemu and yuzu. After switching back to steam stable, gyro works as expected.

@Mario-119
Copy link

Can confirm the same behavior, replicated all of the above steps

@kmicki
Copy link
Owner

kmicki commented Apr 17, 2023

Yes there is a problem with new Beta. Steam disables gyro input from the controller when Gyro in controller settings is set to "None".

As a workaround (I assume Cemu/Yuzu is run in gaming mode from Steam):

  1. Press STEAM button
  2. Open Controller Settings
  3. Edit layout
  4. Go to Gyro
  5. Select Gyro Behavior -> Directional Pad
  6. Choose anything for one of the positions of directional pad. Anything that won't intefere with using Cemu/Yuzu. I chose Action Sets->Cleared from Parent
  7. Now it should work.

@ich777
Copy link

ich777 commented Apr 20, 2023

@kmicki that doesn‘t work either, I did it exactly like you‘ve described it, I even tried to set the gyro to be always activated but no dice.
Yuzu tells me that it received inputs when I move the deck.

My Deck is on the latest preview version.

@kmicki
Copy link
Owner

kmicki commented Apr 20, 2023

Well, I don't know what else can be done, it works for me in Cemu.

@ich777
Copy link

ich777 commented Apr 20, 2023

lol, not the answer that I expected, then lets uninstall it again... 😞

@kuar-z
Copy link

kuar-z commented Apr 21, 2023

Additional data: motion IS detected without the workaround above but ONLY when the Steam overlay is enabled. Hope this helps narrow it down.

@kmicki
Copy link
Owner

kmicki commented Apr 22, 2023

Thanks. Yes, I have also noticed that gyro data is present when overlay is open.

I wasn't clear before. The issue is already identified. There's nothing else that can be done besides using the workaround or coming up with a completely different approach (I don't know what would that be right now) and rewriting most of sdgyrodsu.

Steam application sends commands to the controller to enable or disable gyro data. sdgyrodsu is not able to intercept or simulate those commands. Steam app has full write access to the device and sdgyrodsu can only look at data incoming from the controller.

@ich777
Copy link

ich777 commented Apr 22, 2023

Grimbakor from the Yuzu Discord has made a video on how to enable it, the main issue was that you have to click the button in the middle in the Controller settings in Yuzu and not on the other option which most Youtube videos recommend.
He allowed me to upload his videos here.

This is if you are doing it from the Desktop mode (you have to make the screen actually bigger because otherwise you won't be able to click the button):

gyro.mp4

And this is what you have to do when you do it from within Gaming Mode (you have to set a custom resolution in order to be able to click the button):

output.mp4

BTW, I don't have to do the workaround that you've posted above @kmicki, the gyro is in my case always active even when using a Controller layout without Gyro.

@KrisCris
Copy link

Select Gyro Behavior -> Directional Pad

I can confirm this is the ONLY step needed for me to get the gyro working, for both Cemu and Yuzu.

Can also confirm the gyro works when an overlay (like the quick access menu) is open.

@kmicki
Copy link
Owner

kmicki commented Apr 22, 2023

@ich777 that's interesting that in your system sdgyrodsu works even when gyro is disabled in controller layout. I wonder what else is different that it's possible on your Deck.

@ich777
Copy link

ich777 commented Apr 22, 2023

@kmicki I have now restarted my Deck, just to be sure it wasn't just a fluke, started Yuzu, double checked that I only have Game Controller with Camera Control enabled and it is still working (I haven't configured any Gyro in the Steam controller settings).

Are you also on the latest Steam Deck preview version? Please also note that I don't use Emudeck or something else like that, just Yuzu and your installation script.

@FoodFrisbee
Copy link

@kmicki 's solution worked for me, thanks

@ich777
Copy link

ich777 commented Jun 15, 2023

@kmicki just a update for you, I've now updated a few times and the gyro is still working without assigning the gyro to a button.
The only thing that I did was I set the gyro to be always on in the Steam controller settings for Yuzu instead of being activated when touching the right stick.

@BNU-BUJIDAO
Copy link

steam update on June 15, and it can’t work on yuzu and Demi now😭

@anyoneyun
Copy link

Same issue here on stable now, I had to enable the gyro in the controller layout section of the Steam menu

@ratijas
Copy link
Contributor

ratijas commented Jun 16, 2023

Either I am holding it wrong, or the latest updated (installed yesterday) broke this DSU server.

Change log for June 14th mentions "gyro" a lot, so that's probably related:

UPDATE

Actually the controller layout trick described in this comment of this thread works for me. Thank you.

@misuzu
Copy link

misuzu commented Jun 16, 2023

5. Select Gyro Behavior -> Directional Pad

This fixed the issue for me.

@ratijas
Copy link
Contributor

ratijas commented Jun 16, 2023

@kmicki You might wanna change the title (beta) and pin this issue, so that people won't report duplicates.

@vgf89
Copy link

vgf89 commented Jun 18, 2023

  1. Select Gyro Behavior -> Directional Pad

This fixed the issue for me.

This did not work for me, at least with Yuzu. Yuzu says it receives data from the server when I click the test button but totk doesn't get motion input. It worked perfectly before the most recent steam client update.

@ich777
Copy link

ich777 commented Jun 20, 2023

This did not work for me, at least with Yuzu. Yuzu says it receives data from the server when I click the test button but totk doesn't get motion input. It worked perfectly before the most recent steam client update.

@vgf89 can you maybe test this on the Preview branch within SteamOS, I have no issue whatsoever on the Preview branch with Yuzu on my Deck.

@vgf89
Copy link

vgf89 commented Jun 21, 2023

This did not work for me, at least with Yuzu. Yuzu says it receives data from the server when I click the test button but totk doesn't get motion input. It worked perfectly before the most recent steam client update.

@vgf89 can you maybe test this on the Preview branch within SteamOS, I have no issue whatsoever on the Preview branch with Yuzu on my Deck.

There is no "Preview" branch.

For clarity, are you talking about Yuzu EA (I'm on the latest, 3698), Steam OS "Release Candidate", "Beta", "Beta Candidate", or "Main", or are you talking about Steam Client "Steam Deck Beta"?

So far I've tested Steam OS Stable/Steam Client Stable on Yuzu EA 3698, and Steam OS Release Candidate/Steam Client Stable on Yuzu EA 3698, neither of which have working motion controls. I initially commented in this thread with Steam OS Release Candidate/Steam Client Stable and a slightly older version of Yuzu EA.

EDIT: also just tested Yuzu 1439 (2023-05-19), that did not work either, so it's not a Yuzu regression

@ich777
Copy link

ich777 commented Jun 21, 2023

@vgf89 I‘m not talking about Yuzu, I‘m talking about the Deck OS release channel.
In my language (German) there are thre channels: stable, beta & preview

On preview the gyro is just working fine.

On my Deck it is working regardless of the Yuzu version.

@badboybeyer
Copy link

Same Issue.

Select Gyro Behavior -> Directional Pad

Does not work

set up to Action Sets->Cleared from Parent

Does not work

Controller settings in Yuzu

I only have "mouse" and "Shake". I do not see cemuhook as an option

Testing cemuhook in yuzu gives a "Successfully received data from the server"

"Shake" eventually shifts back to "mouse" after shaking. I have only tried this from the desktop.

I am on preview channel for Deck OS and up to data.

I am on yuzu 1475.

I installed yuzu and cemuhookdsu using emudeck.

@JohnGhostly
Copy link

Same Issue.

Select Gyro Behavior -> Directional Pad

Does not work

set up to Action Sets->Cleared from Parent

Does not work

Controller settings in Yuzu

I only have "mouse" and "Shake". I do not see cemuhook as an option

Testing cemuhook in yuzu gives a "Successfully received data from the server"

"Shake" eventually shifts back to "mouse" after shaking. I have only tried this from the desktop.

I am on preview channel for Deck OS and up to data.

I am on yuzu 1475.

I installed yuzu and cemuhookdsu using emudeck.

Having the same issue, except on stable channel.

@kmicki
Copy link
Owner

kmicki commented Jun 23, 2023

Same Issue.

Select Gyro Behavior -> Directional Pad

Does not work

set up to Action Sets->Cleared from Parent

Does not work

Controller settings in Yuzu

I only have "mouse" and "Shake". I do not see cemuhook as an option

Testing cemuhook in yuzu gives a "Successfully received data from the server"

"Shake" eventually shifts back to "mouse" after shaking. I have only tried this from the desktop.

I am on preview channel for Deck OS and up to data.

I am on yuzu 1475.

I installed yuzu and cemuhookdsu using emudeck.

For me the workaround I gave works on the most recent preview while using it with Cemu. So either it's an issue with yuzu or your configuration of yuzu or you're not applying the workaround correctly. I know the instructions are not detailed enough, sorry. I am going to provide more detailed workaround instructions with screenshots at some point.

As for yuzu configuration you'd need to consult yuzu users/docs.

@alexandermakalov
Copy link

@JohnGhostly

I only have "mouse" and "Shake". I do not see cemuhook as an option
The same was for me.

Gyro is disabled by default in Desktop mode. Need to activate it.
Open steam settings(steam not system) -> Controller -> desktop layout -> edit -> Gyro behaviour -> As Mouse
After that cemuhook will be in available in the controller settings.
As I understand, the Gyro is disabled by default for Non-steam games so we need to enabled it in the controller setting for the game.
Open Controller Settings
Edit layout
Go to Gyro
Select Gyro Behavior -> As Joystick

Works for me.

@raccoon1267
Copy link

raccoon1267 commented Jun 24, 2023

@JohnGhostly

I only have "mouse" and "Shake". I do not see cemuhook as an option
The same was for me.

Gyro is disabled by default in Desktop mode. Need to activate it. Open steam settings(steam not system) -> Controller -> desktop layout -> edit -> Gyro behaviour -> As Mouse After that cemuhook will be in available in the controller settings. As I understand, the Gyro is disabled by default for Non-steam games so we need to enabled it in the controller setting for the game. Open Controller Settings Edit layout Go to Gyro Select Gyro Behavior -> As Joystick

Works for me.

Thank you for that info it work now. I have update Steam OS 3 times have not work before now it work for that info

@kmicki
Copy link
Owner

kmicki commented Jun 24, 2023

Just info: if you use 'as joystick' then it's not native gyro via sdgyrodsu, Steam maps it to joystick movements which will not work e.g. for shrine puzzles in botw and other things that require native gyro.

@alexandermakalov
Copy link

alexandermakalov commented Jun 24, 2023

Just info: if you use 'as joystick' then it's not native gyro via sdgyrodsu, Steam maps it to joystick movements which will not work e.g. for shrine puzzles in botw and other things that require native gyro.

There is no other options in the stem controller layout :( I also mapped the gyro trigger action to the right stem trigger button. Will check how it works

UPD:
I disabled the gyro from the game controller setting and gyro works so no need to remap the gyro to any buttons. Need to find a location where the gyro is really needed.

@badboybeyer
Copy link

badboybeyer commented Jun 26, 2023

I got it working. I think I may of messed up the controller configuration in yuzu.

  • I am on preview channel for Deck OS and up to data.
  • I am on yuzu 1475.
  • I installed yuzu and cemuhookdsu using emudeck.
  • I launched yuzu in game mode using the resolution settings from @ich777 post.
  • I enabled the gyro in the steam controller setttings and set it to d-pad, always on, with the top direction bound to "Action Sets->Cleared from Parent".
  • I turned on yuzus menus (view + R3) reference controller buttons
  • I opened the controller settings (emulation->configuration->controls).
  • I selected the profile dropdown, which was empty, then I selected "emudeck"
  • I touched the motion bind button until it said "Shake".
  • I shook my deck, and it detected. Now the motion bind button says "cemuhookdsu" or something similar, its cutoff in the UI.
  • I pressed the save button next to the profile dropdown.
  • I pressed the apply button at the bottom of the screen
  • Make sure emudeck is selected in the configuration for zelda when it is running. (emulation->configure current game->input profiles->player 1 profile->emudeck)
  • I Loaded my game and checked that moving the deck moves my view
  • I exited the game and undid the resolution settings (return to native resolution)
  • I then actually played the game

Update:

The next time I booted the game, the gyro was not working again. I had to select the emudeck profile again from the the controller settings (emulation->configuration->controls). Maybe I need to make a default layout and repeat this process?

@vgf89
Copy link

vgf89 commented Jul 3, 2023

Looks like my problem was that I just couldn't see the Motion 1 button in the Yuzu controller configuration because the settings window was too small. By going into desktop mode and scaling the window to be slightly taller than the screen (partially covered by the taskbar) I was able to see the button, press it, and shake my deck. I couldn't do this in Game Mode as there's no way to resize arbitrary windows (changing game resolution did not change the size of the settings window), it had to be done in desktop mode. Motion works fine now. No idea how or why that setting got reset, hopefully Yuzu can fix that UI (open issue about it here for the curious: https://github.com/yuzu-emu/yuzu/issues/8206)

@punkos91
Copy link

punkos91 commented Jul 9, 2023

I got it working. I think I may of messed up the controller configuration in yuzu.

  • I am on preview channel for Deck OS and up to data.
  • I am on yuzu 1475.
  • I installed yuzu and cemuhookdsu using emudeck.
  • I launched yuzu in game mode using the resolution settings from @ich777 post.
  • I enabled the gyro in the steam controller setttings and set it to d-pad, always on, with the top direction bound to "Action Sets->Cleared from Parent".
  • I turned on yuzus menus (view + R3) reference controller buttons
  • I opened the controller settings (emulation->configuration->controls).
  • I selected the profile dropdown, which was empty, then I selected "emudeck"
  • I touched the motion bind button until it said "Shake".
  • I shook my deck, and it detected. Now the motion bind button says "cemuhookdsu" or something similar, its cutoff in the UI.
  • I pressed the save button next to the profile dropdown.
  • I pressed the apply button at the bottom of the screen
  • Make sure emudeck is selected in the configuration for zelda when it is running. (emulation->configure current game->input profiles->player 1 profile->emudeck)
  • I Loaded my game and checked that moving the deck moves my view
  • I exited the game and undid the resolution settings (return to native resolution)
  • I then actually played the game

Update:

The next time I booted the game, the gyro was not working again. I had to select the emudeck profile again from the the controller settings (emulation->configuration->controls). Maybe I need to make a default layout and repeat this process?

This is the only thing that worked for me.
And after desactivate, in game the steam controller setting about the gyro.
Will try if it stays next time i start the game

@Roszadok
Copy link

Grimbakor from the Yuzu Discord has made a video on how to enable it, the main issue was that you have to click the button in the middle in the Controller settings in Yuzu and not on the other option which most Youtube videos recommend. He allowed me to upload his videos here.

This is if you are doing it from the Desktop mode (you have to make the screen actually bigger because otherwise you won't be able to click the button):

gyro.mp4
And this is what you have to do when you do it from within Gaming Mode (you have to set a custom resolution in order to be able to click the button):

output.mp4
BTW, I don't have to do the workaround that you've posted above @kmicki, the gyro is in my case always active even when using a Controller layout without Gyro.

I did every step within this thread and I can only setup from 1st video but doing it like in 2nd video it do not work at all

@schspa
Copy link

schspa commented Oct 11, 2023

Yes there is a problem with new Beta. Steam disables gyro input from the controller when Gyro in controller settings is set to "None".

As a workaround (I assume Cemu/Yuzu is run in gaming mode from Steam):

  1. Press STEAM button
  2. Open Controller Settings
  3. Edit layout
  4. Go to Gyro
  5. Select Gyro Behavior -> Directional Pad
  6. Choose anything for one of the positions of directional pad. Anything that won't intefere with using Cemu/Yuzu. I chose Action Sets->Cleared from Parent
  7. Now it should work.

How to set Gyro Behavior -> Directional Pad, I only see mouse and joystick 😂.

@kmicki kmicki changed the title No motion detected on latest steam client beta No motion detected on latest steam client Oct 15, 2023
@kmicki kmicki pinned this issue Oct 15, 2023
@kmicki
Copy link
Owner

kmicki commented Oct 15, 2023

@kmicki You might wanna change the title (beta) and pin this issue, so that people won't report duplicates.

Thanks, done.

@TheBoxyBear
Copy link

Yes there is a problem with new Beta. Steam disables gyro input from the controller when Gyro in controller settings is set to "None".
As a workaround (I assume Cemu/Yuzu is run in gaming mode from Steam):

  1. Press STEAM button
  2. Open Controller Settings
  3. Edit layout
  4. Go to Gyro
  5. Select Gyro Behavior -> Directional Pad
  6. Choose anything for one of the positions of directional pad. Anything that won't intefere with using Cemu/Yuzu. I chose Action Sets->Cleared from Parent
  7. Now it should work.

How to set Gyro Behavior -> Directional Pad, I only see mouse and joystick 😂.

It now seens to be hidden from the general settings. You have to open the gyro specific settings and there Directional Pad appears in the dropdown although even this isn't working for me even though the server test passes in Yuzu.

@kmicki
Copy link
Owner

kmicki commented Oct 28, 2023

although even this isn't working for me even though the server test passes in Yuzu.

I have just tested it in a most recent preview with PadTest and Cemu and workaround still works. Maybe there's another issue. Can you try PadTest? It has to be run using Proton GE or from another Windows PC.

@TheBoxyBear
Copy link

TheBoxyBear commented Oct 28, 2023

although even this isn't working for me even though the server test passes in Yuzu.

I have just tested it in a most recent preview with PadTest and Cemu and workaround still works. Maybe there's another issue. Can you try PadTest? It has to be run using Proton GE or from another Windows PC.

I'll try when I get the chance, though I also noticed the Motion 1 option below the controller layout only appears for Players 2+. The gyro box also moves for those players but not for player 1.

@vgf89
Copy link

vgf89 commented Oct 29, 2023

I think the off-screen Motion 1 button is the root cause of the problem when just messing with Steam Input doesn't fix it. I was able to make it appear by messing with the window size in desktop mode so I could click it and get motion working and it hasn't broken since. If you've got a dock that makes things a little easier. But seriously, the button should show up on controller 1 in gaming mode or on small screens, and it doesn't because something is different on controller 1's layout specifically.

I'm going to have to get the Yuzu build chain set up and fix it myself for a PR aren't I...

@TheBoxyBear
Copy link

I think the off-screen Motion 1 button is the root cause of the problem when just messing with Steam Input doesn't fix it. I was able to make it appear by messing with the window size in desktop mode so I could click it and get motion working and it hasn't broken since. If you've got a dock that makes things a little easier. But seriously, the button should show up on controller 1 in gaming mode or on small screens, and it doesn't because something is different on controller 1's layout specifically.

I'm going to have to get the Yuzu build chain set up and fix it myself for a PR aren't I...

I tried with a dock in 1080p and it still wasn't there even though it should have the space for at least part of it.

@TheBoxyBear
Copy link

TheBoxyBear commented Nov 2, 2023

I think the off-screen Motion 1 button is the root cause of the problem when just messing with Steam Input doesn't fix it. I was able to make it appear by messing with the window size in desktop mode so I could click it and get motion working and it hasn't broken since. If you've got a dock that makes things a little easier. But seriously, the button should show up on controller 1 in gaming mode or on small screens, and it doesn't because something is different on controller 1's layout specifically.

I'm going to have to get the Yuzu build chain set up and fix it myself for a PR aren't I...

It was a layout bug after all although even with an external monitor, it wouldn't show. What ended up working was with the deck's screen, only stretch the window vertically and dragging it down. With an awkward size and position, it's possible to access the Motion button, although Steam has to not be running in order to be assigned by shaking. The configuration now remains in gaming mode but I now have the common issue of gyro only working with the options panel open.

Edit: Finally got it working after setting Gyro behavior to directional pad which got reset for some reason.

kmicki added a commit that referenced this issue Nov 10, 2023
- detect that gyro data received from Steam Deck controller is 0
- when lack of gyro data detected, send a command via hidraw to enable it again

Closes #64
Fixes #45 - workaround no longer needed.
@kmicki kmicki closed this as completed in 70a2c04 Nov 10, 2023
@kmicki kmicki unpinned this issue Nov 10, 2023
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 a pull request may close this issue.