Overdriving CRT Monitors

From Mark Furneaux's Wiki
Jump to: navigation, search

In many cases, CRT monitors can be fed signals that exceed the resolutions specified by the monitors internal EDID.
Warning: It is possible to physically damage or destroy monitors that do not have built-in safeguards against overdriving. You have been warned.

Determining the Possible Resolutions

The maximum resolution is determined mostly by the horizontal sync frequency, measured in kilohertz. This speed is set by the yolk's intrinsic ability to move the electron beam around inside the tube. More precisely, it is limited by the parasitic inductance of the deflection coils. To get a rough estimate of the maximum resolution, take the maximum horizontal sync frequency in hertz and divide it by 63. This is roughly the maximum vertical resolution of the monitor. It may be a few tens of pixels greater or less than that number. This is a simplification of the equation (HorzSync)/(VertRes*1.05)=VertRefresh and assumes a nominal 60Hz refresh. The uncertainty comes from the fact that the VBlank duration is only assumed to be 5% and the refresh can vary by a few tenths of a Hz. Once you have a vertical resolution, find the largest standard resolution that is less than that and has the correct aspect ratio.

Linux

NVIDIA

All changes are made in /etc/X11/xorg.conf.

In the Device section, add the ModeValidation option:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 750 Ti"
    Option         "ModeValidation" "AllowNonEdidModes, NoMaxPClkCheck, NoEdidMaxPClkCheck, NoMaxSizeCheck, NoHorizSyncCheck"
EndSection

These parameters allow X to allow you to apply resolutions it would normally believe are not supported.

Restart the X server by logging in and out or restarting. You should now be able to select resolutions in nvidia-settings that are beyond the bounds of the monitors EDID. Select the desired resolution, apply it, and make sure the monitor works correctly. If unsure, revert to a lower resolution. Warning: It is possible to physically damage or destroy monitors that do not have built-in safeguards against improper resolutions, only apply resolutions that seem doable by the monitor.

AMD/Intel

Create /etc/X11/xorg.conf if it does not exist already. To do this, log out and drop to a TTY by pressing Ctrl+Alt+F1. Login and then run:
# service lightdm stop

Running:
# X -configure
creates a new file called xorg.conf.new and saves it in the current working directory.

Move that file to its proper location by running:
# mv xorg.conf.new /etc/X11/xorg.conf

In the Device section, add the ModeValidation option:

Section "Device"
	Identifier  "Card0"
	Driver      "radeon"
	BusID       "PCI:1:0:0"
	Option      "ModeValidation" "AllowNonEdidModes, NoMaxPClkCheck, NoEdidMaxPClkCheck, NoMaxSizeCheck, NoHorizSyncCheck"
EndSection

These parameters allow X to allow you to apply resolutions it would normally believe are not supported.

Restart the X server by restarting or running:
# service lightdm start

Now add the desired resolution to xrandr's list of supported resolutions. To do this, create a new modeline by running:
$ cvt width height refresh
and replacing width, height, and refresh with the desired parameters, e.g. $ cvt 2048 1536 60.

Append the output following the word "Modeline" to the following command:
$ xrandr --newmode modeline
for example:
$ xrandr --newmode "2048x1536_60.00" 267.25 2048 2208 2424 2800 1536 1539 1543 1592 -hsync +vsync

Next, add the mode to the desired video output. The available output names can be found by running:
$ xrandr

And the mode can be added by running:
$ xrandr --addmode VGA-0 2048x1536_60.00
assuming the video output is VGA-0 and the mode is 2048x1536_60.00.

The mode can be enabled by running:
$ xrandr --output VGA-0 --mode 2048x1536_60.00
assuming the video output is VGA-0 and the mode is 2048x1536_60.00.

Make sure the monitor works correctly. If unsure, revert to a lower resolution. Warning: It is possible to physically damage or destroy monitors that do not have built-in safeguards against improper resolutions, only apply resolutions that seem doable by the monitor.

If everything works correctly, the settings can be made permanent by adding 3 of the above commands to ~/.xprofile:

xrandr --newmode "2048x1536_60.00" 267.25 2048 2208 2424 2800 1536 1539 1543 1592 -hsync +vsync
xrandr --addmode VGA-0 2048x1536_60.00
xrandr --output VGA-0 --mode 2048x1536_60.00

This will apply the resolution on login.

Windows

Windows 7 and later do not allow a monitor driver to override the monitor's internal EDID. Therefore the easiest way to override the EDID is to block it entirely. This can be done in one of two ways.

The first is to remove pin 12 from the VGA 15-pin connector. This blocks the I2C data from the monitor.

The second is to use a VGA 15-pin D-SUB to 5 BNC cable, should your monitor support it. This will ensure not only the highest video fidelity at high resolutions, but since the 5 BNC cables do not transmit any digital data, there is no EDID information provided to the computer.

Once the EDID is blocked, in Display Properties, click "Detect Displays". Select "Another Monitor Not Detected" and change the display mode to "Try to connect on VGA". Once applying the settings, you will be able to select any standard resolution up to 2560x1600. Warning: It is possible to physically damage or destroy monitors that do not have built-in safeguards against improper resolutions, only apply resolutions that seem doable by the monitor.