I'm trying to connect an older monitor (Starlogic M17ANA) to a newer system with Windows 7, but the only resolutions shown are 1024×768 and 800×600. I know the monitor is capable of 1280×1024, and was running this resolution on an older Windows XP system just fine. The 1024×768 setting has some timing problems and is nearly unusable, while the 800×600 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 (1280×1024)" 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 – 800×600 and 1024×768. 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.
Best Answer
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:
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:
The graphic card doesn't seem a limiting factor. These are the specific hardware IDs:
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
While the EDID data structure is not exactly human-friendly, we can use Monitor Asset Manager to examine it:
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 inHKEY_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. TheTotalDTDCount
value controls the amount of DTD supported. When it's set to0
, 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
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