Please show off what crt shaders can do!

I had a 19" AOC CRT VGA monitor and looked just like BVM with the old MAME scanlines option on. I had even created a custom 240p mode with 120hz and it had natural scanlines without any filter.

1 Like

for people having trouble uploading images, try again now and let me know if it does/n’t treat you any better.

1 Like

I tried the slotmask setting and prefer it to the lottes mask. It’s interesting because for longer game playing sessions I find the Lottes mask quite tiring on the eyes, whereas with the slotmask that’s not the case. Now that I’ve been testing your preset with the slotmask a bit longer I think it’s quite nice to use.

With regards to the following it could maybe use some finetuning for the preset:

  • the image is a bit dark still (while using full backlight at about 270 something nits),
  • for me personaly it’s a bit too much saturated (I think saturated colors are more triring for the eyes to “digest”)
  • Definitely a personal preference would be to have slight thicker dark active lines, I think they are too thin now and the contrast with bright lines thickness comes across as slightly exaggerated.

For the first one you could consider lowering “Gamma Input” a bit to 2.25, such that you would have CRT gamma at 2.4, Gamma Input at 2.25 and Gamma Output at 2.4.

If you would have a suggestion for the second and third item it would be nice. Would slightly thicker dark active lines be achievable while keeping the current overal look, or would it need switching to scanline type 0?

1 Like

Yeah, I think I’m starting to prefer the slotmask to the Lottes mask. Seems to preserve contrast better.

For the gamma, I think setting CRT gamma to around 2.55 or so will give you better shade separation than just changing gamma input. Guest-dr-venom gamma in/out should be at left at 2.4. This is certainly something that you can play around with, though.

For brightness, a lower mask strength will help along with a higher gamma. 270 nits should be plenty bright for these settings, though. It’s more likely that you’re noticing a lack of contrast, and there’s not much to be done about that except reduce the mask strength. A setting of 0.50 is probably better.

I think the saturation settings are better left as-is and if the image looks too saturated, raise the gamma. I’ve set scanline saturation to 1.00 but the default is 0.50. A setting of 0.50 looks very under-saturated to me, but you could try lowering scanline saturation to less than 1.00 if gamma alone isn’t doing it for you.

The scanlines are optimized in terms of dynamic range, and similar to what can be seen on some aperture grille CRTs, where the only thing limiting vertical detail is the precision of the electron beam (and the signal resolution). In fact, the beam width variation seen on some CRTs is even greater than what you see using these settings.

Anything you do to make the dark lines thicker will negatively impact the dynamic range. As you reduce the thickness of the dark lines they also become brighter and shade separation at the high end gets worse. Reduce the thickness of the dark lines enough and eventually you’ll get clipping.

Try this and LMK what you think. I raised gamma to 2.55, reduced the beam width variation by raising beam shape low and lowering beam shape high, and I lowered slot mask strength to 0.50. You might also try 15.00/10.00 or 14.00/7.00 for beam shape low/high. You can tweak this to personal preference but keeping beam shape low at a higher value than beam shape high is better for dynamic range. Just watch for clipping and poor shade separation at the high end as you play with this (color bars are your friend).

shaders = "10"
shader0 = "shaders_slang/stock.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "shaders_slang/stock.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/misc/grade.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "WhitePointPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/crt/shaders/guest/afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/linearize.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "LinearizePass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/blur_horiz.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/blur_vert.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/linearize_scanlines.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
parameters = "g_gamma_in;g_signal_type;g_gamma_type;g_crtgamut;g_space_out;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_lum_fix;g_vignette;g_vstr;g_vpower;g_lum;g_cntrst;g_mid;wp_temperature;g_sat;g_satr;g_satg;g_satb;g_vibr;g_lift;blr;blg;blb;wlr;wlg;wlb;rg;rb;gr;gb;br;bg;LUT_Size1;LUT1_toggle;LUT_Size2;LUT2_toggle;SW;AR;PR;AG;PG;AB;PB;sat;lsmooth;GAMMA_INPUT;TAPSH;GLOW_FALLOFF_H;TAPSV;GLOW_FALLOFF_V;TATE;IOS;OS;BLOOM;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;csize;bsize;warpX;warpY;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;gamma_out;spike;inter;interm;bloom;scans"
g_gamma_in = "2.550000"
g_signal_type = "1.000000"
g_gamma_type = "1.000000"
g_crtgamut = "2.000000"
g_space_out = "0.000000"
g_hue_degrees = "0.000000"
g_I_SHIFT = "0.000000"
g_Q_SHIFT = "0.000000"
g_I_MUL = "1.000000"
g_Q_MUL = "1.000000"
g_lum_fix = "0.000000"
g_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "0.500000"
wp_temperature = "6505.000000"
g_sat = "0.000000"
g_satr = "0.000000"
g_satg = "0.000000"
g_satb = "0.000000"
g_vibr = "0.000000"
g_lift = "0.000000"
blr = "0.000000"
blg = "0.000000"
blb = "0.000000"
wlr = "1.000000"
wlg = "1.000000"
wlb = "1.000000"
rg = "0.000000"
rb = "0.000000"
gr = "0.000000"
gb = "0.000000"
br = "0.000000"
bg = "0.000000"
LUT_Size1 = "16.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "64.000000"
LUT2_toggle = "0.000000"
SW = "1.000000"
AR = "0.070000"
PR = "0.050000"
AG = "0.070000"
PG = "0.050000"
AB = "0.070000"
PB = "0.050000"
sat = "0.100000"
lsmooth = "0.900000"
GAMMA_INPUT = "2.550000"
TAPSH = "4.000000"
GLOW_FALLOFF_H = "0.000000"
TAPSV = "4.000000"
GLOW_FALLOFF_V = "0.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "0.500000"
brightboost1 = "1.500000"
gsl = "2.000000"
scanline1 = "12.000000"
scanline2 = "8.000000"
beam_min = "1.000000"
beam_max = "1.000000"
beam_size = "0.000000"
h_sharp = "3.000000"
s_sharp = "1.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.000000"
shadowMask = "-1.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.500000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.250000"
maskDark = "0.500000"
maskLight = "1.500000"
CGWG = "0.300000"
gamma_out = "2.550000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.000000"
scans = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"

@hunterk Image upload appears to be working fine now. Thanks!

3 Likes

I stumbled upon some GameGear screens and decided to revamp my GG preset that simply was a CRT one.

I tried to match it to the photo below but for that I had to mod lcd-grid-v2 so each sub-phosphor would have its own column. This shows as vertical scanlines for primary colors.

I share the preset on my github with the modded shaders. I could lower saturation even more and add more brightness/wash out, but this was enough for me lol.

6 Likes

I think that’s good enough, imo. The camera is doing additional washing out, I’d imagine.

Looks nice!

1 Like

When white the vertical scanlines shouldn’t be seen, that’s the only thing that bothers me. Otherwise nice. I got the hang of convolutions so I might give a stab again to the new super VI mode.

2 Likes

Thanks for the second preset! This one is hitting the sweetspot for me, really happy with it. I haven’t even fiddled with any of settings as it just look right to me now. Super nice that even after longer game playing sessions it holds up that impression. I think this is going to be my default setup from now on. :smiley:

Just some questions, I see that you’re not using any “increased bright scanline beam”, whereas the default venom-guest has it at 0.70. I’m not really sure how it affects the picture, just curious to know your opinion.

With the 240p suite I see green gets clipped by the grade shader, whereas with stock guest-venom this is not happening. I think the image still looks goods, just wondering if you’re seeing the same for the bright greens in the color bars test (there’s no difference between colums D, E and F).

Now that we have a great NTSC preset, I’m looking to use this as the base for creating a PAL preset, along the suggestions of Dogway. That way we could use the PAL preset for games developed in the PAL region (I guess European based software houses).

If I would adapt the current preset with the suggestions in his grade shader (see quote below) would that be enough?

