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

Mouse scroll doesn't work in PPSSPP menus (regression) #12156

Closed
JimsAlliance opened this issue Jul 6, 2019 · 19 comments · Fixed by #12209
Closed

Mouse scroll doesn't work in PPSSPP menus (regression) #12156

JimsAlliance opened this issue Jul 6, 2019 · 19 comments · Fixed by #12209
Labels
Input/Controller Input and controller issues
Milestone

Comments

@JimsAlliance
Copy link

Mouse scrolling in the PPSSPP menus no longer works as of the merger of pull request #12110 (ppsspp-v1.8.0-298).

There is no issue in ppsspp-v1.8.0-296.
I used the default settings of the builds in question.
OS: Windows

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 6, 2019

Which menus? It works fine here in settings and all game's lists. Edit: Also what "Windows"? They aren't really equal, I'm on win 10 x64 1803.

@unknownbrackets
Copy link
Collaborator

It's still working for me too, but then I don't have anything mapped to scroll wheel / mouse.

I will say, I've seen focus issues before where it doesn't work, and only starts working if I focus something else and focus back. I think it's a bug, but it only happens rarely (for me, at least) and I haven't figured out the reproduction case.

-[Unknown]

@unknownbrackets unknownbrackets added the Input/Controller Input and controller issues label Jul 7, 2019
@LPatamon
Copy link

LPatamon commented Jul 21, 2019

I can confirm scrolling with mouse wheel doesn't works for me. I'm using v1.8.0-433-g37a97e741 x86 on Windows 7 Ultimate 32 bits. I don't have mouse mapped to anything, I even have the use mouse control (I take on games) disabled.

I would need to check on which versions it still worked though.

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 22, 2019

So this might be limited to ancient windows version, either way there are only 2 things which changed that could be causing it:

  • moving mouse wheel event from to WndProc to DisplayProc, it had a comment "// For some reason, need to catch this here rather than in DisplayProc.", but it didn't specified why and was working fine in DisplayProc where it fits better,
  • releasing wheel with a delay - this has to stay as games can't see input pressed if it's de-pressed instantly, but if it causes mouse wheel events to fail on outdated OS, it might be reverted for UI and just left wheel not working in-game for people with old pc's.

I think the first one is more probable so I'll leave it here:
https://github.com/hrydgard/ppsspp/compare/master...LunaMoo:oldWinWorkaroundTest?expand=1
Should be tested first as it still could be the other thing.

Edit: Also if this test helps, I wonder if mouse movement can be mapped using mouse control since all other mouse events are in DisplayProc.

@vnctdj
Copy link
Contributor

vnctdj commented Jul 28, 2019

For what it's worth, I can't reproduce the issue on Linux.

@sum2012
Copy link
Collaborator

sum2012 commented Jul 30, 2019

@LunaMoo your change don't work for me for windows 7 64 bit

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 30, 2019

Try this one then https://github.com/hrydgard/ppsspp/compare/master...LunaMoo:oldWinWorkaroundTest2?expand=1

It instantly releases wheel in the UI only, also removes an unnecessary bool which really was just a leftover from previously tested code;p. Mouse Wheel was never working in-game before adding a release with a delay, so no changes there.

@LPatamon
Copy link

LPatamon commented Jul 30, 2019

I think I'm starting to see why the mouse wheel isn't working. I noticed that the UI uses the same control mapping you have configured to play, I mean the UI behaves like if you're using a real PSP, you move with the arrows to select the game you want to play, and you use the key you have assigned as the X button of the PSP to start the game.

I think that is the reason why the mouse wheel isn't working. the emulator is seeing everything as if it was an in game UI or PSP UI and thus blocks the mouse wheel.

@sum2012
Copy link
Collaborator

sum2012 commented Jul 31, 2019

@LunaMoo your second change don't work

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 31, 2019

@LPatamon nothing blocks the mouse wheel, it's mapped input is ignored in the UI. Also it works perfectly fine on modern windows versions.

As noted earlier there were only 2 things that changed so with them reverted not helping as sum2012 tested, I have absolutely no clue what would cause this, maybe some random compiler issue affecting only old windows.

@sum2012
Copy link
Collaborator

sum2012 commented Jul 31, 2019

@LunaMoo before #12110 WM_MOUSEWHEEL 's code is active when mouse scroll
after merge, WM_MOUSEWHEEL 's code is NOT active when mouse scroll.

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 31, 2019

@sum2012 except you tested 2 things that reverted those changes for UI and as you said neither helped which doesn't really have any sense as long as you tested correctly;p.

