Custom Display Resolutions in XP

Having purchased a snazzy new 22" wide screen flat panel monitor and finding everything hunky dory in Windows Vista I tried the same monitor with a Windows XP machine only to find disappointment kicking down my door. When I went to Display Settings in Control Panel and dragged the Resolution slider up, the native resolution of the monitor was not there.

Now every flat panel monitor should be run at its native resolution in order to look its best - every "virtual" pixel maps to a real one (or actually a real triad of red, green, and blue) on the screen. The monitor wanted to run at 1680x1050 but my only options were along the lines of 1280x1024, 1600x1200, 1920x1080 and so on. This was disappointing because the text and images looked either squashed or stretched.

So what to do then? Well, the fix involved a little bit of registry hacking. The registry is essentially Windows' own internal database in which it keeps all its various settings. It's not usually supposed to be tweaked by humans but rather by Windows itself and if you get things wrong the results could be an un-bootable PC. Also, if you inadvertently set a resolution too high for your monitor you could damage it and/or your graphics card. So I obviously don't recommend doing any of this! You have been warned.

Always back up your registry before tweaking it! The best way is probably to capture a System Restore point - Start Programs Accessories System Tools System Restore Create a restore point. If things go wrong you can always boot into Safe Mode (hit F8 at boot time) and choose "Restore my computer to an earlier time" in the System Restore utility.

So here we go
  1. Open RegEdit - Start Run and type "regedit"
  2. Browse to HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO{the address of your primary video often begins with "23A77BF7"}\0000
  3. The Default Settings.XResolution data value is the horizontal resolution, and the Default Settings.YResolution data value is the vertical.
  4. Double-click the Default Settings.XResolution data entry, select the Decimal radio button, and in the Value Data field, enter your desired horizontal resolution.
  5. Then do the same with Default Settings.YResolution to change the vertical resolution.
  6. Exit RegEdit and reboot your PC.
  7. You should now be able to choose the required resolution.

If you're scared of tweaking your registry (and you probably should be!), there's a handy application on the web called PowerStrip which allows you similar resolution-changing functionality. However, although many on the web recommend it, I didn't find it to be of any help at all.


Petra said…
Thanks for your tip.
I had a problem with my new widescreen monitor that Windows XP stretched the height. But I solved the problem by changing the default yresolution to 640 (it was 1024 x 768 (4:3) on my old CRT) and matched the new 16:10 ratio and now it starts up correctly and changes to the default resolution to 1680 x 1050.