Old monitor style shader (and overlay?) (for DOSBox PURE)

Scanline Classic has presets for VGA and higher resolutions. I recommend either vga.slangp, svga.slangp, or xga2.slangp for VGA games. The higher resolutions have a stronger scanline effect.

For Hercules you’ll need one of the many monochrome presets which I haven’t finished yet. However you will find an example monochrome preset in the demo folder labeled ‘TheMatrix.slangp’. You can also use bwtv but that wouldn’t be period accurate.

For EGA you can use any of the NTSC presets or a VGA preset as VGA was compatible with EGA and RGB CGA.

For CGA composite you’ll need to use an NTSC preset with the appropriate composite emulation. I think DOSBox supports this in the emulator so you wouldn’t need to add an NTSC modulation shader but I’m not sure.

Note that VGA is only compatible with EGA and RGB CGA (NOT composite). EGA was compatible with CGA. Hercules wasn’t compatible with any of these (it was for monochrome, business monitors). You won’t find a shader that can accurately simulate all of them at once.


They are fantastic, it would be interesting to have it in Retroarch because of the huge amount of games that PURE has. If I noticed them a little slow, and it seems to me that the vga and xga were getting slower and slower.

Yes, VGA is compatible with EGA, but the idea is to show how the monitor looked like, at that time, and as PURE supports them, well, it would be something like that. I seem to remember that EGA was more blurred and washed out than VGA. It was like comparing Hercules with MDA, and the VGA mask was Slot. Plus the old monitors flickered a lot.

I didn’t get anything from EGA’s NTSC in PURE, but I did notice that the Hercules graphics can select between B&W, green and amber, TheMatrix shader has amber pre-assigned.

1 Like

The difference between VGA and EGA/CGA is primarly that VGA runs everything in 31 Khz, which means double-scan thin scanlines for low-res games and higher refresh rate (60 vs 70 hz). Dosbox will automatically do this when you set it to VGA. CGA and EGA just use standard scanlines in 200-line modes, for EGA’s 350px res, they would naturally be thinner.

VGA monitors are typically shadow (dot) mask, but you can also find the other variants. EGA monitors were already pretty sharp (common dot pitch 0.31mm for standard sized crts) but there were also worse ones (dot pitch 0.39mm and above). In TVL speak, this means about ~450 lines upwards.

You can use Guest’s shaders for this, but how effective it can be emulated depends on your host display.


I also like the VT220 shader for DOS stuff. Its scanlines are not nearly as good/accurate as Scanline Classic’s, but the in-room lighting effects/shadows are pretty convincing and the programmatically drawn bezel is nicely yellowed-beige :slight_smile:


Thanks for trying it out. The system requirements are certainly high, and optimization work needs to be done.

If you have time, try basic.slangp. It uses a single pass shader that cuts out a couple features. I’ve been wondering how they compare.

P.S., I’d also appreciate if you can post screenshots here or in the shader screenshot thread, to see if everything looks right.


@anikom15, how can I use your shader to output double-scan scanlines?

1 Like

You need to set LINE_DOUBLER to 1. Any content that is emulated by Retroarch with less than half the vertical resolution specified in MAX_SCAN_RATE should then be double-scanned.

1 Like

With a viewport below 1.1, the scanlines become thinner and appear different in thickness.

Maybe this feature is better with integer scale and monitor above 1080.

For some reason neither the vga or svga presets work for me from scanline_classic. I load the shader and i see the shaders loaded in the list, but all i get is a filtered image with no scanlines in DOSBox Pure.

DOSBox Pure, video options SVGA, svga.slangp and set line_doubler to 0.

1 Like

It is a good option, you get very interesting results, although it is not very faithful to the time.
The monitors of that time were very different from a TV, had its own personality, and the mask was very important. The memories are not reliable, but I have clear that they were much more, dense? I do not know the technical term, but they looked sharper and the color was more solid.

I can’t get good sources on the internet, but some examples I have obtained may serve as a reference.

A good source of CGA is shown in this video from The 8-Bit Guy.

The monitors were tinted.

In this article in Vogon, you can see the Hercules, CGA and VGA mask on an MDA monitor.

One thing I could not get out of my mind was the famous anti-static shields. The last ones were glass, but the first ones were a metal mesh, which I suspect is to blame for 99% of the baby boomer generation’s blindness. This is going to look great in an overlay. :slight_smile:
Captura desde 2023-05-07 17-10-56

Thanks to you, tonight I test, although the machine is not the most optimal (it is old), I can have references if it is well optimized or as it looks, I load heavy shaders in the middle of the frame, that’s how I’m guided.
I think the important thing is that it is light, or if you think, a fast version for low resource systems and a super optimal one. If you need these references, I’m looking for more.


I like this shader, it has a retro monitor style, and the metacrt too, I’m trying them all out, I wonder what the future may hold for 3D shaders?

while super-cool, I don’t expect the metaCRT concept will take over any time soon just because it’s so demanding and fragile. It’s a pretty amazing shader, though :slight_smile:

Thanks, that’s a good, natural image. I have only achieved approximations, with design or illustration work.
I for one found this one, lost in the depths of the forum. Classic CRT Collection - Overlay Pack. There are too many, we need a catalog or something with categories so they don’t get lost.


Can you take a screenshot?

Unfortunately, DOSBox has its own scaling which can interfere with the shader’s output. This may be what’s causing the issue. If you post a screenshot and your DOSBox settings I can take a look at what’s going on. What’s your screen resolution?




DOSBox Pure: VGA


Integer Scale ON

Integer Scale Overscale ON

Aspect Ratio 4:3


Focus 100%

Viewport zoom 1.1

1.1 200%

Viewport zoom 0.90

0.90 200%

1 Like

That shader is good, but it is more of a sample, it is not optimized, the 3d models have many polygons and the sphere consumes, it has two diffused illumination focuses plus environment illumination, if it is optimized possibly it will reach an 80% of speed.

If I give you the 3d model, you do that? We can start with a totally flat model, low poly to test.

no, it doesn’t use an actual model. each “model” has to be built via a weird mathematical technique called “raymarching”. I don’t know much about it aside from the concept.

Thanks for the feedback. For now, try keeping zoom to 1.0 and using UNDERSCAN instead. Let me know if that looks better.