schellingb / dosbox-pure

DOSBox Pure is a new fork of DOSBox built for RetroArch/Libretro aiming for simplicity and ease of use.
GNU General Public License v2.0
759 stars 62 forks source link

The on-screen keyboard cursor movement is slow at high resolutions #445

Closed PoloniumRain closed 7 months ago

PoloniumRain commented 9 months ago

When using a controller the movement of the cursor is dependant on the resolution, so at 320x240 the cursor will move at this speed:

https://github.com/schellingb/dosbox-pure/assets/50634894/2dfa68a8-9777-4e7d-bf39-3bcb06f9128e

But at 1280x1024 the cursor will move extremely slow:

https://github.com/schellingb/dosbox-pure/assets/50634894/c878b05d-d5aa-432a-8a2b-40d1b52b6b71

Basically, the higher the res, the slower the movement. Some DOS games support even higher resolutions than 1280x1024 where the cursor becomes unusable. It's not due to any kind of performance issues either because i can run games at their maximum 70fps at these higher resolutions.

Btw, to help with the cursors visibility, would it be possible to stop it from becoming higher res/very thin at high resolutions? You can see how much thinner it is at 1280x1024, but the keyboard text remains low res and chunky. It would be nice if the cursor also stayed chunky.

PoloniumRain commented 9 months ago

@schellingb Just see your post in #453:

L2/R2 always was used to increase/decrease the cursor speed in the On-Screen Keyboard

I totally forgot about this! It certainly helps but the cursor is still a little too slow at higher resolutions and many people wont be aware of this feature. Maybe DBP could detect the resolution and have something like 4 default cursor speeds, where each one would be used depending on the resolution.

So for example:

PoloniumRain commented 8 months ago

@schellingb I've just built DBP in VS 2022 (first time i've used VS in 12+ years and almost forgot how) and the cursor now works great at all resolutions.

Tested with several games and around 20 different resolutions, from as low as 320x200 and up to 1600x1200. No issues.

And unrelated, but i once again encountered this odd issue with the analog deadzone setting not working. But this time i changed the deadzone setting in Core Options and it was then applied. It's like DBP is not applying the deadzone setting on the first use.

Anyway feel free to close this!