New CRT shader from Guest + CRT Guest Advanced updates

I’m not seeing anything in either Nvidia control panel, windows settings, or retroarch settings and I can’t think of anything else.

In Nvidia Conrtol Panel 3d settings are set to “Let the applicatacton decide”, Resolution is set to “3840 x 2160 (native)”, Color settings are set to “reference mode” and I set scaing to “No Scaling” just to be sure. In windows settings scaling is set to “100%” for both apps and text.

I seem to have everything set up to keep things outside of the application from interfering. I’ts been consistent across 2 computers 3 displays and I don’t know whats causing it.

This actually still sounds pretty amazing considering all the options there are for adding more black (although, I guess they’re not quite the same as royale’s contrast setting).

This started because I requested a CMY mask. We went into color managment because I had to explain why. If you want to make a dedicated thread, however, it sounds like it could become a great resource.

2 Likes

I updated the ReShade shader with a new saturation implementation and brightness control. As usual, you can get the updated version here:

When i find some more opportunity i’ll probably update the mask options to be on-pair with the new guest-advanced shader. I belive it will be much more versatile with the update. :grin:

7 Likes

Awesome! I’ve been playing with it for the last 15 minutes and they work great! With saturation 1.17, contrast 0.8 and brightness 1.05 I’m getting this very nice vivid “pop” that I loved on my Philips monitor and no VGA monitor could replicate that for some reason. I’ll update my article in the coming days (I advised people not to use the saturation control because it’s broken).

Looking forward to it! You keep me busy, that will probably necessitate another article rewrite :stuck_out_tongue:

2 Likes

I added another version to my WinUAE shader github. With some improvements now almost all guest-advanced mask features are present, together with curvature option. Maybe i could add deconvergence too, but probably not ‘today’. :grin:

I would be glad if you test it a bit, mostly for driver compatibility.

Here is also the description of present masks:

7 Likes

@guest.r Tip: when you want to post fixed-width text, to avoid annoying highlighting detection, use the “text” tag for the code block:

```text
blah blah
```
3 Likes

Don’t forget this one:

1 Like

It’s an automatically formatted quote of a formatted text. I don’t mind the highlights. :wink:

Dunno about this, needed fmod(x,y) call failed to compile with ReShade, so i removed it for now. I could write the function by myself, maybe at some later time.

1 Like

Excellent, I gave it a good workout in the last two hours and all the features work flawlessly on my NVidia RTX 3060, zero issues. I don’t care about curvature stuff personally, but some people might find it handy. I really like the new halation and separate dark and light pixel controls for the slot mask. I tried all mask variations and I’m still finding the simple magenta/green mask (type 0) combined with the separate slot mask to work best for my purposes (C=1084 monitor emulation at 3x-3.5x on 1080p). With the aid of the new brightness and colour controls in the colour shader, I was able to make some subtle but important improvements to my previous preset, namely better control of bright highlights without strange artifacts and zero luminance loss compared to the raw image. So great additions, thanks for updating these! :smiley:

Attached an example for you to see where my preset stands now. I’ll wait a bit with updating the article as I have a feeling you’ll eventually port the deconvergence too, and that will bump the realism up a notch again… so I’ll wait for that :stuck_out_tongue: (hint, hint… :blush:)

6 Likes

Really nice screenies. I would like to add that a nice shadowmask setup could work with mask 10.0 and mask shift of 2.0. Mask 10.0 is a bit coarse for 1080p, but looks really nice with mask shift.

As promised, i added deconvergence to the WinUaeMaskGlowAdvanced.fx shader. Works really nice and does not interfere with masks, on-pair with the current guest-advanced shaders. It’s quite simple to setup, a good start for example is horizontal red to 1.0 and horizontal blue to -1.0. Ofc. many combinations are possible.

The shaders for WinUAE and ReShade can be found here:

5 Likes

Great! You’re doing God’s work! :smiley: It makes a nice difference in homeopathic amounts like you suggested. The penny dropped just after about 30 mins of tweaking that in fact I also need to increase the sharpness in the shader to compensate, otherwise there will be too much blur going on…

Indeed, I tried it and I think I prefer it to my previous method now. The only problem is that it’s more prone to moire in the lightest shades when anything is added to it (extra brightness with colour shader, or even just bloom or halation). Somehow it’s much more sensitive than my previous mask 0 + slotmask method.

For the record, this is my shader chain:

CRT-A2080 -> WinUaeMaskGlowAdvanced -> WinUaeColor

I think the problem is, at least with brightness and colour adjustments in the colour shader, that it disturbs the masks & scanlines too much. I’m quite sure this would be the ideal chain:

Brightness/Contrast/Saturation (on the raw image) -> CRT-A02080 -> WinUaeMaskGlowAdvanced -> WinUaeColor (profile only)

And indeed, if I raise the brightness using the “Brightness” control in WinUAE’s Display panel, then there’s zero extra artifacts, which makes perfect sense. It’s a shame because I really like this new Brightness control… But like you said, we’d need a better multipass shader architecture in WinUAE to be able to move the ReShade stuff into WinUAE with total control over the order of stages.

Anyway, not complaining, I can still obtain good results with this workaround :slight_smile:

2 Likes

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

2 Likes

Taking notes! Thanks as always master @guest.r

5 Likes

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:

4 Likes

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.

2 Likes

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.)

2 Likes

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)

https://www.deepskycolors.com/archivo/2010/04/21/formulas-for-Photoshop-blending-modes.html

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).