PDA

View Full Version : Mouse / smoothness tweak



legacy-Lily
10-21-2002, 07:15 PM
Already posted that in the general discussion forum, but threads drop so fast there that I'd better post here :

For the players out there who want their mouse and gameplay as smooth as possible :

1) Disable VSync (you might have to do that in your drivers, depends on your card) in the UT2003.ini :

[D3DDrv.D3DRenderDevice]
UseVSync=False


2) Set the DirectDraw refresh rate as high as your monitor will handle at the resolution you play (depends on your monitor) :
Run dxdiag (start menu -> Run -> dxdiag ), go to the 'more help' tab, click 'override directdraw's refresh rate, and enter the refresh rate you want. Now, unless you set it too high, the game should run at that rate (you may not have to do that in the first place, might depend on your flavour of windows).


3) Disable Triple buffering in the UT2003.ini :

[D3DDrv.D3DRenderDevice]
UseTripleBuffering=False


4) Disable ReduceMouseLag in the UT2003.ini :

[D3DDrv.D3DRenderDevice]
ReduceMouseLag=False


5) Increase the sampling rate of your mouse if it's plugged on the PS/2 port. This may be tricky.

Launch the DeviceManager in Windows, open properties on your mouse icon, and go to the advanced settings tab. If there's no such tab (I believe you don't get that if you don't use a MicroSoft mouse), get the little tool called 'ps2plus' :
Try here : http://www.pctip.ch/library/downloads/dl.asp?id=1054

If you got an advanced settings tab, increase the sample rate as high as possible (200 max here, your mileage may vary). If not, use the tool linked above.


6) Modify the Sampling Rate in the user.ini :

You should enter the value given by 1 / sampling rate.

The default is for USB mice (120hz, 1/120 = 0.0083333):

[Engine.PlayerInput]
MouseSamplingTime=+0.008333

If you did step 5) successfully, and your sampling rate is 200Hz, you should enter 0.005 (1/200) :

[Engine.PlayerInput]
MouseSamplingTime=+0.005

If you couldn't find out what's your sampling rate, I can't help here, it depends what mouse/driver and what version of windows you are using. If your mouse was plugged into the PS/2 port and you can use the USB port as well, you may want to do that and leave the default value (0.008333).

Worth to mention that you can have it smoother on the PS/2 port (200hz) than the USB one (120Hz, can't be changed as far as I know).


7) Disable 'Mouse Smoothing' if you did all the above, although it may be more a matter of taste. In the user.ini :

[Engine.PlayerInput]
MouseSmoothingMode=False


8) If you got an NVidia card, you may want to disable the 'render X frames ahead' feature that would cause mouse lag.
Use Riva Tuner : http://www.guru3d.com/rivatuner/


There, if you did all the above, your crosshair should be as smooth as your framerate will allow.

Lily

PS : Feel free to copy/paste the above and post it in other places if it can help.

legacy-Metalslug
10-21-2002, 08:21 PM
you really need to leave triple buffering on,you'll find it helps in the overall smoothness of the rendering wich in turn will result in a smoother mouse action.every thing else is good:up:

legacy-Lily
10-21-2002, 08:53 PM
No you won't, with vsync off, the option is most probably not even used. With vsync on, you get the same framerate as with vsync off, but a bit of mouse lag.

Lily

legacy-Metalslug
10-21-2002, 09:43 PM
vsync doenst have any thing to with triple buffering,tripple buiffering is done by the card hardware,it just buffers the rendering data in 3 stages as opposed to 2,wich gives a smoothing effect in the rendering,doesnt really effect the framerate any.all v sync does is match up the frame rate from the card to the refresh rate of your monitor,tripple buffering,when enabled works with or without vsync.

legacy-Lily
10-22-2002, 12:17 PM
The *only* purpose of triple buffering is to keep computing frames while waiting for vertical sync. Triple buffering has *all* to do with vsync. Triple buffering is absolutely of no use with vsync turned off.

I posted that some time ago, you may want to read :


