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

Mousewheel or Middle mouse btn doesn't work in some games #1873

Closed
3 tasks done
cardil opened this issue Nov 30, 2023 · 10 comments
Closed
3 tasks done

Mousewheel or Middle mouse btn doesn't work in some games #1873

cardil opened this issue Nov 30, 2023 · 10 comments
Labels

Comments

@cardil
Copy link

cardil commented Nov 30, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Is your issue described in the documentation?

  • I have read the documentation

Is your issue present in the nightly release?

  • This issue is present in the nightly release

Describe the Bug

In some games, the mouse wheel doesn't work (in my case: Witcher 3, Black Mesa, Fallout 3). In some of those, the middle mouse button also doesn't work (Witcher 3). The Left and Right buttons work as expected.

Also, in other games, the mouse wheel works as expected. I've tested: Age of Wonders 3, Cities Skylines, Cyberpunk 2077 (works although only when scrolling v. fast), Master of Orion, Two Point Hospital, War For The Overworld.

Evidence:

Expected Behavior

The mouse scroll and the middle mouse button should work in every game.

Additional Context

Uninstalling the Sunshine, and enabling streaming via GeForce Experience, resolves the described issues in all affected games.

The issue doesn't affect the desktop or web browsers when accessed via Sunshine.

Host Operating System

Windows

Operating System Version

Windows 10 Pro (22H2, build 19045.3693)

Architecture

64 bit

Sunshine commit or version

0.21.0.336062d467d5f48ba56d05a523c212f791421108

Package

Windows - installer

GPU Type

Nvidia

GPU Model

GeForce GTX 1060 6GB

GPU Driver/Mesa Version

546.17

Capture Method (Linux Only)

No response

Config

min_log_level = 2
back_button_timeout = 2000
fps = [10,30,60]
nvenc_preset = 2
resolutions = [
    352x240,
    480x360,
    858x480,
    1280x720,
    1920x1080
]

Apps

{
    "env": {
        "PATH": "$(PATH);$(ProgramFiles(x86))\\Steam"
    },
    "apps": [
        {
            "name": "Desktop",
            "image-path": "desktop.png"
        },
        {
            "name": "Steam",
            "detached": [
                "steam steam:\/\/open\/bigpicture"
            ],
            "image-path": "steam.png",
            "exclude-global-prep-cmd": "false",
            "elevated": "false",
            "auto-detach": "true"
        },
        {
            "name": "Playnite",
            "output": "",
            "cmd": "D:\/programy\/Playnite\/Playnite.FullscreenApp.exe --startfullscreen --hidesplashscreen",
            "exclude-global-prep-cmd": "false",
            "elevated": "false",
            "auto-detach": "true",
            "image-path": "playnite.png"
        }
    ]
}

Relevant log output

Nothing relevant found in the log output.

Attaching full for for completness: https://gist.github.com/cardil/6ab7d5466e57d1982803108441877853

@ReenigneArcher ReenigneArcher added the input:mouse Mouse issue label Nov 30, 2023
@Bobbar
Copy link

Bobbar commented Dec 1, 2023

Do you have a mouse physically plugged into the host? I had the same problems with Witcher and solved it by connecting a mouse to the host.

@cardil
Copy link
Author

cardil commented Dec 2, 2023

@Bobbar Do you have a mouse physically plugged into the host? I had the same problems with Witcher and solved it by connecting a mouse to the host.

No mouse at the host. I'll definitely try this walk-around...

@cardil
Copy link
Author

cardil commented Dec 2, 2023

I did some further debugging, and I saw some strange behavior. When the mouse scrolling, moonlight/sunshine sends multiple scroll packets (even for minimal mouse scroll) - 5 to be exact:

[2023:12:02:22:19:55]: Debug: --begin mouse scroll packet--
scrollAmt1 [-60]
--end mouse scroll packet--
[2023:12:02:22:19:55]: Debug: --begin mouse scroll packet--
scrollAmt1 [-15]
--end mouse scroll packet--
[2023:12:02:22:19:55]: Debug: --begin mouse scroll packet--
scrollAmt1 [-15]
--end mouse scroll packet--
[2023:12:02:22:19:55]: Debug: --begin mouse scroll packet--
scrollAmt1 [-15]
--end mouse scroll packet--
[2023:12:02:22:19:55]: Debug: --begin mouse scroll packet--
scrollAmt1 [-15]
--end mouse scroll packet--

In contrast, when the LMM is pressed, only one packet is sent (here is a long click and release example):

