Skip to content

Conversation

@ayufan
Copy link
Owner

@ayufan ayufan commented Aug 1, 2025

Tries to resolve: #215

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025

@General4878 can you test this?

@General4878
Copy link

I will when I get home in a couple hours. Excited to see if it works!!

@ayufan ayufan force-pushed the support-lizard-mode branch 2 times, most recently from bc32206 to 6e9f83e Compare August 1, 2025 13:19
@ayufan ayufan force-pushed the support-lizard-mode branch from 6e9f83e to 253c75a Compare August 1, 2025 13:20
@General4878
Copy link

@ayufan built it and the problem still happens unfortunately 🙃

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025 via email

@General4878
Copy link

@ayufan

go into the scripts folder and run batch file
go into build-Release folder and run SteamController.exe
use Xbox360 mode in setup controller
SDT starts with lizard mouse/ buttons by default so no problem happens.
right click steam controller tray icon and open settings
set Lizard Mouse to true
cursor starts pausing and resuming again every 1/4 second
enable lizard buttons as well, cursor jumping stops.

Tested with steam running/not running in the background, same result.

The symptoms are the same as with the old build

do you need anything else?

@General4878
Copy link

@ayufan i see you are disabling watchdog only when lizard mouse is disabled, maybe it should always be disabled no matter the configuration of lizard mouse/buttons?

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025 via email

@General4878
Copy link

General4878 commented Aug 1, 2025

@ayufan Just did. No matter if watchdog is disabled in every situation, the problem still persists.

interestingly I found that if LizardButtons is enabled but LizardMouse is disabled in the SDT settings, Lizard Mouse stays enabled and it doesn’t stutter.

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025

@General4878

Would you mind filling this table, or whatever columns are suitable? This would help me better understand behavior, and see what I can do:

Lizard Buttons Lizard Mouse Steam Deck Mode Expected Mouse Behavior Expected Keys Behavior Observed Mouse Behavior Observed Keys Behavior
Yes Yes Steam Input
Yes No
No Yes
No No
Yes Yes X360
Yes No
No Yes
No No

@General4878
Copy link

@ayufan I will have to fill in the table tomorrow as I need to log off.

But another piece of information I found which is very important:

  if (savedLizardButtons == LizardButtons)
  {
      // We need to explicitly disable lizard every some time
      // but don't fight enabling it, as someone else might be taking control (Steam?)
      //if (lizardButtonUpdated.AddMilliseconds(LizardModeUpdateInterval) > DateTime.Now)
          return;
  }

I commented out the time check for the UpdateLizardButtons method, meaning the report is only sent when the LizardButtons setting is changed instead of every 250ms. And the mouse stops stuttering... It only seems to stutter when i disable LizardButtons.

So I think the mouse stutter happens every time we send this report:

SendFeatureByte(ID_CLEAR_DIGITAL_MAPPINGS);

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025 via email

@General4878
Copy link

@ayufan I have tried it already, but problem is that we don’t just need to disable LizardButtons once, we need to do it every some time because steam enables it again.

But every time we send ID_CLEAR_DIGITAL_MAPPINGS, it causes the mouse movement to stop, so we cannot do it constantly.

Maybe there are other feature reports we can send to disable LizardButtons without sending ID_CLEAR_DIGITAL_MAPPINGS?

@ayufan
Copy link
Owner Author

ayufan commented Aug 1, 2025 via email

@General4878
Copy link

@ayufan

Lizard Buttons Lizard Mouse Steam Deck Mode Expected Mouse Behavior Expected Keys Behavior Observed Mouse Behavior Observed Keys Behavior
Yes Yes Steam Input Glide normally Register keys As expected As expected
Yes No SDT mouse emulation Register keys Mouse glides As expected
No Yes Mouse glides Buttons emulated by SDT Mouse stutters As expected
No No Mouse emulated by SDT Buttons emulated by SDT As expected As expected
Yes Yes X360 Mouse glides Buttons registered As expected Double presses as Emulated and Lizard both called
Yes No SDT mouse emulation Buttons registered As expected Double presses as Emulated and Lizard both called
No Yes Mouse glide Buttons registered As expected Mouse stutters
No No SDT mouse emulation Buttons registered As expected as expected

As per my previous comment, everything works as it should except when disabling LizardButtons with ID_CLEAR_DIGITAL_MAPPINGS which causes mouse stutter when LizardMouse is enabled.

And when LizardButtons is enabled, but LizardMouse is disabled in settings, the mouse glide doesn’t seem to stop.

All the problems seems to happen in the method made to change LizardButtons

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.

Lizard Mode Bug Analysis & Proposed Solutions

3 participants