If you're using normal buffering (aka double buffering), there's always a point at which your monitor is displaying one buffer (which can't be used by the CPU/Gfx card, as it is being displayed), and the second buffer (the next frame you'll see on your computer) has been entirely drawn. At this point, two things can happen. Either you asked for vsync, which means the engine will wait that the first frame has been entirely displayed on your monitor (doesn't happen at once on CRT monitors, although your eye can't notice) before switching to the second (next) frame, or vsync is off, and the engine will start displaying the next frame immediately (which may cause some tearing, as the monitor is going to display part of frame 1 on top and part of frame 2 on bottom). So, with vsync on, the engine will actually do nothing at times, waiting for synchronisation with the monitor. That means your CPU and gfx card are idling doing nothing because one buffer is locked and the other computed already. As you can imagine, the computing time is wasted and could be actually used to compute yet another frame instead. That's where a third buffer comes in useful. So, with triple buffering, your CPU/Gfx card won't ever be idle, and your computer will be able to draw a few more frames a second using all that time that would have been wasted otherwise.

Now, this has two drawbacks :

- It takes some more memory on the graphic card (for the 3rd buffer) which might not be a good thing if you don't have too much memory to start with.

- What you see on your monitor is what has been computed 2 frames ago (instead of one frame ago in case of double buffering). At 60hz, that means you see what has been computed at least 32ms ago (16ms with double buffering). While this is not so bad, that's a slight delay that you may feel when playing (everything is slightly delayed before you can see it on the screen, often a reason why people complain about 'mouse lag'). Also, if your card can't compute that many frames a second, that's even more delay you'll have to wait.

If vsync is off, the engine never has to wait and the triple buffer is not needed (and hopefully, the setting in UT is actually ignored).

If the above is too technical, here's basically the options you have :

- vsync off, some tearing on your monitor that can be mostly fixed by increasing the refresh rate of your monitor (barely noticable on 85hz), and almost no delay.
- vsync is on and double buffering is used, the engine won't compute frames at max rate (you can easilly lose 10fps, although it depends how fast frames are computed in the first place), and you get a little more delay than with vsync off (not much).
- vsync on, and triple buffering is used, you get the most framerate out of the engine (capped by the refresh rate of your monitor), but you get some noticable delays.

That's the full story.

Worth to mention is that if your gfx card / cpu are fast enough to compute frames at a tremendous rate (faster than the refresh rate of your monitor), vsync on and double buffering can be a good option, as you don't get tearing, and the delay is only a few ms worse than with vsync off.

On the other hand, if your monitor can be set to 75/85/100hz, vsync off is usually the best option, as you won't notice the tearing much.



Lily

legacy-«Scavenger-X»
10-23-2002, 04:33 PM
changing the mousesamplingtime seemed to make the mouse movement react better, too bad the crosshairs still just jerk around the place instead of actually MOVING.... :o :o :o

legacy-satanboy
10-23-2002, 05:35 PM
Lily, thanks for the info, that stuff finally makes sense!

and with my monitor being an old radius 21" with a 60 hz refresh at 1600x1200, I finally understand what is going on.

(I also now run at 1024x768 just to keep things speedy everywhere, but I still keep that vsync and tribuff on now)

legacy-Metalslug
10-23-2002, 07:49 PM
everything you said makes logical sense,except what I dont understand is why would a hardware option such as tripple buffering would not work with v-sync dissabled? i'm not an engineer or anything, just a lowly technician,and in real life experience it does seem to make a difference with or without v sync.since tripple buffering,in essence renders 3 frames,1 being displayed and 2 in the memory buffer,what difference would it make with or with out vsync enabled? since vsync matches the refresh rate of your monitor with the rendered frames being displayed from your video card,it seems that tripple buffering would still be usefull,even without v sync becouse it would still be rendering 2 frames ahead of what is actaully being dispalyed .I would really like to read up on this, so if you could point me to any good articles on the subject I would really appriciate it.

legacy-ThuGGy
11-19-2002, 12:03 PM
Thanks Lily!!! *Bookmarked*

P.S: The 200 Hz setting in device manager may do problems if you don't increase the "Input Buffer Length"... I set mine to 270, a good range for 200 Hz is 150-350, Mine is 270

legacy-Slab
11-19-2002, 04:48 PM
Updating to the latest mouse drivers from microsft can also help.

legacy-Farting Bob
12-06-2002, 10:39 PM
Hi,

Got two questions:

1. For point number 6, what values should you sue for a Logitech MX500 (USB)?


2. Are these values correct? Got a 512k ADSL-modem.

