Retro computer monitors' shaders (CGA, EGA, etc.)

We’ve got many shaders imitating the look of TVs or arcade machines, but what about old-school computer monitors?

I hope that in this topic we will be discussing different ideas as well as providing necessary reference materials, what will lead to the creation of shaders emulating, for example, CGA, EGA, and early nineties VGA displays.

I think this is a nice reference video for a CGA monitor: http://www.youtube.com/watch?v=2b-hCFhfwc0

You can even see ghosting effect.

The problem with replicating computer monitors in shader form is that the dot triad shadow masks they used is very hard to replicate, probably harder than even TV slot masks. This is especially true considering current resolution limitations. Most people have at most 1080p displays, when in reality you need 4K or higher for accurate shadow mask emulation. There have been attempts, such as DOSBox’s RGB scaler and You Have To Win The Game’s CRT emulation, but at least to me, they only look like imitations, and cannot be otherwise because there are only so many pixels to work with. Only aperture grille TVs and monitors, such as Sony’s Trinitrons, can currently be emulated somewhat faithfully.

Other than that, well, many CGA monitors were pretty much glorified TVs to begin with, so existing CRT shaders already more or less work. Not sure if there’s already an existing monochrome shader, but it might be worth looking into, especially the heavy phosphor delay commonly associated with them. As for VGA, the closest you’ll probably get is a shader that does veeeeery slight blur, with 1 pixel-thick scanlines if desired. CRT-Geom can actually achieve this with some tweaking:

I’ve found out that people are trying to reproduce CRT computer monitors on the VOGONS message board (it would be good to look through it). For instance in the topic Old EGA or Tandy Monitor Emulation or in here: Patch & Test Build - CGA w/ Monochrome Monitor Support You can also see an attempt to recreate a monochrome monitor on YouTube.

Could you post the instructions for creating the VGA shader, please?

And what about EGA? We might think of some nice overlay borders for retro monitors too.

I’ve noticed that some older PC monitors have an etched (non-reflective) surface.

How much does it influence the displayed image? Can we simulate that via shaders?