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.
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).
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.
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.
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.