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

Fix Home/Guide button emulation and disable it by default #1311

Merged
merged 2 commits into from May 26, 2023

Conversation

cgutman
Copy link
Contributor

@cgutman cgutman commented May 25, 2023

Description

The Guide button emulation code instantaneously pressed and released the emulated button, which worked very inconsistently due to the input polling behavior of most apps. Delaying for a short time while the button is down (like Moonlight's button emulation code does) allows the emulated button press to work consistently.

I was surprised to see that Guide emulation is enabled by default. This causes issues with apps/games that use a long press of the Back button for in-game functionality. Since most common controllers have Guide/Home buttons these days and users expect their controller buttons to behave normally out of the box, I've changed Guide button emulation be off by default. I don't expect this to be a major impact, especially because the feature itself was mostly broken prior to this PR.

I rewrote the name and description of the Web UI option for this too, because "Back Button Timeout" wasn't really clearly stating what the feature was doing. The fact that it's the longest you a can press the back button is really a side-effect rather than a description of the user-facing feature that users will be looking for when they search the options.

Screenshot

image

Issues Fixed or Closed

Fixes #1048

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this was enabled by default due to the Nvidia Shield consuming the Guide button on Xbox pads. I personally never understood this decision by Nvidia to not make this configurable. Anyway...

Also need to update default value in docs.

Users don't expect long presses of the back button to not work out of the box.
@cgutman cgutman merged commit 8da919f into LizardByte:nightly May 26, 2023
40 checks passed
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.

None yet

2 participants