Looking through this thread, I noticed there is very little discussion of PC CRT emulation through shaders. I realize this is because the vast majority of emulated content is 240p, but let us not forget two paragons of 400/480p content: The Dreamcast, and VGA DOS games (you could also make a strong argument for the GameCube and Wii, of course). If we’re about authenticity, I would think having shaders that properly emulate 31KHz resolutions would also be a priority for these!
Long ago, I attempted to modify CRT-Geom to output 480p-esque scanlines for use with DOSBox, along with a few others over at VOGONS. We had some success, but the result was imperfect. Nowadays we have much more advanced shaders to work with, so I set about to see if any of them were able to deliver out of the box.
It turns out a fair bit of them are! Well, to an extent, at least. It depends on how the shader deals with 400+ line content. Some, such as CRT-Easymode, show no scanlines of any kind with such content, even after disabling interlacing, so that and a few others were a no-go as they are. However, others, such as CRT-Royale, scale their scanlines accordingly when fed such “hi-res” content. The scanlines are half as thin as in regular 240p, as you would expect. My favorite so far for this kind of content is CRT-Guest-SM. For some reason, it’s the only variation of the Guest family that has no issues displaying scanlines in 480p, and it has tons of options to tweak.
So how do you go about testing this? Well, as you would expect, the easiest way would be to load a 480p game, such as anything on the Dreamcast. However, the other big category of 31KHz content is VGA DOS games. As many of you probably know, VGA DOS games internally ran at 320x200 for the most part, but in order to actually display them on VGA PC monitors, which did not accept such low-res signals (at least not at 60/70 Hz), they were line-doubled. This gave VGA DOS games their distinctive blocky, pixelated look. Of course, this was also done to CGA and EGA games running on VGA-era hardware for backwards-compatibility purposes, though that is not how they originally looked. However, by default DOSBox does not actually do this. Thus, you must first enable the normal2x scaler in the DOSBox core options. By pre-scaling the game this way, the shader will see it as 400-line content, and the scanlines will scale accordingly. Of course, you can do something similar with any other 240p content if you so wish by, for example, loading the corresponding video filter under Video settings, or perhaps by adding a simple 2x scaling shader pass.
However, there is a catch: if emulating 240p faithfully is already a challenge, how much more so 480p is, especially without a 4K+ display! On my 1080p monitor, the issue is the scanlines darken the image a good bit. I toyed with the settings on CRT-Guest-SM for a while, but in the end, the result I liked most actually had no scanlines to speak of:
Basically, I set the scanline type to 3, which effectively erases the scanlines at that scale, and the mask type to 1, which emulates the dot triad mask of a PC CRT. The image remains quite sharp, but softens the edges just enough to more or less reproduce the look of an older VGA CRT, which actually did not produce noticeable scanlines.
Maybe I need to mess with it more. I have not messed around too much with the newest shaders, after all. But I can tell you this much: I tried the same setup on my laptop with a 4K display, and the results are MUCH better! Definitely more room to work with there. Shame my graphics card is barely able to handle shaders at that resolution.
This is definitely a topic that I think warrants more discussion and exploration, particularly when it comes to DOS games. Sure, lots of people just “240p-ify” them with the current shaders, and it CAN look good, but I prefer to get closer to how they ACTUALLY looked.