Allowing any screen resolution on Vista

By default, Windows Display Properties displays only the resolutions allowed by its driver, or (in the case of a Plug-and-Play monitor) exposed by its EDID.

I have been hacking my video and monitor drivers ever since I was 13. On Windows 9x, it was possible to enable all resolutions supported by the display driver, by editing the monitor.inf file and changing the maximum resolution of the currently-detected monitor to something ridiculously high (3200x2400, for example), or by disabling detection of PnP monitors and deleting the monitor driver (though this had the adverse effect of only allowing the lowest refresh rate).

On Windows XP, this hack was rendered obsolete by the "Hide modes that this monitor cannot display" option which, when disabled, displayed all resolutions (and refresh rates) in Display Properties.

The Problem

If you are using Windows Vista (or Windows 7), you have probably noticed that you can only select modes exposed by your monitor even if you uncheck "Hide modes that this monitor cannot display". This is not limited to Display Settings: the NVIDIA Control Panel (if you have an NVIDIA card) and List All Modes dialog also display only those modes that are allowed by the EDID. But what if you wanted to run your CRT monitor at a higher resolution than it tells Windows it supports? What if you have defined a custom mode that is outside the range specified in the EDID? What if you are stuck at 60 Hz because you are running at the rated maximum resolution of your monitor? Or, what if, for some strange reason, you are hopelessly stuck at 60 Hz in Windows 7 like I was?

Fortunately, it's possible to run any resolution and refresh rate in Vista, much like in XP. Unfortunately, in order to do so, you will need to perform surgery on your monitor's cable.

A note about EDID, DDC, and the nature of CRT monitors

EDID stands for Extended Display Identification Data. It is transmitted through the DDC (Display Data Channel) and is used by the operating system to determine which modes the monitor supports, as defined by the manufacturer. EDID also contains information such as monitor manufacturer/model, timings, screen size, color system, and so on.

CRT monitors can be run at resolutions higher than the ones stored in the EDID. I have successfully run a monitor rated for 1024x768 at 1152x864, and a monitor rated for 1280x1024 at 1920x1152. It is also possible to run CRT monitors at higher refresh rates than those specified in the EDID; this is useful when, for example, the maximum resolution of a monitor only allows a 60 Hz refresh rate, but a refresh rate of 70 Hz is desired.

DDC (and thus EDID) can be disabled by removing pin #12 from the VGA connector. This causes the monitor to be detected by the operating system as a non-Plug-and-Play monitor, which makes Vista to display all (or most) of the resolutions supported by the video driver.

Why pull out pins?

Windows 9x uses the EDID to detect a Plug-and-Play monitor's maximum resolution, but this can be overridden by disabling PnP monitor detection and manually selecting a (modified) driver for the monitor. Windows XP honors the EDID for PnP monitors as well, but this behavior can be overriden via the "Hide modes that this monitor cannot display" option. Windows Vista honors the EDID no matter what, so the only way to disable it is to do so at the hardware level.

Performing the modification

WARNING: This tutorial involves the modification of your monitor's video cable. Note that a) this will void your monitor's warranty (unless you are using a detachable cable), b) carries a certain amount of risk, and c) may have unforeseen side effects (such as an application accidentally changing the resolution to a setting that your monitor cannot handle). I am not responsible for any damage to your hardware that you may incur by following my tutorial. Do this at your own risk.

NOTE: This modification is intended for CRT monitors. It is NOT recommended that you do this on an LCD monitor.

1. The Tools

Make sure you have the following:

  • Needle-nose pliers
  • Pinout of a VGA connector, available here (optional)
  • Monitor cable (VGA)
  • A few minutes of time (but may take longer)

TIP: If you have one, use a detachable VGA cable, or a small male-to-female VGA patch cable, instead of the cable on your actual monitor. I used an old 6" patch cable used from an old 3D accelerator card.

2. Identifying the pins

Here is where that pinout comes in handy. Take your VGA connector and position it with the wider end of the connector at the top. The pins are numbered 1 through 15, with pin #1 being the leftmost pin in the top row. In order to disable DDC without affecting anything else, you need to remove pin #12 (see picture).

3. Removing the pin