[2023:12:02:22:19:49]: Debug: --begin mouse button packet--
action [00000008]
button [01]
--end mouse button packet--
[2023:12:02:22:19:52]: Debug: --begin mouse button packet--
action [00000009]
button [01]
--end mouse button packet--

This could easily explain bad behavior in Black Mesa game, maybe others too.

@cgutman
Copy link
Collaborator

cgutman commented Dec 5, 2023

@cardil What's your client device (and client device's mouse)?

Moonlight will send high resolution scroll events to Sunshine if they are provided by the client OS and the mouse hardware, so you can see multiple scroll events for one "click" of the scroll wheel. A single click of the scroll wheel is defined as 120 units (WHEEL_DELTA), so the high resolution scroll events you note there all add up to a single click of the wheel, as expected.

Some applications (particularly old ones) may not correctly handle high resolution scroll events and incorrectly assume that they should scroll for every event instead of accumulating 120 units before scrolling. I wouldn't expect the behavior of these apps with Sunshine to be any different from physically connecting a mouse with a high resolution scroll wheel directly to the host though.

@cardil
Copy link
Author

cardil commented Dec 7, 2023

@cgutman Thanks for the information.

I'm using Logitech M705, and yes, I can see multiple events for every click in my local mouse events:

# libinput debug-events --device /dev/input/event10 | grep -v MOTION
-event10  DEVICE_ADDED            Logitech M705                     seat0 default group1  cap:p left scroll-nat scroll-button

 event10  POINTER_SCROLL_WHEEL    +6.930s	vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event10  POINTER_SCROLL_WHEEL    +6.938s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event10  POINTER_SCROLL_WHEEL    +6.954s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event10  POINTER_SCROLL_WHEEL    +6.962s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event10  POINTER_SCROLL_WHEEL    +6.970s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)

The same event values could be seen in this log (first one valued 60, followed up by 4 times 15 summing to 120 - the click value).

I checked using this codepen on the same mouse on Firefox gives me singular events for mouse scroll (in Chrome I see many).

Using a different mouse (Lenovo) gives only singular events, all valued 120. With that other mice, the HL Black Mesa issue is no more present. Other issues, still exist.

Strangely, using the codepen on a remote host via moonlight and sunshine, gives multiple events for both browsers. However, it looks the values are scaled up (I see 72 instead of 60, and 18 instead of 15 in Firefox, and 62.5 and 15.625 in Chrome).

I'm thinking that it might be feasible to build a debouncer in Sunshine to merge the remote mouse scroll events into singular values, but that seems to resolve just a single issue (the Black Mesa one). IDK, is that a good idea...

@Bobbar
Copy link

Bobbar commented Dec 7, 2023

If I may chime in...

I've personally not been a fan of the recent high-res scrolling changes (or high-res scrolling in general).

It makes some games and apps feel sluggish to me. I just prefer a more "notchy" feel.

Would it be much trouble to just add a toggle to bypass the high-res scrolling entirely and return the previous behavior?

@ottelo9
Copy link

ottelo9 commented Feb 25, 2024

I have big problems with my mouse wheel in the game Snowrunner with Moonlight QT (5.0.1 Win10) + Sunshine (v0.21.0). I have no connected controllers (host + client) and disabled everything controller related inside moonlight and sunshine settings.

I start the Stream and start Snowrunner. I can play for few minutes and zoom in/out the ingame map without problems. After few minutes the zoom (or the mouse wheel) is not working properly anymore. I can only zoom completly in or out, no Intermediate steps. If I slowly scroll my mouse wheel nothings happens.

Then I tried the nightly Sunshine build (last week Feb 2024) and disabled the high res scrolling. But with no success and the streams starts hanging/lagging, too. So I went back to Nvidia Gamestream, because with it I have no such problems.

@cardil
Copy link
Author

cardil commented Mar 2, 2024

The #1960 resolved my issue with the Black Mesa game (disabling the high-resolution scroll events).

It didn't fix the issues with Fallout 3 or Wither 3.

Seculation: Maybe the issues are related to how the virtual mouse drivers act?!

@LizardByte-bot
Copy link
Member

It seems this issue hasn't had any activity in the past 90 days. If it's still something you'd like addressed, please let us know by leaving a comment. Otherwise, to help keep our backlog tidy, we'll be closing this issue in 10 days. Thanks!

@LizardByte-bot
Copy link
Member

This issue was closed because it has been stalled for 10 days with no activity.

@LizardByte-bot LizardByte-bot closed this as not planned Won't fix, can't repro, duplicate, stale Jun 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants