New CRT shader from Guest + CRT Guest Advanced updates

Lovely screenshot @guest.r! New default settings in the making?

I use whatever I can that is available to me in order to get things to look right. If there’s something wrong with Gamma_Correct and it’s fixed, I’m afraid it’s going to break all of my presets. Lol

@nfp0,

Maybe you can post some screenshots/photos of your screen along with your settings to show us what you’re seeing and maybe that might help in getting things where they need to be.

Sometimes too much of a certain setting can use up all of your headroom, then you can’t adjust another setting.

Sometimes we might boost multiple settings that all do some similar things creating clipping and stuff like that.

Maybe something needs to be lowered to create some headroom.

Feel free to share what your goal is and we might be able to assist you in reaching there.

2 Likes

Not really, no. Just an example where gamma correct might be needed and is applied in larger ammount. The implementation of gamma_correct didn’t change since beginning though. Always worked as now.

With ntsc composition gamma correct might indeed amplify the ringing from horizontal filtering. Ringing is nice, because it creates local contrast, but it might be tuned down a bit with these situations.

3 Likes

Indeed I don’t see any ringing in your picture. Maybe it only manifests on slot masks? How much Gamma Correct and Boost Brighness are you using for that screenshot?

Yeah, I really need some help. Thank you guys! I’ll try and explain it as best as I can.

For reference, here’s the original picture:

Here is an example of an NTSC 4K slot mask base preset with all gamma settings at their defaults:

#reference "crt/guest-advanced/crt-guest-advanced-ntsc.slangp"
quality = "0.000000"
ntsc_sharp = "-8.000000"
mask_bloom = "0.950000"
gsl = "-1.000000"
shadowMask = "12.000000"
maskstr = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "7.000000"
double_slot = "3.000000"
mclip = "0.000000"

As we can see, the colors are over-saturated and the picture is overall darker. This is because the triad mask and slot mask makes things darker on the low end, while bloom keeps things bright at the high end.

We then increase Gamma Correct to try and compensate for the loss of gamma. The previous preset with a value of Gamma Correct of 1.6 gets us this picture:

Mario gained a lot of ringing around him. And the sky is still over-saturated compared to the original.

Here’s another comparison:

Original:

And the above preset with Gamma Correct at 1.6:

As you can see, the low range is way too over-compensated compared to the original, but if I lower Gamma Correct, then the midrange will become darker.

This only seems to happen with strong masks and slot masks, because the base crt-guest-advanced-ntsc.slangp has good gamma tracking at default settings.

That’s weird. The picture should be the exact same in both drivers. I’m on Linux, so I can’t test DirectX, but thanks for the suggestion anyway!

Looking forward to it! I want to see how you handle gamma.

That might help! :slightly_smiling_face: What parameter should I use to reduce ringing?

2 Likes

@guest, looking at the first screenshot, small vertical white lines appear in the sky.

I reduced the “Scanlines Shape Bright Pixels” option to 0.70 and the strokes disappeared.

Is this the correct way to fix it?

1 Like

Are you sure you want this at 0?

I leave this at the default 0.50 because it messes with the bloom in an undesirable way.

Also, why are you using Mask Bloom with a Slot Mask preset? You can probably try the regular Bloom for Slot Mask.

I don’t use this particular shader, I use HSM Mega Bezel Reflection Shader which has several other shaders integrated. In addition to that I use custom Blargg NTSC filter presets for my NTSC effects so I won’t be 100% familiar with the behaviour and even the names of some of the Guest-CRT-Advanced-NTSC settings that I’m seeing here.

To me the gamma doesn’t seem too far off from the original considering 100% Mask settings are being used.

I wonder what @Nesguy or @sonkun might have to say since they are much more experienced with this particular implementation of the shader than I am?

1 Like

My approach to moire mitigation is, “By any means necessary”.

Whatever works.

2 Likes

A lot of discussion here regarding the mask arrangement , I’m not as versed on the subject as the more experienced folk here but I can’t help but to notice how some crt displays has incredibly crisp mask and quite subtle non-distracting scanlines, all while maintaining somewhat close colors to the raw pixelated image

imgur album

https://imgur.com/a/9PMmemR

1 Like

You mean like this?

Mask bloom works better with increasing the saturation a bit, but you can compensate with at least 3 mechanisms:

  • change the color space
  • saturation
  • ntsc saturation

It’s a part of fine-tuning your preset and i generally don’t want to estimate auto-corrections, because they might become something stubborn and hard to deal with.

Gamma correct is excesivelly used to correct brightness, it’s purpose is to improve contrast. There are other mechanisms to boost the brightness:

  • early brightness control
  • ntsc brightness
  • post brightness
  • bloom distribution
  • mask gamma (with mask bloom)

If you crank gamma correct up too much withour a proper need, it will also destroy contrast. It’s not a magic wand tool lol. :smiley:

It’s mostly in the filtering section of the parameters, but there should not be this much of an issue with it if you use other means to set brightness and contrast.

It’s a sort of problem where the scanlines interact with the slotmask. As you mentioned it, milder scanlines help. Usually a display with greater resolution also. It’s unavoidable though, maybe a clever use of integer scaling mitigates the problem, but not with all combos of input and output resolutions.

4 Likes

@guest.r

Hello BOSS thx very much for all your work…

maybe can be good in the future to have a kind of OPTIMAL settings by default for 1080p and one for 4k. .??

i don’t know if it’s possible for you ?

thank you again because your shader is awesome… and every people here seems to be very happy.

1 Like

Thanks for the advice :grin:. But there’s something I’m doing wrong and can’t get better image than the posted above of Super Mario 64 .Can you help me with the mclip? I use it at 100% because it looks almost the same, but I can’t make the horizontal scanlines the same, no matter how hard I try or I shouldn’t use mclip ar max settings?. I think if I solve that, I will already got it to look the same. Thanks for your patience and comprehension. :sweat_smile: New CRT shader from Guest + CRT Guest Advanced updates

2 Likes

Can’t get better than this… Shall I post my settings, and see if you can help me? :pensive:

3 Likes

What’s the vertical resolution, you’re running your N64 Core at? If it’s 240p, you’ll get visible scanlines, if it is 480p or in other words if you’re upscaling the internal resolution somewhere, you won’t get clearly visible scanlines.

I already tried early brightness control but it clips immediately as soon as I raise it a bit, so I can’t make it useful.

Post brightness has a weird effect where it hides the scanlines in the mid-range, the same way as Bright Boost Dark/Bright Pixels do if I crank them up too much. I don’t know why this happens, so I’ve been avoiding those settings.

Bloom distribution helps a bit, but it’s just a small amount of how much brightness needs to be corrected.

But thanks for the help! :slightly_smiling_face: I’ll try to control saturation with the controls you suggested and keep fiddling to try and calibrate brightness and gamma.

I don’t understand the purpose of mclip. It doesn’t change anything in my picture until the moment where it starts clipping the highs to show the mask. Clipping completely ruins the picture so I don’t know what it’s meant to be used for. I also saw @guest.r lowered it on his slot mask preset.

Also, I’m using Mask Bloom because @guest.r recommended it a few posts back. And it’s also the kind of bloom he’s using on his slot mask preset. But maybe I should use standard bloom instead?

1 Like

Please do! I need to see how others deal with brightness and gamma adjustments on slot masks.

2 Likes

He recommended regular Bloom for Slot Masks and Mask Bloom for other Mask Types.

So far, every time I set Mclip to 1 it looks similar to Bloom at 0 in my presets. Although the "phosphors’ look purer, the image looks worse so I live with my Bloom and leave Mclip alone at 0.50.

In the past I was able to get rid of the whitish haze that Bloom applies to the " phosphors" by using relatively low Gamma In/Out settings but overall I prefer how things look with Bloom enabled and higher Gamma In/Out.

I think if you want a 100% accurate experience by disabling Bloom in order to try matching the look of a real CRT, you’ll end up with issues where brightness is concerned, so you’ll need to compensate by having an extra bright screen with the brightness cranked all the way up, which seems to be par for the course with “accurate” CRT Shaders and Presets.

If you want great looks which can look virtually identical to a real CRT from reasonable viewing distances without having to simulate the Sun using your backlight, using a touch of regular Bloom with MClip at 0.5 works wonders.

When I read your mclip @ “000000”, I actually thought that it was at 1 instead eh. My apologies for any confusion. I haven’t tried it at 0 so I wouldn’t know what to expect, I doubt it would mess up the Bloom at 0. If it’s at 1 it will kill the bloom in my experience, using my settings.

2 Likes

I’m runing Nintendo 64 with ParaLLEI N64 core.It’s in it’s default resolution 640x480. I set the internal resolution Y: 224p/240p option in the shader to number 1. Sorry I forgot to mention that this Super Mario 64 is emulated on the Dreamcast. I haven’t got an original N64, and that’s the result. So maybe Dreamcast is emulating it bad too. But that’s how it looks on the dreamcast. And I want it to look the same. But if that’s not correct, I’ll do it in the original way…:sweat_smile:

1 Like

This is a significant factor in the scanlines and phosphors looking different. You’ll have to set it to a lower resolution if possible if you want to get similar scanlines to the Dreamcast + Sanyo CRT TV combination.

Not sure if this will do the trick. It doesn’t seem to be.

https://www.reddit.com/r/Games/comments/4vgd91/contrary_to_popular_belief_very_few_n64_games_ran/?utm_medium=android_app&utm_source=share

Screenshot_20220725-111509_Wikipedia

Based on these articles the Dreamcast seems to be doing a good job at least where the resolution is concerned because you can clearly see the scanlines which is reminiscent of 240p mode running on a CRT TV.

2 Likes

The ntsc version requires a tad more tweaking regarding brightness, but i can easily find some settings which are quite pleasing. But i understand what seems maybe trivial to me is not this trivial for users who are still learning some tricks.

If you got some saturation surplus and lack of brightness then you can also raise output gamma np. It works differently compared with gamma correct and maybe you could like it better.

Using masks with strengths lower than 1.0 is also a decent option to gain brightness.

I assembled a sortoff normal ntsc preset with slotmasks:

bloom = "0.800000"
bloom_dist = "1.250000"
halation = "0.100000"
gamma_c = "1.200000"
brightboost = "1.250000"
brightboost1 = "1.250000"
shadowMask = "6.000000"
maskstr = "1.000000"
mask_layout = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"

Looks like something i can use for gaming without much thoughts. But i also test it on a display set at about 380-400 nits and this can make a huge difference. Display gamma is also important, together with contrast. Assuming that all displays produce very similar results can lead to some sort of missunderstanding. A perfect example for this is the very nice megatron shader where the right display makes all the difference.

3 Likes

Ok. I’ll try, if it’s not working I’ll post images without scanlines, :sweat_smile:

2 Likes