[Engine.Player]
ConfiguredInternetSpeed=10000
ConfiguredLanSpeed=20000

Any other values I can adjust for smoother connection?

Marco

legacy-Babel-17
01-04-2003, 07:29 AM
Great thread, thanks Lily. Does anyone know if there is a way to check what the pre-render limit is for ATI cards?

Kyllian
01-04-2003, 07:47 AM
Originally posted by Lily
No you won't, with vsync off, the option is most probably not even used. With vsync on, you get the same framerate as with vsync off, but a bit of mouse lag.

Lily

I've gotten a boost from triple buffering, about 5-10 fps boost. I've got a gf2 mx 400

legacy-Babel-17
01-12-2003, 11:30 PM
It's amazing how useful a reference this page is, I've often linked it so as to provide a guide*. I really think it would be great if Lily could repost it with any possible updates and then have the mod's stickify it. Essential reading imo.

Once again, thank you Lily. :)

* Just did it again for some new customers at slackercentral.

legacy-Babel-17
02-02-2003, 11:01 AM
Still a great guide. :) Lily, is there any chance you might find the time to update this? Hopefully it will then get "stickyed".

legacy-Ejen34
02-27-2003, 02:34 PM
Lily:

Finally got my Mx300 installed...got PS/2 setup and up to 200Hz...one question tho if I may....Under my User.ini the line that is MouseSmoothingMode which you say should read =False...well mine currently reads =1....I expected it would have read =True...just double checking to make sure I have the right line before I change it...? :)

Also I read of Input Buffer length and the need to change it...want is this and how do I check it?

Ejen

legacy-Ejen34
02-27-2003, 03:29 PM
I found the place to alter my input buffer length...I changed it to 270....

Ran a few Instant bot matches just few minutes ago...my my....I really do not know how I made due with my ole generic logitech usb mouse before...this is nice....this Mx300 mouse is fast, smoothe, and very responsive...of course making the highlighted changes made most of the difference as well as increasing the refresh rate I am sure...many thanks Lily....

I am happy now.....:):)

Kyllian
05-13-2003, 01:50 AM
This thread is handy, don't want it to disappear

legacy-Ejen34
05-13-2003, 05:46 AM
I agree...when it was active I thought it should have been pinned to the top...it has helped me alot....

Great idea Kel :up:

legacy-Early_bath
05-13-2003, 07:21 AM
Thanks for the bump guys, I never would've spotted it :cool:

legacy-Re.S.T.A.
05-13-2003, 12:46 PM
Originally posted by Kel
I've gotten a boost from triple buffering, about 5-10 fps boost. I've got a gf2 mx 400

can anyone verify this?

legacy-Another User
05-15-2003, 02:33 PM
Yup. This post should be stickyed

I've found it really usefull, but with my Gf4 Ti4600, I have to enable Vsync. Otherwise I get really bad tearing.

Neh mind

Kyllian
05-16-2003, 03:59 AM
Originally posted by Re.S.T.A.
can anyone verify this? Things have changed a bit in the last 4 months(BP's, patches, etc.) so I'm not sure if it makes a difference anymore

Kyllian
07-16-2003, 10:29 AM
Just ressurecting after 2 months

legacy-taz2611
07-20-2003, 09:47 PM
Bloody useful thread this, i have now referred a number of people to it .
Very well done lily nice tweaking going on there :D
Yup i think this should be stickied or at least incorporated into one giant tweaking thread that gets stickied.
*ahem, me bump a thread , never *:D

legacy-Andrew WOT
07-21-2003, 04:35 PM
Just a little addition from http://users.pandora.be/byeclan/UT2003FAQ/


2.4 Mouse problems

A lot of players experience mouse problems. Here are some common problems, and ofcourse fixes for these problems.



a. Reducing mouselag (sent in by Kronon)

To solve the mouselag, I did this (works only for NVidia cards):
- If needed, download CoolBits to enable some extra tweaks in the GForce properties.
- Open ut2003.ini and set UseVSync to FALSE
- Open your GForce properties and set UseVSync to 'Always Off'
- at the same page, set 'Render no more than X frames ahead' to zero
- Using 16 bit colors also helps, but it might not be necessary
- Set the ReduceMouseLag to FALSE in ut2003.ini, since you don't need it any more and it only steals framerate.

b. Disabling the WinXP mouse acceleration

If you are using WinXP, download the reg-fix that removes the XP-mouse acceleration, or manually add this to the registry:
[HKEY_CURRENT_USER\Control Panel\Mouse]
"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,00,a0,00,00,00,00,00, 00,00,40,\
01,00,00,00,00,00,00,80,02,00,00,00,00,00,00,00,05 ,00,00,00,00,00
"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,66,a6,02,00,00,00,00, 00,cd,4c,\
05,00,00,00,00,00,a0,99,0a,00,00,00,00,00,38,33,15 ,00,00,00,00,00


This is what i did to make my mouse fly:
1) Disabled WinXP mouse acceleration
2) Set render XFrame ahead to zero in NVidia settings
3) ReduceMouseLag to false
4) VSync off
5) UseTripleBuffering to True (not sure if I needed it though)

