Message-ID: <8D53104ECD0CD211AF4000A0C9D60AE357935A@probe-2.acclaim-euro.net> From: Shawn Hargreaves To: djgpp AT delorie DOT com Subject: Re: Mouse in SVGA Mode Date: Mon, 22 Feb 1999 12:22:31 -0000 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1460.8) Content-Type: text/plain Reply-To: djgpp AT delorie DOT com > > The solution is a little bit hairy. > > Addendum: I forgot to mention this, but it is important. You will find > that most mouse drivers are too stupid to report smooth movement in > SVGA modes: instead they will make the cursor move in jerks of 8 pixels > at a time. This is not good, and must be worked around. > > The simple fix is to use int 0x33 functions 7 and 8 to scale up the > mouse range by a factor of 8, and function 15 to make it move eight > times faster than usual, after which you can divide the resulting > coordinates by 8 to get smooth pixel movement in sensible units. > This works great except for with Logitech drivers, which don't bother > to implement the speed adjustment routine, so your cursor will move > incredibly slowly on systems with a Logitech mouse. > > What seems to be a more reliable solution is to ditch all the int 0x33 > position tracking code as well as the cursor display, writing your own > version that uses the mickey motion deltas (these are available in the > %si and %di parameters to the movement callback). > > Again, see the Allegro mouse.c source. It uses my own position > tracking when mickeymode is set, and the int 0x33 stuff otherwise. > > > Shawn Hargreaves. > >