Firmly grip the pin with needle-nose pliers. Rock the pin back and forth, being careful not to bend any others (or the connector's outer shell), pulling it the whole time. It will take a few tries, but eventually you will get it out. I managed to remove exactly half of pin #12 on my first try, and it took a bit more effort to remove the second half (seems like the top half of the pin is hollow or fluted in some connectors).

Finished product

Finished pin mod
 

I performed this mod on an old 6" patch cable that was previously used for connecting a 3D accelerator. I call it my "freedom cable", as it can be connected to any monitor to temporarily disable its EDID :D

Finished pin mod
 

4. Reconnect your monitor

Plug the monitor back in. Note that you need to restart the computer before changing any settings, or you may have issues with setting resolutions.

Results

After you remove pin #12 and disable DDC, Windows will no longer recognize your monitor as Plug-and-Play due to the lack of EDID.

Now, Windows allowed me to adjust my resolution up to 2048x1536, and so did the NVIDIA Control Panel.

If it weren't for this hack, I would not be using Windows 7 right now due to the 60 Hz refresh rate being the only selectable option. (60 Hz hurts on a CRT monitor.) After the modification, I was able to select any refresh rate that I wanted.

Disadvantages of this modification

Since your monitor is no longer defined as a PnP monitor, and is missing its EDID, programs which rely on this information may have issues. Also, Windows does not know what is best for your monitor, thus you may get a sub-optimal display in some cases.

A note on LCD monitors

Unlike a CRT, an LCD monitor has a fixed number of pixels. The native resolution of an LCD monitor corresponds to the number of actual pixels on the panel; lower resolutions are interpolated to fit this fixed grid, producing a less-than-crisp image.

LCD monitors generally do not respond well to higher-than-intended resolutions; even if you are able to do this successfully, the image may be so blurry it is unusable. I do not recommend this modification for an LCD monitor, unless you want to disable the EDID for a reason other than allowing higher-than-recommended resolutions.

Alternate method: flash your monitor's EDID

This involves replacing the EDID of your monitor with your own custom EDID, which can be set to specify the maximum resolution of the monitor. There are several advantages of using this method over the pin-removal method outlined in this article, the most notable being the fact that the monitor is still detected as a plug-and-play monitor and can be identified as itself.

There is a significant risk involved in flashing your monitor's EDID; if done incorrectly, or something goes wrong, you could end up with a bricked monitor. Additionally, not all monitors have a flashable EDID. I, personally, would rather pull out the pin.

EnTech Taiwan's PowerStrip (great little program that I've been using ever since I got my first desktop computer) includes a tool for flashing your monitor's EDID, though it is not guaranteed to work for all monitors, and requires the registered version.

"Out Of Range" errors

If you, or an application or game on your computer, sets the resolution to something that your monitor can't handle, you will receive an "Out Of Range" error message on your screen, the screen will go black, or the screen will appear garbled. If this happens, you can reset your display mode by restarting the computer manually and pressing F8 immediately after the POST screen. Select "Enable Low Resolution Video (640x480)" or "Enable VGA Mode" and hit Enter. Go back into Display Settings and change your resolution to what you prefer.

This issue is not limited to monitors with DDC disabled; it can happen in Windows XP and eariler if "Hide modes that this monitor cannot display" is turned off or if you are using a modified monitor driver. This issue may have been one of the reasons prompting Microsoft to have Windows Vista follow the EDID no matter what.

Conclusion

I hope you enjoyed this tutorial, and have learned something from it. Please leave a comment if you have any questions or would like to correct me on anything.

Back to top

Posted on 1/20/2009 6:22 PM | Permalink

Comments (30)

Posted by Python09 on Wednesday, January 21, 2009 @ 8:17 PM
NICE article!

I may do this to my Monitor :D
Options: Reply | Quote

Posted by Dave on Wednesday, July 8, 2009 @ 7:21 PM
I've have an older small 15" LCD monitor ( made be SVA ) that has never worked with my newer Macs or new PC with vista. I finally stumbled on this page, worked perfect ! Thanks!
Options: Reply | Quote

Posted by Endre on Wednesday, October 28, 2009 @ 4:18 PM
This works perfectly! I have a LCD syncmaster 940n. I was stuck at 60hz in Windows 7. I removed the EDID and can now run at 70hz. I did 70hz with vista. 70hz equal as clear as 60hz(I think), but at 75hz my screen became unclear. By the way, how can I determine the best possible hertz for my monitor?
Options: Reply | Quote

Posted by nookkin on Thursday, October 29, 2009 @ 9:14 AM
LCD monitors are usually very picky as far as resolutions and refresh rates are concerned. Due to their nature, LCD monitors don't even have a "refresh rate" in the usual sense of the word. A CRT running at 60 Hz redraws the screen 60 times per second (if the phosphors fade out before the next redraw, you get flicker); an LCD only redraws the pixels that have changed. Running an LCD monitor at 70 Hz will make no difference because most of them actually scale down to 60 Hz internally.
Options: Reply | Quote