Basicly I would change the following in your (second) NTSC preset:

  • CRT Gamma to “2.8”
  • Phosphor to “3: PAL”
  • Saturation to “-0.02”

Should I keep Gamma In and Gamma Out at 2.4 or 2.55 depending on preference?

###      PAL                                                                           ###
###          Phosphor: EBU (#3)      (or an EBU T3213 based CRT phosphor gamut)        ###
###          WP: D65 (6504K)                                                           ###
###          TRC: 2.8 SMPTE-C Gamma                                                    ###
###          Saturation: -0.02                                                         ###
3 Likes

I use crt-venom for SNES so for example for DKC I use the suggested preset and venom’s gamma should cancel out in order to make my CRT gamma work as intended. They suggest gamma 2.4, so 2.4 for both. Maybe @Nesguy can expand on it since he has more on hand experience.

1 Like

Glad you like the settings!

I’m not sure what this does, honestly. It doesn’t seem to do anything regardless of what it’s set to. Maybe this needs a different scanline type to work?

I’m not noticing the clipping on my display, which is fairly accurate. I’m posting this image mostly so I can check it out on my iPhone; it’s the most accurate display I have access to right now.

EDIT: looks fine on my iPhone, so you might need to check your display settings if you’re getting clipping.

I think that will work fine although CRT gamma might need to be tweaked to preference and viewing/display conditions. Guest-dr-venom gamma should be left at the default 2.4/2.4. As long as they’re the same value they won’t interfere with grade’s gamma.

1 Like

Where do I find this Grade shader? I don’t see it in the misc folder.

1 Like

Pick either the slang or glsl version.

1 Like

Got it, thank you. Now I’m not sure how the hell I should start tweaking this lol. Guess I’ll look at some examples from previous posts to see what this is all about.

1 Like

I’d recommend adding green to blue, and blue to green, imho. I love how it looks, but it’s not for everyone, this is also what Dogway does, along with some other things and we use different values from each other.

I don’t think Nesguy really does anything with grades settings, I may be wrong though. I think he just leaves them at default besides maybe the gamma? (Which even having everything in grade set to default will look different then the default color output or what guest is doing in his color passes.)

Ok, I’ll play around with it and see what I come up with. I tried out Nesguy’s preset above just to get a taste of it even though like you said most of his settings are on default. Looks interesting though.

1 Like

For sure, as I said even the settings at default make a noticeable difference to the color output you’re getting.

It’s currently the best color manipulation/management shader we have for RA at this current time, imho. It has control of pretty much any aspect of the color I’d be interested in messing with at this time.

Though I hope @Dogway eventually gets the free time and chance to properly do the hue vs sat setup he was discussing in his thread. Mainly because I’d use the feature, lol. (Not saying he should do this specifically for me, just saying I hope it happens because I’d use the feature, lol.)

I’d try 0.095 for green to blue, (so adding green to blue) and 0.045 for blue to green. (so adding blue to green.) That’s what I do on top of some other things, but I feel these are the most important out of the settings I change in grade. Hope this helps! (To get the extra 0.005 in those settings, basically just go up one number above it, in 0.095’s case go to 0.1 and then go down once in the menu.)

2 Likes

I tried a bunch of combinations to cheaply do the HUE vs Sat though the saturation matrix to no avail, so I need to add a proper HUE vs Sat when I get some free time since now I’m a bit busy with work, but it’s on the roadmap though.

1 Like

Yeah, I was referring to you setting it up properly, lol.

I’m in no hurry, I’ve stepped away from shaders for a minute. Busy doing research on arcade stick parts for a build, and also just needed a break, lol.

I’d rather you go at your own pace and not get burnt out.

Going for pixel perfect image using a border on a 1440p monitor. I use different (Reshade) presets for 240p, 480p and HD+ content.

Image album

Shader preset files

1 Like

Yeah I don’t do much with grade other than set the gamma type, CRT gamma and CRT gamut. White point I leave at the default and I use a medium color temp on my display (not too warm, not too cool).

I find that once gamma and the scanlines/mask are dialed in that there isn’t really any need to adjust the tint controls.