What is the current status on TripleBuffering dispute? Do I need it with VSync Off or not?
And CacheSizeMegs, should I increase it or not, heard different opinions.

Kyllian
11-20-2003, 10:39 AM
Has this thread been stickied yet?
It should be if not

legacy-Another User
11-20-2003, 04:17 PM
Originally posted by Andrew WOT
Just a little addition from http://users.pandora.be/byeclan/UT2003FAQ/


This is what i did to make my mouse fly:
1) Disabled WinXP mouse acceleration
2) Set render XFrame ahead to zero in NVidia settings
3) ReduceMouseLag to false
4) VSync off
5) UseTripleBuffering to True (not sure if I needed it though)

What is the current status on TripleBuffering dispute? Do I need it with VSync Off or not?
And CacheSizeMegs, should I increase it or not, heard different opinions.

When Vsync is disabled on Nvidia cards, why are people not reporting tearing? On my Gainward GF4 Ti4600, tearing is a big issue when I turn off Vsync.

Kyllian
04-15-2004, 04:33 AM
Don't want this thread to disappear

legacy-Flux
04-17-2004, 03:18 AM
Originally posted by Lily
The *only* purpose of triple buffering is to keep computing frames while waiting for vertical sync. Triple buffering has *all* to do with vsync. Triple buffering is absolutely of no use with vsync turned off.
You are wrong. Read this. It has been taken from Futuremark Hardware Vocabulary:

Triple Buffering

Triple buffering is essentially the same as double buffering but an additional "back" buffer is used; the graphics chip alternately renders successive frames into the two back buffers.

This ensures that when a front/back buffer swap is performed, the frame rate can maintain a more consistent level (assuming vsync is not enabled) as there is always a "spare" buffer for the chip to render the next frame into. It also means that the application using the device can relay instructions sooner. The disadvantage of using triple buffering is that it adds to the memory usage requirements.

http://www.futuremark.com/community/hardwarevocabulary/?page=5#T

legacy-Buffy Summers
04-17-2004, 06:08 AM
Flux, they are wrong. Here is how it works:
- With VSync disabled, ALL rendering is done to the screen-buffer at once. Thats what causes the tearing. Since the engine never wait for the vertical beam, you get the minimal mouselag and the maximum framerate this way.
- With VSYnc enabled and TrippleBuffering disabled, DirectX uses two buffers, one to draw to while the other is displayed. When the vertical beam of the monitor is at the bottom, the recently drawn buffer is displayed, and the recencly displayed buffer is the next to be drawn to.
- With VSync on and TripleBuffering on, it basically works the same except DirectX has the 2 buffers to draw to while a third is displayed. For example, while buffer 1 is displayed, it draws to buffer 2, and unless the vertical beam is at bottom, it can draw to buffer 3 as well, until the vertical beam hits bottom. Then is displays buffer 2, and continues to draw to buffer 1 and so on.

In other words, TripleBuffering is not even used unless you have VSync enabled. Just to make sure, I ran a benchmark with and without TripleBuffering but with VSync=off, and it did not make any difference at all.

To sum it up: VSync gives you mouselag and worse framerate for obvious reasons. One way to improve this is to enable TripleBuffering. You will still have a slight performance hit (since the engine has to stall sometimes) but the mouselag will be atleast as bad (if not worse).

My advice: use VSync=off and try to set the monitor to atleast 100Hz. This will almost make the tearing go away, and will give max performance and minimal mouselag.