Include compiled test builds in case you just ran wrong build accidently or something:
ppsspp wheel on outdated win tests.zip
Test 1 reverts location from DisplayProc to WndProc
Test 2 reverts delay for the release in UI
and another build which combines the two.
As long as my commit fixing wheel for mapped controls was real cause of this win 7 weirdness, one of those has to help, combined they completely revert changes for mouse wheel in PPSSPP UI.

Edit here's 32 bit binaries for those tests:
ppsspp wheel on outdated win tests 32.zip

@LPatamon
Copy link

@LPatamon nothing blocks the mouse wheel, it's mapped input is ignored in the UI. Also it works perfectly fine on modern windows versions.

As noted earlier there were only 2 things that changed so with them reverted not helping as sum2012 tested, I have absolutely no clue what would cause this, maybe some random compiler issue affecting only old windows.

Well I downloaded your ppsspp wheel on outdated win tests 32 bit file and tested the .exe combining the two test and the mouse wheel works on it without problem.

I think that since Windows 8 and 10 are way different to Windows 7 on many ways, that also may have be the case for how Win 8 and 10 work with the mouse wheel. I really don't know. All I know is that it was a really odd issue

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 31, 2019

So neither test 1 or 2 helped separately? Only when they are combined? Weird.

@LPatamon
Copy link

LPatamon commented Jul 31, 2019

So neither test 1 or 2 helped separately? Only when they are combined? Weird.

No, no. I haven't tested them separately yet, let me check those. I simply grabbed the exe with the two tests combined to try first n.nU

Edit: tested test 1 and test 2 exe files. only test 1 one worked. On the Test 2 one the wheel didn't work at all.

Test 1 version which is the one where the wheel version worked is v1.8.0-434-g4564c2c3

That's the version number that appears when you open PPSSPPWindows test 1.exe

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 31, 2019

Ah ok then, that's pretty much best case as if it required both or test 2, win 7 users would be left without being able to use mouse wheel in-game. I'll make some comment changes and open a PR with a fix for this in a bit.

@LPatamon
Copy link

LPatamon commented Jul 31, 2019

Ah ok then, that's pretty much best case as if it required both or test 2, win 7 users would be left without being able to use mouse wheel in-game. I'll make some comment changes and open a PR with a fix for this in a bit.

Very well. Also Thank you very much for all you're doing to get this issue fixed. It is really appreciated :)

Also on PPSSPPWindows test combine 1 and 2.exe the wheel works. I guess it is because it has the test 1 workaround in it and didn't got affected to be combined with test 2.

So to put it short:

PPSSPPWindows test 1.exe = Wheel works
PPSSPPWindows test 2.exe = Wheel doesn't work
PPSSPPWindows test combine 1 and 2.exe = Wheel works

This was tested on Windows 7 Ultimate 32bit, I'll leave the 64bit tests to anyone with a 64bit Windows 7 but I doubt is different to 32bit on the mouse management anyways

@LunaMoo
Copy link
Collaborator

LunaMoo commented Jul 31, 2019

BTW if you use mouse control can you map mouse movement(by using "M" instead of "+" in control mapping screen) and does it work in-game? Doesn't matter what ppsspp build for that, just curious because all other mouse events are in DisplayProc ~ the same function where mouse wheel doesn't work on Win 7.

@unknownbrackets unknownbrackets added this to the v1.9.0 milestone Jul 31, 2019
@LPatamon
Copy link

LPatamon commented Jul 31, 2019

BTW if you use mouse control can you map mouse movement(by using "M" instead of "+" in control mapping screen) and does it work in-game? Doesn't matter what ppsspp build for that, just curious because all other mouse events are in DisplayProc ~ the same function where mouse wheel doesn't work on Win 7.

Just checked that on PPSSPPWindows test 1.exe and you can map the mouse wheel if you enable mouse control. This wasn't working on other builds like v1.8.0-446-g61c9d2258

I did think on the mapping thing and enabled mouse control on previous builds and the only thing I wasn't able to map, was the mouse wheel. You could map everything else from the mouse like moving it up, down, left and right to map the respective in-game control, map the buttons, but the wheel wasn't recognized so you couldn't set it to do anything in game.

But on PPSSPPWindows test 1.exe the wheel is now recognized and gets mapped correctly. I mapped the wheel to up and down and then tested it on the main menu of Digimon World Re: Digitize and worked flawlessly on the test 1 build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Input/Controller Input and controller issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants