New CRT shader from Guest + CRT Guest Advanced updates

i really wish that guest.r could take a look at Tyrell’s CRT Shaders for dosbox, i would love to see some presets for ECE and X, mainly for old windows games and dos games that uses SVGA


Taking notes! Thanks as always master @guest.r


Adding some very subtle deconvergence and halation was definitely an improvement, I like the quite “organic” look I’m getting. I had to dial back the halation though, around 0.7 red horizontal shift and -0.7 horizontal blue, plus reduced the strength to about 0.7 as well. That’s probably because I’m using 3x to 3.5x scaling.

Some screenies:


Adding just the smallest tiniest amount of noise/film-grain will go a long way towards that “organic” look imho.

1 Like

Noise ruins the black level. The image gets that “washed out” look.

Ruins is a tad dramatic, and it seriously depends on how much noise we’re adding to the image, I’m literally suggesting just one or two notches of it. (Barely going to affect the black levels, it definitely will but w/e).

I understand what you’re complaining about as I’ve personally dealt with it myself, I just don’t care :joy:

Depends on how you do it, it doesn’t have to be.

Just tried it quickly in Photoshop with some gaussian BW noise on a mid-gray layer added with Overlay mode at 50% opacity. That leaves the blacks and the overall luminance 100% intact, it only disturbs the luminance of a few pixels a little. It’s quite nice, indeed @Syh, thanks for the tip! It breaks up the synthetic look even more, which makes sense, nothing is 100% perfect in manufacturing in real life. Now I’ll only need to find a way how replicate this with some ReShade filter as the last layer :slight_smile: Any tips? I guess some simple shader will do that can overlay any texture with pixel-perfect mapping with some PS overlay-like blending.


I believe they meant the shader option for noise. If it’s available in the winuae version, of course.

0 noise. The black around the shader output is the same as the black inside the shader output:

Noise set to 0.3. The black inside the shader output is not really black:

Some people like this effect though. It makes the image look similar to what a CRT looks when you view it in a lit room. (The light reflects off the CRT screen and it’s not black anymore.)


Cheers, it’s not bad, but I find the noise a bit too much personally. What I’ve done in literally 2 minutes is:

  • create new layer in PS, fill with 128 gray
  • Filter -> Add Noise -> Gaussian / 4% / Monochromatic
  • Blend 40%, Overlay blend mode

That’s it, I find the effect quite nice. Should be dead easy to do in a ReShade shader (no, the WinUAE shaders don’t have built-in noise functionality). The PS blend modes are documented here, it doesn’t seem too heavy calculation wise, it just screws around with the sRGB pixels like half of the PS blend modes… I might even implement myself if I don’t find something that does it already.

(Target > 0.5) * (1 - (1-2*(Target-0.5)) * (1-Blend)) + (Target <= 0.5) * ((2*Target) * Blend)

1 Like

Lo and behold, good things come to those who can use Google :sunglasses:

Overlay formula

A texture based Gaussian noise sampler

Now it only takes some hackery :toolbox: :hammer_and_wrench: :zap: :biohazard: :bomb:

I’m pretty sure Guest’s version simply just adds the noise, hence the raised black floor. So maybe overlay blend mode could be made an option (I used overlay blend mode a lot when dodging/burning photos… if the overlay layer is “centered” around a 128 grey then it maintains the luminance in plain old RGB mode even).

I asked @HyperspaceMadness for an Overlay blend mode in the Mega Bezel way back when and he ran into a roadblock. (I’m not sure where.)

If you could make it work maybe it would solve some masking issues I’m having with the HDR shaders.

I’ve mentioned this several times before, and this is from experience and testing.

You can’t illustrate GDV noise using screenshots or any freeze frame, including pausing the emulator due to its temporal nature. The image wouldn’t look anything like it does when the game/emulation is running.

You might instead have to use video clips with the proper encoding settings so as to be able to preserve the fine details of the noise or maybe a photograph of the screen that has the appropriate shutter settings in order to capture all phases of the noise.

Any other way will be presenting an image that is most likely missing data that will be displayed in subsequent frames or were displayed in previous frames.

For some strange reason I’m not noticing this raised black floor at all in any of my presets, of which the majority use a tiny amount of GDV Noise.

Perhaps I’m doing something “wrong” ?

I was just showing the black level issue. Not the noise itself.


the black level (and/or general color quality) is why I prefer the noise to happen in the texture coordinate instead of just adding/multiplying/whatever random values per pixel. This kind of noise more closely mimics the movement/“sparkle” I see in the scanlines of my own CRTs. I think doing luma-only noise (simulated film grain) usually looks better than RGB noise, too, unless you’re trying to imitate actual static/interference.

See the noise I added to crtglow to help with the moire as an example of the texcoord-type noise (enable curvature and then set both x/y values to 0.0 and the noise to 0.5-0.75; the default 1.0 is too heavy for a flat image IMO)


Yeah I think it would be relatively straightforward to apply the noise like that with a middle gray, and have everything under middle applied as darkening and everything above adding white


I really meant illustrating anything involving GDV Noise. The image in the screenshot or paused emulator wouldn’t really be representative of what the user would see, including black levels.

Hello, a few days ago I switched to glsl from slang. Now I stumbled upon the gdv-mini shader. Is the concept behind that shader to be even faster than the gdv-fast preset?


I’m not sure if that was the original concept or just a side effect but you can probably ask @DariusG as he’s the person behind it.

1 Like

Yeah it’s a lot faster, I tweaked it so it works fast enough on some weak devices I had around, without dropping much features (curvature, masks, etc).


Alright. Thanks for the modification/sshader/preset :slight_smile: love it.