Announcement

Collapse
No announcement yet.

Powerdesk Win2k Resolution Manager

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

  • Powerdesk Win2k Resolution Manager

    I have created a new version of the Powerdesk Resolution Manager that works under Windows 2000. This utility allows you to modify the available resolutions and associated parameters, such as refresh rate, on your Matrox video card.

    This version is for Windows 2000 only (not Windows 9x), but it MIGHT also work under Windows NT.

    Please give it a try and send me your feedback! Be sure to read the enclosed text file before running the program.

    Get the Powerdesk Win2k Resolution Manager here:
    <a href="http://people.ne.mediaone.net/veneziano/">http://people.ne.mediaone.net/veneziano/</a>

    Enjoy!


    ------------------
    Mark Veneziano

    Mark Veneziano

  • #2
    AWESOME!
    Great, great, great work!!!!

    Now really, I can now tweak the monitor settings in order to get a lower pixel clock at the same vertical refresh rate and so a better image (without shadowing) as I did in win98!

    Thanks alot, that was what I was missing most in win2k.

    Now who needs PD 6.xx?

    PS: could you elaborate more about this PD resolution manager? It modifies g400m.sys, does entries in the registry or what?
    A save option would be nice for it to store the results in a file that could be load afterwards (in a fresh win2k instalation).

    [This message has been edited by Nuno (edited 23 May 2000).]

    Comment


    • #3
      Works great,
      Good job MarkV,

      Comment


      • #4
        Thanks for the compliments!

        Nuno, the save idea sounds like it would be a good addition. I didn't want to add too many bells and whistles to this version because I want to wait and see what features are built into Powerdesk 6.1x. If it has any of the features that the Win9x version does, I can abandon this driver hacking method and just play with the registry as I do in the Win9x Resolution Manager.

        Here's the story on how it works. When I first switched to Win2k a while ago, I was disappointed that there was no support for 2048x1536 in the driver. I searched the registry to see if there was a resolution list, and there was, but 2048x1536 was already listed there and it still would not show up as a valid resolution. There are no Powerdesk .INI files, and no more MGA.MON, so I assumed the resolutions must be hard-coded inside the driver file.

        I picked an odd resolution that I knew was supported (1920x1440), opened up the driver file in a hex editor, and did a search for the various ways 1920 can be represented in hex or ASCII. Sure enough, it was there in hex, and I recognized the neighboring values immediately as the refresh rate, pixel clock, etc., in the exact same order as they are in the Win9x registry. All the other resolutions were there too. I modified one by hand in the hex editor, saved my changes, and tried to reboot, but Win2k told me the G400 driver was corrupt. I figured it was protected by a checksum or CRC so I just abandoned the idea for a while.

        Saturday I started thinking about it again, and a quick web search got me a utility, with source code, for repairing a DLL checksum after hacking it. Since a driver file is just a DLL with a .SYS extension, this would work fine. In minutes I had 2048x1536 working. Then I set to work on a GUI.

        The rest was simple. I search the driver file for the resolution table, which is easy to find because there are a lot of zeros between each of the parameters. This makes the resolution table "stick out" amongst the other code in the driver. I read in the table, replace the values per the user's requests, and then repair the checksum of the driver file. It turns out that the new resolution will not show up unless it is added to that registry key that lists the resolutions, so I also add it there. The key is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Driver\Device0\Mga.SingleResolutions, where Driver is either G400, G200, MGAU, or MGA64.

        Of course, hopefully all this will be unnecessary when PD 6.1x comes along!


        ------------------
        Mark Veneziano



        [This message has been edited by MarkV (edited 24 May 2000).]
        Mark Veneziano

        Comment


        • #5
          Finally I can use the 1400x1050 resolution again! Thanks!

          Ow, and I haven't checked it yet, but I guess this tool is also useful for killing those low-refreshrates.. For some reason Windows always jumps back to 75Hz when I use 1600x1200. I guess when I kill those entries, Windows will use always 85Hz

          Comment


          • #6
            Did you also hack the driver to allow refresh rates higher than 85 hz?

            Specifically I would like to get a 100hz refresh rate for 1152x864 like i have in Win98 SE, but in Windows 2000 Professional.

            Thanks

            • Box 2:
            • operating system: FreeBSD 4.1
            • CPU: Intel Pentium 60
            • memory: 32 MB
            • hard drive: Quantum Fireball 1 GB


            legalize

            Comment


            • #7
              Randy, once you change the parameters for a resolution, they should stick. Mr. Cold, you can either modify the existing 1152x864x75 to be 1152x864x100, or you can change an entirely different resolution, perhaps one you don't use too often, to be 1152x864x100. Both ways should work just fine.

              Once you make your changes and reboot, you can go to the Adapter tab in Display Properties and choose "List All Modes" to ensure your changes have taken effect. If your current resolution has multiple entries due to different refresh rates or other parameters, you can choose between them on the Monitor tab.

              You may also need to uncheck "Hide modes that this monitor cannot display" on the Monitor tab if the .INF file for your monitor doesn't advertise its ability to support your new resolutions/refresh rates.


              ------------------
              Mark Veneziano



              [This message has been edited by MarkV (edited 24 May 2000).]
              Mark Veneziano

              Comment


              • #8
                Most times, windows switched back from 85Hz to 75Hz when I swiched to 1600x1200x16bpp (in which the G200 can deliver 85Hz). I always had to manually switch back to 85Hz. But I overwrite those low-Hz-1600-resolutions, and now Windows nicely maintains/switches to 85Hz when switching to 1600x1200.

                So, I'm happy

                Comment


                • #9
                  How do I get DirectX to always use my custom refresh rates? It keeps wanting to use the default. Refresh rate override in DXDiag isn't an option because I have a different refresh rate for each mode.

                  Comment


                  • #10
                    Also, DXDiag won't override to refresh rates higher than 120hz. I have my refresh rates customized as follows:

                    640x480x191
                    800x600x158
                    1024x768x125
                    1280x960x101
                    1600x1200x81

                    Comment


                    • #11
                      For that matter, how do I get *Windows 2000* to always use my customized modes. I have to go to Display Properties...Advanced...Adapter...List All Modes and select my mode from there. If I use the display mode slider my monitor fails to sync up.

                      Comment


                      • #12
                        Hi Mindjammer,

                        It sounds like you are having a problem similar to Randy's. You might want to try his suggestion of overwriting all but one copy of each resolution you use. For example, 1600x1200 is available at 60, 65, 70, 75, and 85 Hz, and you added 81 Hz. If you customize the first 5 copies of 1600x1200 so that they are some other resolution (like 1608x1206, or something like that), you will be left with 81 Hz as the only choice for 1600x1200, and then Windows and DirectX will be forced into using that mode.

                        You would need to do this for all the resolutions you use. I don't understand why this problem is happening though, for you or for Randy, because it does not happen on my machine. It may be an issue related to the .INF file for your monitor, or it could be something entirely different. I will try to reproduce it here when I get home from work tonight.



                        ------------------
                        Mark Veneziano

                        Mark Veneziano

                        Comment


                        • #13
                          I overwrote all the low-refresh-rate resolutions with 640x400, and I got a BSOD on bootup. I had to boot up with VGA drivers, and even then I'd get a BSOD trying to enter the display control panel. When I changed the modes back it worked again. Will try a different mode (after backing up the driver file, it was a huge pain to change all those modes back).

                          Re INF files: My monitor does not have an INF file. The manufacturer does not provide one. In fact this monitor was never meant to be used on something other than an Intergraph workstation (which use Matrox cards, that's how I got it to work under win95).

                          In all cases I altered the 85hz mode to my custom refresh rate, leaving the other modes intact.

                          Comment


                          • #14
                            Cool.
                            Number of questions to all of you (maybe not related to that Program .
                            1) Any idea on how to set different resolutions for second monitor in DH mode? Or it's W2K problem?
                            2) About that 1400x1050... strange thing, but on my ViewSonic PF790 it sucks in 85Hz. (i.e. i can not use full screen width). But I guess it's not The resolution for that monitor...
                            So, any expirence with nice resolutions for 19' monitors on 85 Hz?
                            Matrox Millenium P750 bios 1.3 - 12, P4 3Ghz HT 800Mhz, Asus P4P800 Deluxe, 1Gb DDR400 Dual Channel, Dual Seagate 80Gb S-ATA on Intel Raid level 0, Toshiba DVD-ROM SD-M1302, external Yamaha CD-RW CRW-F1DX on Firewire, Microsoft Natural Elite keyboard, Microsoft Intellimouse Optical, Viewsonic P90F, Viewsonic PF790

                            Comment


                            • #15
                              Mindjammer:

                              I still cannot reproduce the problem you are having. I wonder if it's possibly a plug-and-play issue. Do you use a standard VGA cable or BNC connectors on your monitor? If you use a standard VGA cable, Windows might be reading your monitor's preferred settings over the DDC and updating your refresh rate based on that. I am using a VGA-to-BNC cable, which doesn't transmit the plug-and-play data, so maybe that's why I don't have the problem.

                              As far as the BSODs you got, when you replaced the low refresh rate resolutions, did you replace them all with the same parameters? The Matrox driver might be having problems listing the available resolutions if so many of them are exactly the same.

                              These are all just guesses! I'll keep exercising the program to see if I can make similar problems happen here, in which case they will be easier to debug.

                              Arsa:

                              1) I believe it is a Windows 2000 limitation that prevents different resolutions on different displays in DualHead mode. It has something to do with the fact that both displays come from the same graphics card. This is handled differently under Windows 2000 than under Windows 9x. If I understand it correctly, you can have different resolutions on multiple displays only if you are driving the displays with separate physical video cards.

                              2) You may be approaching the input clock limits of your ViewSonic PF790 with 1400x1050 at 85 Hz, but I'm not really sure. Typically that is the reason why you can't get the image to stretch to full screen. One thing you might try is something Mindjammer suggested in another thread, which is to use the Powerdesk monitor controls in Windows 95/98 (if you have it installed) to customize your resolution and properly position the image on the screen. This will then give you the values to plug into the Win2k Resolution Manager. With the Windows 9x Powerdesk monitor controls, you can at least see your changes immediately, so you can experiment with different refresh rates and other values without having to reboot to test them.

                              Good luck!


                              ------------------
                              Mark Veneziano

                              Mark Veneziano

                              Comment

                              Working...
                              X