Page 1 of 1

Tearing on VGA CRT through IO board

Posted: Tue Sep 14, 2021 2:20 pm
by bootsector
Hi guys!

I get screen tearing very frequently with my CRT VGA monitor connected to MiSTer through the IO board. I've never noticed that happening on HDMI though.

In order to fix this, specially in the NES and Genesis core, I switch the system type back and forth (NTSC -> PAL -> NTSC) inside the core and the tearing disappears. Is that something that could be automatized during the core initialization to make this "fix" automatic?

In time: I have the scaler enabled through VGA so I get consistent image even on cores that change the picture to 15Khz, which my monitor doesn't support.

Here are my settings:

Code: Select all

vsync_adjust=2
video_mode=1280,80,136,216,960,1,3,30,102100
vscale_mode=1
vga_scaler=1
Cheers!

Re: Tearing on VGA CRT through IO board

Posted: Tue Sep 14, 2021 3:54 pm
by FoxbatStargazer
I've had trouble with values of 1 showing up in the vertical blanking specs, especially as Mister adjusts the refresh rate down slightly from the mode you provide. Try making a mode with this site.

You might know but keep in mind that forced_scandoubler=1 is another way to get 15khz cores to display on your monitor rather than vga_scaler.

Re: Tearing on VGA CRT through IO board

Posted: Tue Sep 14, 2021 5:13 pm
by bootsector
FoxbatStargazer wrote: Tue Sep 14, 2021 3:54 pm I've had trouble with values of 1 showing up in the vertical blanking specs, especially as Mister adjusts the refresh rate down slightly from the mode you provide. Try making a mode with this site.

You might know but keep in mind that forced_scandoubler=1 is another way to get 15khz cores to display on your monitor rather than vga_scaler.
Thanks for the tip! What column should I refer to on that website? For CVT, this video_mode gave me tearing on the NES core right off the bat:

Code: Select all

video_mode=1280,80,128,208,960,3,4,29,101250
forced_scandoubler I would like to avoid as much as possible, specially for cores that switches between 15Khz/31Khz, such as Sega Genesis (Sonic 2 split screen vs non-split screen).

Re: Tearing on VGA CRT through IO board

Posted: Tue Sep 14, 2021 11:27 pm
by FoxbatStargazer
CVT is right, if that didn't help you I probably can't offer much more. One of my two SD TVs does not like 240p modelines from that site either. All I can say beyond that is try some of the standard built-in modes with numbers that may have more optimal timings, particularly one closer to the "standard" modes your monitor is probably advertised to support like 1280x1024, 800x600, 1024x768, etc. Might also help if you have another VGA source to test if your monitor is in good condition, even a cheap HDMI->VGA converter connected to a modern PC.

Re: Tearing on VGA CRT through IO board

Posted: Wed Sep 15, 2021 2:10 pm
by bootsector
I've been using, with good results so far, this setting:

Code: Select all

video_mode=1280,80,136,216,960,3,4,31,107750
Will keep playing with it to see if any tearing come up.

This was generated by the suggested website for my resolution with the "Margin: Yes" setting enabled.

I also needed to change Menu core resolution because the above gave me black bars everywhere:

Code: Select all

[Menu]
video_mode=6

Re: Tearing on VGA CRT through IO board

Posted: Wed Sep 15, 2021 5:14 pm
by FoxbatStargazer
That seems a little odd because the "margin" setting usually also increases the pixel count: 1312 and 1022. Its just kind of arbitrarily increasing the resolution based on your input settings, and adjusts the vertical and horizontal blanking to match. If you ignore the increased resolution and are just grabbing the increased blanking settings maybe that's enough; the whole purpose of them is to provide a cushion for the sync pulse, and enough time for your electron gun to physically aim itself before it starts scanning. Maybe your monitor is just a little slow and needs that bit of extra blanking.

Re: Tearing on VGA CRT through IO board

Posted: Wed Sep 15, 2021 6:18 pm
by thorr
I can't speak to changing between NTSC and PAL to fix the problem because I no longer have a VGA CRT, but I can say that every core seems to have its own video timings at different refresh rates. If you use forced_scandoubler=1 whenever possible, you are going to be running at the native refresh rates and you should not see any tearing. I am not sure if using the scaler at a fixed frequency adjusts the timing of the core so there is no tearing, or if the core remains the same and gives you tearing because the frequency is slightly off. If you have specific cases where you want to use the scaler, you can easily set up an alternate MiSTer.ini and switch between them as needed. The rest of the time, I would use forced_scandoubler=1.

Re: Tearing on VGA CRT through IO board

Posted: Thu Sep 16, 2021 4:39 pm
by bootsector
Still get tearing after my last update. That's so annoying. I will keep doing the signal region change trick (NTSC -> PAL -> NTSC) until I find some definitive solution. Will keep you guys posted. Cheers!