Posted by billy on Thursday, November 26, 2009 @ 7:34 AM
is there any way to make this possible via software
Options: Reply | Quote

Posted by billy on Thursday, November 26, 2009 @ 7:39 AM
is there any way to make this possible via software i have netbook compaq mini with led monitor resolution 1024x546.
i can not operate 800x600 in vista or windows 7. i cant play games;;;
Options: Reply | Quote

Posted by vrekman32 on Sunday, November 29, 2009 @ 5:33 PM
this comment is just to thank you.
I also have an old "pass through" cable of the legendary voodoo2 that I can mod. This tip of yours might be a life saver, especially if you see the travesty with the 9.11 catalyst for the new 5800 cards and crt monitors...
Options: Reply | Quote

Posted by Ezane on Saturday, December 5, 2009 @ 5:28 PM
YES! After hours and hours of test: I have my CRT to 1600x1200@100HZ on Windows 7 64 bits !
Options: Reply | Quote

Posted by Ezane on Saturday, December 5, 2009 @ 5:30 PM
(I remove the pin #12 of adaptater VGA-DVI)
Options: Reply | Quote

Posted by Cardo on Sunday, December 27, 2009 @ 1:26 AM
This is amazing. I was screwing around with this and different drivers for days and at first the pin removal didn't seem to work either, at least the nVIDIA CPanel test wouldn't allow it and Windows would set me to 256k colors.

But running the game I needed in 640x480 @ 100hz it runs perfect, **** W7 or nVIDIA not making them compatible.

Thanks!
Options: Reply | Quote

Posted by Boris on Friday, January 22, 2010 @ 9:25 AM
Thank you SO MUCH!!!!!
You are my life... nope... my EYE-SAVER!
(Have a LaCie19blueIV/Mitsubishi Diamondtron 930SB). and a HUGE problem with W7 and a 8500 Nvidia.
May you live luckily 100 years!
Options: Reply | Quote

Posted by Vader on Tuesday, January 26, 2010 @ 6:08 PM
Stop, man! No need to cut or flash anything for nVidia.
Try adding a resolution - for example "1024x768 at 85Hz" in the NVIDIA Control Panel (tab: "resolutions").
It works well!
(playing with it around, you can discover a new world of performace of some old junky CRT monitor)
:)
Options: Reply | Quote

Posted by Mike on Sunday, February 7, 2010 @ 1:23 PM
http://social.answers.microsoft.com/Forums/en-US/w7hardware/thread/84f41660-1933 -4109-9b13-1ea8a1c27be7

You are awesome, just saved me about $100
Options: Reply | Quote

Posted by Mike on Sunday, February 7, 2010 @ 1:24 PM
http://tinyurl.com/yf2lzuz

You are awesome, just saved me about $100
Options: Reply | Quote

Posted by aamw on Tuesday, February 23, 2010 @ 12:58 PM
Thank you so much! this really saves eyes. Instead of modifying a cable which serves me well for 10 years I have bought a Db15-GenderChanger M-F and pulled out Pin 12.
Options: Reply | Quote

Posted by seb on Wednesday, March 3, 2010 @ 4:44 PM
doesn't work under win7pro and mobile intel4 series express chipset familie. it always shows one standard resolution even after removing pin12. however, there wont be any solution for me...
Options: Reply | Quote

Posted by ouchmyeyes on Monday, March 29, 2010 @ 10:47 AM
the edid information communicated to vista/w7 can in fact be overridden via a monitor .inf file. this way, monitors that do not communicate accurate edid information can be 'fixed' with an updated .inf file.

i spent the better part of an entire weekend trying to figure this out because win7 refused to run my crt at higher than 85hz in any resolution. after figuring everything out and creating a custom monitor .inf, i'm running at 120hz in all the resolutions i normally use.

what i did was, i used phoenix edid designer to extract, modify, and export the raw edid values, then used entech monitor asset manager (both are free utilities) to import the new edid values and create an updated monitor .inf file. installing the .inf file allowed win7 to use the resolutions and refresh rates i specified.

but it's probably just much easier to remove a pin from the monitor cable, lol.
Options: Reply | Quote

Posted by nookkin on Monday, March 29, 2010 @ 1:40 PM
@ouchmyeyes:

Thanks for your input. I was unable to get Windows 7 to accept a modified monitor INF but I suppose using the Phoenix EDID Designer to extract the actual EDID turned up some obscure values that Windows checks against the real EDID reported by the monitor and then allows the inf file to load.

