Getting proper resolution with Windows 7 and older monitor
Solution 1
Analysis
After doing a quick search, there are some other people with the same issue, most of which didn't solve it. I also found a blog post explaining how to solve the problem in Windows 2000, which basically involved doing the steps you probably did back when using Windows XP, albeit without success in Windows 7.
Monitor
I couldn't find much information at all. This is what I collected from an old DriverGuide thread:
17" StarLogic LCD Monitor (11004988)
Model M17ANA
Resolution 1280 x 1024
Display colors 16.7 million colors
Pixel Pitch 0.264 mm
Brightness 260 cd/m2
Contrast ratio 400:1
Viewing angle 140 x 125 degree
Response time 12 ms
Sync. frequency Horizontal 31.5kHz - 79.9kHz, Vertical 70Hz - 75Hz
Input Connector RGB
Weight 8.14 lbs.
This at least confirms the monitor is actually capable of displaying a 1280x1024 resolution. Still, the proper resolution isn't applied, and isn't even listed in the available modes.
Graphic card
In this case the graphic card model is an Intel Q45/Q43 Express Chipset, which is integrated in the motherboard. According to the technical product specifications:
Supports digital and analog displays up to 2048 x 1536 at 75 Hz refresh (QXGA); also supports 1920 x 1080 resolution for full High Definition video playback quality.
The video modes supported by this board are based on the Extended Display Identification Data (EDID) modes of the monitor to which the system is connected. Standard monitors are assumed.
The graphic card doesn't seem a limiting factor. These are the specific hardware IDs:
PCI\VEN_8086&DEV_2E12&SUBSYS_3036103C&REV_03
PCI\VEN_8086&DEV_2E12&SUBSYS_3036103C
PCI\VEN_8086&DEV_2E12&CC_030000
PCI\VEN_8086&DEV_2E12&CC_0300
The generic hardware IDs actually is PCI\VEN_8086&DEV_2E12
. In fact, apparently there are only generic drivers available for such cards. The installed driver version was 8.15.10.1749, which dates back to 2009, and probably was the one bundled with Windows 7. The latest version available from Intel official support page is 8.15.10.2869, released about three years later.
On a side note, looking for an updated version through Windows Update can be misleading: the system will happily assume the driver is "up to date" even when no entry was found in Microsoft database.
Extended Display Identification Data
All monitors, analog or digital, must support EDID, which contains info such as the monitor identifier, manufacturer data, hardware identifier, timing info, and so on. This data is stored in the monitor’s EEPROM in a format that is specified by the Video Electronics Standards Association (VESA).
While the EDID data structure is not exactly human-friendly, we can use Monitor Asset Manager to examine it:
Monitor
Manufacturer............. NUL
Plug and Play ID......... NUL0001
Serial number............ 1
Manufacture date......... 2001, ISO week 1
Filter driver............ None
-------------------------
EDID revision............ 1.3
Input signal type........ Analog 0.700,0.300 (1.0V p-p)
Sync input support....... Separate
Display type............. RGB color
Screen size.............. 310 x 230 mm (15.2 in)
Power management......... Standby, Suspend
Extension blocs.......... None
-------------------------
DDC/CI................... Not supported
Color characteristics
Default color space...... Non-sRGB
Display gamma............ 1.00
Red chromaticity......... Rx 0.597 - Ry 0.343
Green chromaticity....... Gx 0.316 - Gy 0.566
Blue chromaticity........ Bx 0.153 - By 0.131
White point (default).... Wx 0.310 - Wy 0.328
Additional descriptors... None
Timing characteristics
Range limits............. Not available
GTF standard............. Not supported
Additional descriptors... None
Preferred timing......... Yes
Native/preferred timing.. 1024x768p at 68Hz (4:3)
Modeline............... "1024x768" 65.000 1024 1048 1184 1184 768 771 777 806 -hsync -vsync
Standard timings supported
720 x 400p at 70Hz - IBM VGA
640 x 480p at 60Hz - IBM VGA
800 x 600p at 60Hz - VESA
1024 x 768p at 60Hz - VESA
Report information
Date generated........... 2/12/2014
Software revision........ 2.70.0.989
Data source.............. Real-time 0x0011
Operating system......... 6.1.7601.2.Service Pack 1
Raw data
00,FF,FF,FF,FF,FF,FF,00,3A,AC,01,00,01,00,00,00,01,0B,01,03,08,1F,17,00,CA,F0,64,98,57,51,91,27,
21,4F,54,A1,08,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,64,19,00,A0,40,00,26,30,18,88,
36,00,30,E4,10,00,00,18,00,00,00,FE,00,0A,20,20,20,20,20,20,20,20,20,20,20,20,00,00,00,FE,00,0A,
20,20,20,20,20,20,20,20,20,20,20,20,00,00,00,FC,00,0A,20,20,20,20,20,20,20,20,20,20,20,20,00,E
Windows stores the EDID in the registry after querying the monitor. The problem is the system thinks you have a 15.2" monitor with a maximum supported resolution of 1024x768 pixels and 68 Hz refresh rate. This is just plain wrong, and the monitor is to blame here.
Conclusion
The monitor won't report the correct information, so we have to manually fix that. There are a few ways to do it, and I'll briefly describe them referring you to the links below for additional information. It's better to have more options just in case something doesn't work properly or isn't applicable.
Intel Graphics Control Panel
While updating the old, bare-bone graphic driver which comes with Windows you'll also get the Intel Graphics Control Panel (GfxUI.exe
). Among other things, it can be used to change the screen resolution.
Custom resolution
Some (but not all) Intel graphic cards can support up to five extra Detailed Timing Descriptors (DTDs) through custom registry entries named DTD_x
which can be found in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000
. Each DTD value includes information such as screen resolution, refresh rates, and so on. The TotalDTDCount
value controls the amount of DTD supported. When it's set to 0
, the feature is disabled.
The DTD is actually a section of the full EDID, and it's just as cryptic. In order to easily change the data you can use DTDCalculator.
Correcting the EDID
There are two approaches to correcting EDIDs:
- The standard solution is to have the customer send the monitor back to the manufacturer, who reflashes the EEPROM with the correct EDID and returns the monitor to the customer.
- A better solution, described here, is for the manufacturer to implement an INF file that contains the correct EDID info, and have the customer download it to the computer that's connected to the monitor. Windows extracts the updated EDID info from the INF and provides it to components instead of the info from the EEPROM EDID, effectively overriding the EEPROM EDID.
Using Phoenix EDID designer you can extract the EDID stored in the registry, and change the settings to reflect the monitor true capabilities. When done you save the modified EDID data, and open it using Monitor Asset Manager to validate it. Then you create an INF file, and update the monitor driver in the Device Manager using the file you just created. A restart is required to apply the changes.
Further reading
- Intel Desktop Board DQ45EK Technical Product Specification
- Discovering Hardware IDs and Device Setup Classes for your Devices
- Understanding The Intel Graphics Driver Version Number
- Extended display identification data
- Custom Resolutions on Intel Graphics
- A list of Common Video Mode-Lines
- Modeline Database
- Overriding Monitor EDIDs with an INF
- How to Force DVI or HDMI Resolutions and Refresh Rates in Windows 7
Solution 2
As 1280x1024 is not the same x-y ratio as 1280x1024 and 800x600, how are you displaying them all on the same monitor? Do you have black bands while doing that?
If you wish to play with EDID profiles, you could use PowerStrip, a shareware utility that can create new custom resolutions for your monitor. You could also use it to investigate the existing EDID information.
See for example :
Custom display modes (Windows) - Powerstrip
Customize monitor resolution settings with PowerStrip.
Another possibility is to use regedit and position to this key :
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000
and change the following keys :
DefautlSettings.XResolution
, DefautlSettings.YResolution
,
then reboot.
Related videos on Youtube
Mark Ransom
Updated on September 18, 2022Comments
-
Mark Ransom over 1 year
I'm trying to connect an older monitor (Starlogic M17ANA) to a newer system with Windows 7, but the only resolutions shown are 1024x768 and 800x600. I know the monitor is capable of 1280x1024, and was running this resolution on an older Windows XP system just fine. The 1024x768 setting has some timing problems and is nearly unusable, while the 800x600 setting is far too small to be useful. I really need to get this setup to the proper resolution.
I tried changing the monitor driver from "Generic PnP Monitor" to "Digital Flat Panel (1280x1024)" but it does not change the settings available. Even the "List All Modes" button doesn't show anything larger than "1024 by 768".
The video driver listed is "Intel Q45/Q43 Express Chipset" if that makes a difference. I had the PC connected to a different monitor earlier, and I'm quite sure it was running a higher resolution just fine.
Argh! For one glorious moment tonight I was able to get the resolution properly configured by selecting the "Generic Non-PnP Monitor" driver and choosing the proper resolution. When the system went into low-power mode after a period of inactivity it switched back to the lower resolution. Now it seems no matter which monitor I select I still only get the two choices - 800x600 and 1024x768. I've rebooted a dozen times and nothing changes. I've loaded all the latest Windows updates, including the driver for the Q45/Q43 chipset and still nothing changes. Why is Windows locking me out of choices that the hardware and drivers are perfectly capable of handling?
Conclusion: I should have pointed out that this was an LCD monitor, I think some people assumed when I said "older" that it was a CRT. I now believe that the problem is specific to this model; it appears to deliver the wrong EDID information to the driver, and Windows 7 treats it as gospel. Downloading the latest driver from Intel rather than Microsoft included an extra utility that was able to extend the profile with a custom setting, which works perfectly.-
and31415 over 10 yearsWhat's the graphic card hardware ID? Which driver version are you currently using? Is Windows 32-bit or 64-bit?
-
Mark Ransom over 10 years@and31415 the adapter is built into the motherboard. There are 4 hardware IDs listed in device manager: PCI\VEN_8086&DEV_2E12&SUBSYS_3036103C&REV_03 PCI\VEN_8086&DEV_2E12&SUBSYS_3036103C PCI\VEN_8086&DEV_2E12&CC_030000 PCI\VEN_8086&DEV_2E12&CC_0300. The driver version is 8.15.10.1749 and it's Windows 7 Professional 32-bit.
-
and31415 over 10 yearsThe current driver is quite old (2009), and probably is the one bundled with Windows 7. Latest available version is 15.17.19.2869 (8.15.10.2869), which you can get from the official Intel support page. Restart Windows after updating the driver, and see whether you can choose a 1280x1024 resolution.
-
and31415 over 10 yearsThe driver version was updated successfully, right? Start
regedit.exe
, and navigate toHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000
. Check if there's any value called eitherDTD_1
orTotalDTDCount
. Download and run Monitor Asset Manager. Select the "Real-item" item from the display IDs list and copy the asset information, then upload the text to pastebin.com. Repeat the same steps for the "Registry" and "Registry-Active" items. -
Mark Ransom over 10 years@and31415 the driver version reported in driver properties is 8.15.10.2869. Regedit shows 5 DTD entries but TotalDTDCount is 0. Results from Monitor Asset Manager are at pastebin.com/XZMtc7ti pastebin.com/ih89yB4V and pastebin.com/qEatJDNZ.
-
Mark Ransom over 10 years@and31415 I tried the Intel utility that was installed with the driver and it let me create a 1280x1024 profile. Once I unchecked the "Hide modes" checkbox I was allowed to choose it, and it's working! Let's see if it will hold this time.
-
and31415 over 10 years@MarkRansom The problem is the system thinks you have a 15.2" monitor with a max supported resolution of 1024x768 pixels and 68 Hz refresh rate. That needs to be fixed, otherwise the resolution is likely to be reset again sometime in the future (e.g. after stand-by/suspend).
-
Mark Ransom over 10 years@and31415 you've actually solved my problem. Please leave an answer so I don't have to waste the bonus.
-
harrymc over 10 years@and31415: Please include in your answer the tools used, like Monitor Asset Manager. I find it interesting how you have arrived at your conclusions.
-
Mark Ransom over 10 years@and31415 I'm asked to approve about 4 different apps when I log in. The utility I spoke of is called GfxUI.exe and it's located in Windows\System32. The resolution seems to be holding.
TotalDTDCount
is still 0. Monitor Asset Manager is now erroring out when I start it so I'm unable to rerun those tests. -
and31415 over 10 years@MarkRansom You mean approve as in requiring admin rights? Out of curiosity, what's the error returned?
-
-
Mark Ransom over 10 yearsPowerstrip isn't free, it's $30 shareware. But it did point out to me the way to get 1024x768 working, by setting the refresh rate to 60hz, so it was helpful for that. Still couldn't get me to 1280x1024 so I uninstalled it. As for the aspect ratio difference I suspect that the resizing logic in the monitor simply makes the pixels non-square at the lower resolutions since it has to rescale them anyway. The difference isn't enough to be noticeable.
-
harrymc over 10 yearsPixels are never square and cannot be reshaped, which is why our monitors have their ratio. Probably the display driver interpolates the image to display, and does it well. If you have found a method that is not mentioned in my answer, better post your own.
-
Mark Ransom over 10 yearsI agree, nice comprehensive answer - this is totally worth the +50 you're getting. And for the record, the driver I had was not the one originally bundled with Windows 7 but one that I received through Windows Update.
-
and31415 over 10 years@MarkRansom I beg to differ: the Microsoft Update Catalog provides different driver versions ranging from build 1808 to 2302, but not anything older. In fact, the Intel driver is located in the
Windows\System32\DriverStore\FileRepository\igdlh.inf_x86_neutral_2d255f193700d214
folder in Windows 7 x86 (32-bit). The version reported in theigdlh.inf
installation file is 8.15.10. 1749. -
Mark Ransom over 10 yearsAll I know is that Windows Update offered me an optional update that said it was specifically for that driver. Unfortunately I don't know what the version was before the update, nor did I check to see if the update installed successfully.
-
and31415 over 10 years@MarkRansom Odd. Windows keeps every driver you install unless you explicitly remove them for good; this way you can easily roll back to a previous version if necessary. Searching
igdlh.inf
inside theDriverStore
directory should bring up all versions available.