Menu

#74 mouse improvement

closed
Qbix
None
5
2012-09-07
2005-03-03
`Moe`
No

While testing Schleichfahrt, I've encountered a weird behaviour:
Schleichfahrt reads mous sensitivity, multiplies it by 8, and sets
that value. This happens 4 times in a row, so sensitivity is finally
at several thousands and the mouse has only 4 locations: the
corners.

CuteMouse suggests that all sensitivity values beyond 100
should be ignored, so that has been added.

As a result of above changes, Schleichfahrt's sensitivity stays at
49 (i.e., 1:1). To alleviate that problem, I've added a feeble
double-speed threshold functionality. It has been gathered
empirically and works nicely for me. Just take it with some
amount of distrust.

Schleichfahrt's readme says to use the latest original MS mouse
driver when either mouse stays in the corner or mouse is terribly
slow (both problems seen), so I guess Ms Mouse does
something different with these weird sensitivity values.
Unfortunately I was unable to find api docs for current MS mouse
drivers apart from intlist, which doesn't have useful information on
that topic.

Discussion

  • `Moe`

    `Moe` - 2005-03-03

    mouse enhancements

     
  • Qbix

    Qbix - 2005-03-04

    Logged In: YES
    user_id=535630

    uhm double speed treshold. there is an offical mouse call
    to set it.
    is that being honored as well then ?

    I know the cvs of cutemouse has an interresting formula in
    it (it's quite readable in asm)

    Maybe if the value >100 then value=100 ?
    games that needed the current code were simcity 2000 and
    master of orion 2 (very much)

     
  • `Moe`

    `Moe` - 2005-03-04

    Logged In: YES
    user_id=1045474

    Yes, the patch uses the doublespeed_threshold value that was already
    present in the mouse data structure, and I've updated the interrupt to
    set/return that value. My formula is not interesting or anything, it's just
    simple and still works qute nicely. The first thing I came up with, and
    since it had the desired effect, I left it at that.

    Cutemouse simply ignores any call to set_sensitivity when the value is

    100, it does not set it to 100. But maybe you're right and 100 it
    should be.

     
  • `Moe`

    `Moe` - 2005-03-06

    Logged In: YES
    user_id=1045474

    I've tested your suggestions. During these test I found the doublespeed threshold to be quite poor. Depending on cycles/app it doesn't feel nice. OTOH, capping the sensitivity at 100 (instead of completely ignoring sensitivity >100) makes Schleichfahrt feel like it felt on real DOS. Seems like that's what the MS driver does. Thus, I suggest adding

    if (px > 100) px = 100;
    if (py > 100) py = 100;

    to SetSensitivity and leaving the rest as-is.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.