Announcement

Collapse
No announcement yet.

TEMPORARY video refresh rate fix for nVidia cards/Windows 2000/XP (maybe 98/ME too)!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • TEMPORARY video refresh rate fix for nVidia cards/Windows 2000/XP (maybe 98/ME too)!

    OK guys. I got to thinking about this refresh rate problem occuring for some people. Since I only run nVidia cards in my systems I do not know if this solution will work for other video cards (though the premise is the same).

    PROCEDURE:
    ----------------

    1. Open up with windows registry using RegEdt32.exe. Note this is the NT version of RegEdit. Under Windows 2000 the keys we are editing are of type REG_MULTI_SZ - or strings terminated with NULLs (0) followed by a doube-NULL.

    2. Open the key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class

    3. Find the key {4D36E968-E325-11CE-BFC1-08002BE10318}
    I'm not sure if this will be the same on your system but you
    are looking for a key that has a subkey named "Class" with
    the value "Display"

    UPDATE: I just checked all my computers. The GUID (the long
    128-bit weird looking number) is the same on all
    my machines.

    4. Under this key you'll find more subkeys labelled like "0000",
    "0001", "0002" Go through these keys and find your video
    card. Note: Typically there is only one key and it is
    named "0000".

    5. Open that key and open the subkey named "Settings"

    6. You'll see a bunch of values such as NV10_Modes,
    NV10DDR_Modes etc. Each of these keys will have a slew of
    values:

    (example)

    8 640 480 60 70 72 75 85 100 120 0
    8 320 200 60 70 72 75 0
    8 320 240 60 70 72 75 0
    8 400 300 60 70 72 75 0
    8 480 360 60 70 72 75 0
    8 512 384 60 70 72 75 0
    8 640 400 60 70 72 75 85 100 120 0
    8 800 600 60 70 72 75 85 100 120 0
    8 1024 768 60 70 72 75 85 100 120 0
    8 1152 864 60 70 72 75 85 100 120 0
    8 1280 960 60 70 72 75 85 100 120 0
    8 1280 1024 60 70 72 75 85 100 120 0
    8 1600 1024 60 70 72 75 85 100 0
    8 1600 1200 60 70 72 75 85 100 0
    8 1920 1080 60 70 72 75 85 100 0
    8 1920 1200 60 70 72 75 85 0
    8 1920 1440 60 70 72 75 0
    8 2048 1536 60 0
    16 640 480 60 70 72 75 85 100 120 0
    16 320 200 60 70 72 75 0
    16 320 240 60 70 72 75 0
    16 400 300 60 70 72 75 0
    16 480 360 60 70 72 75 0
    16 512 384 60 70 72 75 0
    16 640 400 60 70 72 75 85 100 120 0
    16 800 600 60 70 72 75 85 100 120 0
    16 1024 768 60 70 72 75 85 100 120 0
    16 1152 864 60 70 72 75 85 100 120 0
    16 1280 960 60 70 72 75 85 100 120 0
    16 1280 1024 60 70 72 75 85 100 120 0
    16 1600 1024 60 70 72 75 85 100 0
    16 1600 1200 60 70 72 75 85 100 0
    16 1920 1080 60 70 72 75 85 100 0
    16 1920 1200 60 70 72 75 85 0
    16 1920 1440 60 70 72 75 0
    16 2048 1536 60 0
    32 640 480 60 70 72 75 85 100 120 0
    32 320 200 60 70 72 75 0
    32 320 240 60 70 72 75 0
    32 400 300 60 70 72 75 0
    32 480 360 60 70 72 75 0
    32 512 384 60 70 72 75 0
    32 640 400 60 70 72 75 85 100 120 0
    32 800 600 60 70 72 75 85 100 120 0
    32 1024 768 60 70 72 75 85 100 120 0
    32 1152 864 60 70 72 75 85 100 120 0
    32 1280 960 60 70 72 75 85 100 120 0
    32 1280 1024 60 70 72 75 85 100 120 0
    32 1600 1024 60 70 72 75 85 0
    32 1600 1200 60 70 72 75 85 0
    32 1920 1080 60 70 72 75 0
    32 1920 1200 60 70 0
    32 1920 1440 60 0


    The idea here is to remove the values before the 0 that you do not want. Most people have monitors that can display 1024x768 @ 85Hz. So remove all values after 85 BUT DON"T REMOVE THE TRAILING 0.

    Example:

    Before: 32 1280 1024 60 70 72 75 85 100 120 0
    After: 32 1280 1024 60 70 72 75 85 0

    This will tell Windows that the minimum refresh rate for 1280x1024 @ 32 bit is 60 Hz and the maximum is 85 Hz.

    You'll probably need to change the values for 1024x768 16/32-bit and 1280x1024 16/32 bit.

    So for example:

    BEFORE:

    ...
    16 1024 768 60 70 72 75 85 100 120 0
    16 1280 1024 60 70 72 75 85 100 120 0
    ...
    32 1024 768 60 70 72 75 85 100 120 0
    32 1280 1024 60 70 72 75 85 100 120 0
    ...

    AFTER:

    ...
    16 1024 768 60 70 72 75 85 0
    16 1280 1024 60 70 72 75 85 0
    ...
    32 1024 768 60 70 72 75 85 0
    32 1280 1024 60 70 72 75 85 0
    ...

    Now, becareful not to remove any of the other lines. Only change the lines, don't remove them (I'm not sure what affect this will have.)

    So if, for example, you have a nVidia Geforce 2 GTS (this is an NV15) you'd modify the 1024x768 16/32 settings for the registry key labelled NV15_Modes.

    After you make this change, you may also need to make the exact same changes to:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\nv

    or

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\nv4

    (It depends on the version of driver you are using...)


    REBOOT your machine after making these changes

    -------------------------

    This solution fixed the refresh rate problem because Civ 3 wasn't able to select the highest refresh rate possible (which defaults to 120Hz on nVidia cards.)


    Please be really careful when modifying the registry...If you completely screw your nVidia settings just reload the driver and that will undo all your changes.

    BTW For those of you experiencing 60Hz refresh rates under Windows 2000 go here: http://www.planetquake.com/ztn and pickup the nVidia Refresh Rate fix program. It fixes the problem with the refresh rate defaulting to 60Hz. You could make these changes manually (using a similiar technique to my above instructions) but why bother

    Anyhow...Good luck,

    I'll monitor this thread to help any of those who need help with my instructions.


    Dire Wolf
    Last edited by Dire Wolf; October 31, 2001, 08:59.

  • #2
    Here are my thoughts on why this is happening:

    I'm guessing that when Civ 3 starts up it tries to select a refresh rate that is too high (obviously.) It gets this refresh rate from the settings for the "Display" in the registry. The nVidia drivers have refresh rates that are not always in line with what your monitor can support. So when Civ 3 starts up it tries to set a maximum refresh rate of 120Hz (at least on my 3 machines) and this tends to be more than most monitors can handle at 1024x768 (older/lower end monitors.)

    The solution above changes the nVidia refresh rate values to something more reasonable - 85Hz (or whatever your monitor can support at 1024x768 ... maybe even 75Hz.)

    When Civ 3 starts up it will select the highest refresh rate the driver supports but this time it hits a max of 85Hz/75Hz so things are good.

    I'm not sure how Civ 3 selects a refresh rate but most games use the current refresh rate OR select the *lowest* refresh rate the monitor supports. The alternative is to allow the user a choice of refresh rates but enumerating the *monitors* availabe rates (using EnumXXX services provided by DirectX.)

    Well, hopefully this solutions works for people. I'm off to try some Civ 3 (if I can snag the disk from my wife!

    Comment


    • #3
      Outstanding work DW. I tried it and it worked!

      I have a Voodoo5 card, and it had a different registry structure than your NVidia.

      It was the same all the way down to "Settings" but instead of the list like yours, mine had a directory structure for various 3dfx stuff. The last folder was called "Timings", and under that folder were more folders, each with a different resolution, and each resolution folder had a set of folders within it, each folder being a different solution.

      Example

      Settings
      -Timings
      --1024,768
      ---60Hz
      ---70Hz
      ---75Hz
      ---85Hz
      --1152,864
      ---60Hz
      ---70Hz
      ---75Hz
      ---85Hz
      --and so on down the list

      Within each refresh folder were 2 keys. The values of these keys is unimportant however. Just delete the folders for the refresh rates that your monitor does not support.

      For instance, I run my desktop resolution at 1280x1024, 85Hz. I deleted all the folders except for 85 and below. Rebooted the machine, started Civ3, and it worked great.

      Chris

      Comment


      • #4
        Hey dire.....is 800 x 600 resolution possible???


        btw I checked your registrys just to be sure.. Ill keep them in mind for when I purchase the game for my PC.

        thanks,

        Comment


        • #5
          I'm glad it worked for you! Thanks for posting how to fix the settings for a Voodoo card.

          I'm just happy I was able to give something back to this great community

          Best regards,

          Dire

          Comment


          • #6
            faded glory:

            I honestly don't think it is possible. On the Civ 3 box/tin it states that 1024x768 is required. I'm sure a lot of the interfaces (like the City Manager) are hard coded for 1024x768. It even mentions this in the readme.txt file.

            Sorry man.

            Dire

            Comment


            • #7


              That would be what you're looking for

              No mucking with registry settings, and easy to use. Enjoy

              Comment


              • #8
                I tried what you were doing but when I open up the REG_MULTI_SZ (you had REZ instead of REG, jtlyk) I get something completely different. What I'm seeing doesn't seem right at all. Here it is:

                0000 01 00 74 00 69 00 64 00 a.t.i.d.
                0000 72 00 01 00 02 00 00 00 r.a.b.
                0010 00 00

                I've checked out my drivers and Active X and everything is working fine as it says. Do you know what to do?
                However, it is difficult to believe that 2 times 2 does not equal 4; does that make it true? On the other hand, is it really so difficult simply to accept everything that one has been brought up on and that has gradually struck deep roots – what is considered truth in the circle of moreover, really comforts and elevates man? Is that more difficult than to strike new paths, fighting the habitual, experiencing the insecurity of independence and the frequent wavering of one’s feelings and even one’s conscience, proceeding often without any consolation, but ever with the eternal goal of the true, the beautiful, and the good? - F.N.

                Comment


                • #9
                  Originally posted by chumly


                  That would be what you're looking for

                  No mucking with registry settings, and easy to use. Enjoy
                  If you notice (read my post) I actually posted this but it DOESN'T work for this case. The nVidia Refresh Rate program only sets your minimum refresh rate. It does this by removing the refresh rate numbers from the registry up to the one you want set.

                  Example:

                  BEFORE:

                  32 1280 1024 60 70 72 75 85 100 120 0

                  AFTER:

                  32 1280 1024 75 85 100 120 0


                  Now games running at 1280x1024 @ 32-bit will run at a minimum of 75Hz. That is how the nVidia Refresh Fix proggy works.

                  Now, I don't believe you can set the maximum refresh rate that the driver can be set to using that program. That is why I posted the above information...

                  Let me know if I'm wrong,

                  Dire

                  Comment


                  • #10
                    Originally posted by TechWins
                    I tried what you were doing but when I open up the REG_MULTI_SZ (you had REZ instead of REG, jtlyk) I get something completely different. What I'm seeing doesn't seem right at all. Here it is:

                    0000 01 00 74 00 69 00 64 00 a.t.i.d.
                    0000 72 00 01 00 02 00 00 00 r.a.b.
                    0010 00 00

                    I've checked out my drivers and Active X and everything is working fine as it says. Do you know what to do?
                    LOL. Sorry about that. I was typing really fast and typed REZ instead of REG. Thank god I don't do that when programming

                    Hmmm. I'm really not sure what those numbers mean If I remember correctly, from another post, you said you have a 4MB ATI Rage Pro right?

                    If you are suffering from the refresh rate proble, I'll look into this for you.

                    Until then, best of luck

                    Dire

                    Comment


                    • #11
                      I'm just reading about these refresh rate problems now. I had the same problem last night, with my display losing sync when I started Civ III--but the problem there was that I had my monitor set to "Default Monitor". The other problem is that my monitor is so old that XP doesn't list it with the other Sony monitors. So I actually had to go and edit one of XP's .INF files to make an entry for my old monitor with its specs, then remove the .PNF files and let WinXP rebuild the driver database. Then I selected that "monitor driver" from the display properties.

                      That worked--Civ III no longer tries to drive my monitor faster than it will go. Of course, the crummy part is that I have had a new monitor on order for several days, and if it had actually arrived yesterday as expected, I wouldn't have seen a problem. Oh, well.

                      My first advice to people having trouble would therefore be: Check your monitor configuration in Windows.

                      Comment


                      • #12
                        I tried numerous monitor profiles before I did this solution. For me selecting different profiles didn't work. The monitor kept getting driven to 120Hz (as set in the nVidia driver - in the registry.)

                        Still it is a good idea to try selecting a different monitor profile if you want to try and avoid the registry changes. As I said, it didn't work for me...

                        Comment


                        • #13
                          DW, (or anyone w/ mad skills)

                          Two questions,

                          1. Which NV[X] mode is appropriate for GeForce 2 MX?

                          2. How (exactly) does one remove the refresh rates? (Another window pops up when I execute the "modify" command, and all I see are a SL'd of numbers -- which I honestly don't understand and don't want to mess with until I do.)

                          Thanks,

                          Iago

                          Comment


                          • #14
                            Thanks DW!

                            Just wanted to say thanks for the fix DW, totally worked for me and my GeForce256.

                            And Iago, make sure you're using regedt32.exe and not regedit.exe. The original regedit doesn't interpret the nulls and looks all screwy.

                            - Z

                            Comment


                            • #15
                              Doh!!!! Thanks, I was using regedit.exe. Thanks, Zapaan.

                              Comment

                              Working...
                              X