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
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
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.
Comments (67)
I may do this to my Monitor :D
i can not operate 800x600 in vista or windows 7. i cant play games;;;
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...
But running the game I needed in 640x480 @ 100hz it runs perfect, **** W7 or nVIDIA not making them compatible.
Thanks!
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!
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)
:)
You are awesome, just saved me about $100
You are awesome, just saved me about $100
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.
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.
4:3 monitor. Now, I can use 2600x1950.
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.
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.
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).
Yes, I originally wrote VBTools, OleTools. BeCubed not too active now, there mostly for support of those old tools.
Also, uncheck the "Hide modes that this monitor cannot display" checkbox. That might be affecting it, because every single monitor with a VGA connection is required to support 60 Hz refresh rates.
Will your the man, thanks for that info. I been looking for a solution for Samsung T240HD EDID issues(it a 16:10 LCD with only ONE usable 16:10 resolution). Your tutorial hit the spot. Thanks man, you save me a lot of headaches.
If you're using William's method, it should work with most video cards on Windows Vista/7, but it ultimately depends on the video card's driver. It doesn't hurt to try William's method since it's not permanent. If it doesn't work, you can always revert it and try my method.
If that's the case, you're probably getting the "Out Of Range" message because your video driver is defaulting to the maximum refresh rate of the video card (which could be 75 Hz, 85 Hz, or more). Force your refresh rate to 60 Hz and see if it works.
If your monitor officially supports 1680x1050 but you modified the cable and now see 1920x1080, then it obviously has a very low chance of working. There's a reason they set its EDID that way at the factory -- the monitor only has X physical pixels and you're trying to feed it more pixels than it physically has.
My modification isn't intended for increasing maximum resolution; it's intended for allowing officially-supported modes to be enabled if Windows is being uncooperative.
my monitor is philips 107E , CRT..
at 1024x768...wanted to make it 1024x768@100hz on win 7 ultimate, cause on xp worked on w7 didnt...
Which video card do you have? NVIDIA cards have extensive options for custom resolutions, where you can specify all of the details and get it to work again.
because i get that error, on my other PC , my xp one, which worked fine...
my video card is gainward gts 450 on win 7 when the proplem originated, and fx 6200 on xp where the problem persists,
yes my pixel clock shows 0 in pheonix edid editor because it asekd me to put a value between 0 and ? and i didnt get to see the default one so i left it 0
and now each time i use pheonix edid i get the screwy values , even dough i delete edid from registry
I got hopelessly stuck on 60 Hz with my new Asus 5770 and old Iiyama CRT monitor.
The workaround with the cable and installing the newest drivers from AMD (11.2) did the trick for me. Again: Thanks !!
Computer #1 is Windows XP and computer #2 is Windows 7. It works like a charm! Thanks so much for this tip!
I was struggling with my D-Link 4-port KVM Switch (DKVM-4K) connected with my PC and Laptop both running Windows 7 Enterprise 64-bit operating systems. When I switch KVM to laptop, the display used to go off frequently accompanied with annoying sound, resolution warning, et. al.
I took the chance and removed pin# 12 of the VGA extender cable connected in between my ViewSconic LCD monitor and the KVM switch.
Now the problems are gone!
I just bought a new graphic card today, and I was having problem on my CRT monitor (yeah guys, I still use CRT monitor, go f*ck yourself) saying it's "Over Frequency"
I took the risk of doing this.
Took me 3-5min. to pull out the pin.
And hell yeah! After that, plugged the monitor in then the "Over Frequency" problem was gone. Thx for this!
Have a look at the M$-Remark found here:
http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/unable-to-c hoose-more-than-85hz/259e7e31-9120-44b6-8459-64bb82c9f4d7
Is it really the case that 64-bit OS (Vista & W7) do not allow more than 85Hz?
What would be the reason for that?
Btw: I remember a VGA-VGA-Adaptor that was coming with the first LCDs ... IIRC for the same thing: overriding some signal wiring in the cable ...
If the cable is permanently attached and you don't want to risk messing it up, buy one of these 1.5ft VGA extension cables for a few dollars and mod it.
My resolution was working fine before, but I did this hack anyway to work around a KVM switch problem, and many forums suggested this would help. It did, indeed, but produced a problem quite OPPOSITE to the one you tried to solve.
My KVM problem is solved, but now I CAN'T use the resolution I like. Both my video card and screen support 1920x1080, but when running Windows 7 I can only go up to 1600x1200, and when running Ubuntu 10.04 only 800x600 are available.
One computer can fix the issue on Windows 7 by using the nvidia driver to force it to 1920x1080, but the other one has a S3 graphics card. It worked before, but after restarting the computer I can't get back to 1920x1080.
ANY SOLUTION/IDEA?
Thanks!
It's acting this way because it does not have a valid EDID to base its settings on (since we intentionally disabled it). Linux especially seems to have issues in this regard.
Wanted to verify the ramifications and here I'm on this site reading your article and getting some sense of security.
I guess with XOrg, "IgnoreEDID" in xorg.conf should help for all CRTs?
I suggest you do this with a Patch cable so you don't wreck your monitor.
My moms 19" LCD died and turned out to be unfixable (LCD controller board trashed.. dead to the world). Replaced it with a 17" Samsung Syncmaster 171MP LCD Monitor / TV combo (1280x1024 native res), but thanks to the EDID bullshit, it only works with a max. resolution of 1024x768 at 75Hz, which it doesn't like at all. For some reason, it gets detected as a Syncmaster 530/531, which is a 15" model O.o
The image also has wavy lines in it as it's supposed to run at 60Hz refresh rate, but you can only select 75Hz
It's pretty much a junker TV/Monitor (TV tuner doesn't work, sometimes locks up if you accidentally end up in TV mode), so I've decided to do a permanent "fix".. opened it up and simply cut the PCB trace going to pin 12 of the VGA connector. Worked perfectly :)
I can now go up to 1280x1024 and set the refresh rate to 60Hz.
I'm quite suprised how good the picture looks and how many image tweaking settings it has. Most modern LCD monitors don't have a setting to *not* stretch the image to the full panel size if the resolution is lower than the native one. This one does have 2 modes for that :O Stretch to width, but keep aspect ratio (black bars at top/bottom for 1024x768, but full screen width) or "original", which just displays 1024x768 or lower without stretching at all.
The pin removal mod will help you only in the situation that Windows screws around with your settings and sends the wrong mode to the monitor despite the correct mode being selected -- if your monitor is displaying "Out of Range", it's most likely the monitor that doesn't support it.
Wow,
William, this is great!!!
Worked like a charm!!!
Almost gave up, I was so frustrated nnot having a solution and already thinkin' to buy another LCD monitor!
Thanks to you, my 940bw, is up and runnin' like new or like it supposed to run, normally.
BIG THANKS!@MadK9 I'm gonna try nokkin method also on my CRT screen, seems simple method and efficient apparently...
Without you guys... don't wanna think about it!!!
Saved my a bunch!!!
GODD JOB!
The pin is removed completely . the tv is not waking up anymore coz of that, but the resolution doesn't appear as op described.
OK. My `old` HDTV (Sharp AQUOS LC32P50E) only supports 960x540 res. official from Sharp support. Strange I know but thats the bottom line.
How can i get my Dell 755 pc to output that screen res? I had a play in Powerstrip but to no avail. My graphics card (Intel q35 chipset) supports res` higher and lower but this option isnt available. Am i in limbo?
Thanks
There is no a word on this subject. In Windows 95 the virtual screen (pan and scan virtual desktop) is possible. The desktop resolution can exceed the monitor maximum resolution and the maximum resolution generated by a graphic card, while the monitor can work on any of supported resolutions. This was removed from windows 98 in order to make users buying more high resolution, expensive monitors, and partly returned in windows XP due to laptops. However in XP the desktop size can not exceed the graphic card ramdac ability and screen must work on its highest resolution.
But the ability is present in any VGA compatible graphic card. So, in any system the virtual screen would be possible.
Leave a comment