Some monitors can do an "auto-adjust" and then won't be able to remove the banding by manually adjusting the pixel clock.
I noticed that after an auto-adjust that the pixel clock setting is "reset" to 50.
So what if I try to send the monitor a different signal that's close to the 15khz Amiga 500 NTSC signal and let it auto adjust on that to reset the midrange to 50, then manually adjust the pixel clock.
Using my cvt script called "mycvt" I hook up the VGA to my eeepc 901 and try a few resolutions.
I try ./mycvt 720 240 (which the monitor says it out of range)
./mycvt 820 240 (still out of range)
./mycvt 920 240 (monitor will lock on)
$ cvt 920 240
# 920x240 58.05 Hz (CVT) hsync: 14.86 kHz; pclk: 17.00 MHz
Modeline "920x240_60.00" 17.00 920 944 1032 1144 240 243 253 256 -hsync +vsync
Then after auto adjusting to 920x240, which resets the pixel clock to "50", switch the VGA input back to the amiga output and then I can manually adjust the pixel clock from the new "50" point to remove the banding.
I've tried this with a couple of (clk=100) monitors that I got recently, an HP 27wm, an Asus B246HL and an Asus VA24D and it worked!
Now I just have to be careful not to hit the auto adjust button!
It doesn't work for all monitors, the Gateway Kx2303 and the Acer H276HL seem to make a distinction between the different signals, remembering the settings for each.
edit: after a lot of experimentation, the Acer H276HL can lock onto "cvt 1440 245 61", the Lenovo LT2252 can lock onto "cvt 824 245 61". That seems to be close enough for the monitor to treat it as the same resolution.
That 245 and 61 seems to be a magic number, a little bit higher at 246 and a little bit lower at 244 won't work. The 61 pulls it closer to 60 hz.
cvt 1440 245 61
# 1440x245 59.87 Hz (CVT) hsync: 15.62 kHz; pclk: 28.00 MHz
Modeline "1440x245_61.00" 28.00 1440 1480 1616 1792 245 248 258 261 -hsync +vsync
So here's some pictures:
So first, let's set a workbench pattern which makes the vertical banding easier to see.
boosting the clock to 100, there are still multiple bands
switching to an Asus EEEpc running knoppix 9.1 and running mycvt 920 240
we run the auto adjust, then switch back to the amiga 500 NTSC
now you can set the clock to eliminate all of the vertical banding
Asus B246HL from January 2017
Using an iogear vga switch box (powered by usb) makes it easy to switch back and forth between an EEEpc and the Amiga 500 NTSC.
Mycvt script:
#/bin/bash if [ $# -eq 1 ] then echo one parameter given, set device to $1 declare -x d=$1 printenv d #no, child cannot modify env vars of parent but you can run it as source ./mycvt and it will work #. ./mycvt VGA1 will also work as . is an alias for source else echo $* cvt $* echo d = $d if [ -z "$d" ] then d=VGA1 echo no device specified, using $d fi a=`cvt $* | tail -1 | cut -d' ' -f2-` b=`cvt $* | tail -1 | cut -d' ' -f2` echo $a echo $b echo xrandr --newmode $a echo xrandr --addmode $d $b echo xrandr --output $d --mode $b xrandr --newmode $a xrandr --addmode $d $b xrandr --output $d --mode $b fi
No comments:
Post a Comment