Gillius's Programming

Custom CRT Resolution on NVIDIA GTX 460

I have a dual monitor setup that consists of an old 19" CRT (Philips 109P) and a 20.1" 1600x1200 LCD (Samsung 204B). I've always just managed with having different resolutions on the monitors, but one thing that always bugged me is that the pixels were different sizes if I picked standard resolutions. When you drag a window from one monitor to the other you get an odd "zoom" effect. But I always knew that CRTs don't have fixed resolutions and you can pick whatever you want. I figured out the setup to create a custom resolution in Windows so the two differently sized monitors would match up exactly.

Continue reading for the details.

Typically I would run the CRT in 1152x864, which is the next resolution down from 1600x1200, as I felt that was too small for the 19" CRT. I wanted to figure out the proper resolution for the CRT such that the pixels are the same size. That means the physical image would be the same size on both monitors -- just the CRT would have less space.

I measured the width and height of the LCD monitor at 16 x 12 inches. Both monitors are 4:3, which means a 1.33 aspect ratio. The height of the viewable area on the CRT is 10.8 inches. From here the math was simple:

CRT height / LCD height = height ratio
10.8 / 12 = 0.9

Ratio * LCD resolution height = equivalent CRT resolution height
0.9 * 1200 = 1080

Since the CRT is 4:3, we can calculate the width:
1080 * 1.333 = 1440

This results in the CRT having an ideal resolution of 1440 x 1080.

Based on the spec sheet, which listed refresh rates at a list of standard supported resolutions, I guessed that I should be able to support 85hz at this setting.

Now all I had to do is figure out is how to set this resolution in Windows. Fortunately, I found a way in the NVIDIA control panel. I don't know if there is a way to do it in Windows in a video card-independent manner. Other vendors may have similar options in their control panels.

In the NVIDIA control panel, go to Display -> Change Resolution. Select the CRT and pick customize.

CustomRes_1.png

Select the resolution you want and the refresh rate. You might have to play with the timings; I set mine to GTF and that seemed to work and get me the refresh rate I wanted.

CustomRes_2.png

In my case, the results came out quite nicely. Now when I move windows/images between the monitors I don't get a disconcerting zooming effect. Hopefully another perfectionist out there can benefit from this.