I actually would consider an INF file to be a better fix for common cases (such as me being unable to go above 60 Hz on my old CRT); it would just require a more streamlined method of extracting the EDID information and customizing it. After spending a weekend on it, it will be much easier for you to create such files for other computers.

But for the cases where this method does not work, there's always the pin removal that can be done.
Options: Reply | Quote

Posted by Derrick on Monday, March 29, 2010 @ 2:05 PM
This works very well, but rather than removing pin 12, I simply covered it with a small piece of sandwich-bag plastic!
Options: Reply | Quote

Posted by Derrick on Monday, March 29, 2010 @ 2:11 PM
ATI's Catalyst 10.3 driver officially honors EIDE, AND i was previously limited to 1920x1080 on a
4:3 monitor. Now, I can use 2600x1950.
Options: Reply | Quote

Posted by George on Wednesday, April 14, 2010 @ 2:50 AM
Will this work if the CRT is connected to my graphics card via dvi to vga?
Options: Reply | Quote

Posted by nookkin on Wednesday, April 14, 2010 @ 10:56 AM
@George: it sure will.

A DVI-I port (found on most video cards) actually is capable of outputting both a "real" digital DVI signal and a legacy VGA signal; the little adapter only works if the video card puts an analog signal through it which is identical to that on a regular VGA connector.

However, there is also a way to modify the DVI-to-VGA adapter itself instead of modifying the VGA cable. I think it involves two pins... not sure though, I'll need to look at a pinout.
Options: Reply | Quote

Posted by George on Wednesday, April 14, 2010 @ 4:03 PM
No need, I removed the pin and it works. Thank you!
Options: Reply | Quote

Posted by William on Tuesday, April 27, 2010 @ 10:13 PM
Download Phoenix EDID Designer.
Download and install Entech Monitor Asset Manager.

Run Phoenix EDID Designer.
Tools > "Extract Registry EDID".
Select monitor and click "Extract EDID".
File > "Read Only".
"Standard Timings" Tab.
Edit Timing Values 1-4.
The select radio button for 5-8.
Edit Timing Values 5-8.
File > "Save EDID As" for later use.
Close PED.

Run Entech Monitor Asset Manager (MonInfo).
File > "Open" DAT file from PED.
File > "Create INF".
Close EMAS.

Update monitor driver with created inf.
Allow and accept any driver warning messages.
Options: Reply | Quote

Posted by William on Tuesday, April 27, 2010 @ 10:14 PM
Also restart/shutdown computer for changes to take affect.
Options: Reply | Quote

Posted by nookkin on Monday, May 10, 2010 @ 3:30 PM
@William Great tutorial... I tried it and it allowed me to add another resolution to my flat panel monitor. LCDs usually should be run at 60 Hz anyways... but 60 Hz on a CRT is quite painful for me.
Options: Reply | Quote

Posted by Bill on Monday, May 17, 2010 @ 2:57 PM
Wanted to thank you for this article. I have another scenerio where this is a solution. We had an LCD monitor and projector connected through a Y connector. When we switched to Win 7 the system would only put a "ghosted" image on the projector. Whatever EDID information the monitor was supplying Win7 wouldn't work for the projector. Using this modified cable allowed us to set the compatible resolution for the widescreen projectors and the LCD worked at that resolution OK.
Options: Reply | Quote

Posted by nookkin on Monday, May 17, 2010 @ 3:07 PM
@Bill Glad it worked for you.

On a side note, are you a developer for BeCubed? I remember using some BeCubed common dialog control back in the good old VB6 days, though I ended up just subclassing the standard Win32 dialog in the end (it can be seen in NPS 2.x).
Options: Reply | Quote

Posted by BIll on Monday, May 17, 2010 @ 10:16 PM
@nookkin
Yes, I originally wrote VBTools, OleTools. BeCubed not too active now, there mostly for support of those old tools.
Options: Reply | Quote

Posted by Alastair Walker on Tuesday, May 25, 2010 @ 1:35 PM
Just wanted to say a BIG thanks... this idea works and it is so easy to do. I was getting desperate until I read this article. Thanks again from someone who can now enjoy a decent sized screen!
Options: Reply | Quote

Leave a comment:

You may format your comment using BBCode. (More information) Your e-mail address will not be displayed publicly. Please read the Comment Rules and Tips, Privacy Policy, and Disclaimer before posting.
Valid XHTML 1.0 Strict Valid CSS level 3 Level A Conformance to Web Content Accessibility Guidelines 1.0
Web Design by Nookkin