New CRT shader from Guest + CRT Guest Advanced updates

I love the sharpness of it,nice screenshots, It’s really my style, I’ll give it a try. I’ve been busy these days and I haven’t had a chance to try it yet. :smiley:

3 Likes

Yeah some things got switched up especially after lowering the glow and applying some of the newer settings like those new “mitigate” settings. Lowering the glow revealed a few things, one was how sharp the pixels really look and another is that it stopped “smothering” certain shaded areas like Ryu’s gi or the clouds in OutRun, I can now see those shaded areas the way they were intended to look that’s the good part.

The flip side from lowering the glow brings me back to the sharpness, I was using glow to help “smooth” out the pixels which kind of worked with the sacrifice of losing shaded details so now I’m looking for a new filtered look to help get the pixel “smoothness” back.

Yesterday’s shots I also noticed I had too much saturated “blue” if you noticed in the back ground some detail literally dissapeared compared to the old shot specifically under the moon on the left where the mountain is, that’s now fixed. Now I’m back to playing with sharpness, yesterday I used these filtered settings:

It works if going for that more sharpened pixel look but I want pixels to look a bit smoother for my next release so I came up with 3 different looks that I’ll end up choosing one from:

They all appear to look the same and not that much different from the first but there’s very small intricate differences on pixel edges between the 3 that make things look just a bit smoother. I may end going with the middle or last one if nothing else, still deciding.

That bug was probably the one where users ended up with boggled looking colors. On another note I ended up ditching and turning off the “black level” setting in grade, I noticed once you starting going past -5 dark graphics literally start to dissappear right off the screen.

I’ve been using this game’s character selection screen as an example since it’s really dark, first here’s witj no shader at all:

Next here is after turning black level off:

Here’s black level at -10:

Here’s at -20:

You can see in the last two shots certain graphics are not even there anymore especially the background where it’s the darkest.

I’m trying a new method to get “darker blacks” which is simply switching all “gamma” settings from my previous 2.40 to 2.60.

Here’s gamma at 2.40:

Gamma at 2.60:

Clothes look a bit darker there. It’s not a perfect solution but I think it looks better than 2.40 gamma.

I haven’t put out anything new yet I’ve recently got back in the lab since yesterday and just locked myself in while I got some free time lol. Still experimenting around at the moment.

4 Likes

Substractions on black levels are more or less game dependant, some arcade games like Hero Tonma, Golden Axe, Contra etc. really benefit from these features, even very strong application is desired.

It’s understandable that organizing the presets by the consumer tv’s and “signal” connection types prefers a more universal and elegant solution. I would say going for the gamma difference is a well established decision.

3 Likes

Going back and forth between the three pictures of the first section of pictures is really hard to notice the differences between the three. I do see small changes around the black lines that make up the characters. The curvature of a line is more black when there is another adjacent color near it and less of the adjacent color.

2 Likes

As a first time user it would be great if all packs, bezels, and any other required files could be combined into a single, clearly marked download, right at the top of the post. The post is so long and unwieldy with years of updates that it’s very unclear if everything is included in the first download or if it will be missing some shaders added at various points. Setting all historical content to accordion or something if that’s possible on this forum would be amazing. People could still access and read it but it wouldn’t be so intimidating to first time users.

Really excited to try these, just confused about where to start and I’m sure I’m not the only one.

Thanks for all your hard work. The screenshots look amazing.

4 Likes

Hey, nice to see you stopping by!

It might sound modest, but this thread’s main project (crt-guest-advanced and it’s variations) is completely covered by the newest version download link in the first post. Maybe it’s good to know you can copy the content of the provided folder into the /crt folder in the shader_slang for the other benefits and that’s more or less the main story.

Along within the Libretro Forums there are other related projects with their own threads, i guess it wouldn’t hurt to include them in the first post.

4 Likes

I didn’t know about many of these related projects! thanks for mentioning them

3 Likes

A quick test using positive values ​​for the gamma correction parameters and a few other adjustments.

Edit: working links on another image hosting site. :confused:

7 Likes

Question about the chroma-scaling setting for the NTSC shader. I have an older version or retroarch from a couple years ago and I’m trying to match the settings to a new version. Is the chroma-scaling on the old version of the more similar to the 2 or 3 phase option on the new version?

2 Likes

Chroma scaling on the 3-phase processing is more or less the same compared with the old version.

With 2-phase the implementation is quite different, but the results are very close.

I like to mention that reducing the number of TAPS also influences chroma scaling, it’s very straightforward with 2-phase. With 16 TAPS chroma spread is 2x smaller compared with default 32 TAPS, for example.

Reducing number of TAPS can have it’s benefits, for example notable speedups with certain situations/resolutions, a more clear image, especially 2-phase etc.

You can also use default values, it’s the same thing with old and new versions.

4 Likes

Preset for beetle saturn and blastem (mask 2,3,4 tested). I tried something with all the pragmas having the word gamma :orangutan:

shaders = "18"
shader0 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/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/shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "AfterglowPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/pre-shaders-afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "NPass1"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "NtscPass"
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "Pass1"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "../../shaders/shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "800"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "GlowPass"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "800"
scale_type_y13 = "absolute"
scale_y13 = "600"
shader14 = "../../shaders/shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = ""
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "800"
scale_type_y14 = "absolute"
scale_y14 = "600"
shader15 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "BloomPass"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "800"
scale_type_y15 = "absolute"
scale_y15 = "600"
shader16 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "../../shaders/shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
AS = "0.000000"
cust_artifacting = "0.000000"
cust_fringing = "0.000000"
ntsc_fields = "1.000000"
ntsc_phase = "3.000000"
ntsc_taps = "6.000000"
ntsc_charp3 = "10.000000"
ntsc_cscale1 = "2.250000"
ntsc_ring = "1.000000"
ntsc_sharp = "10.000000"
ntsc_shape = "0.500000"
CCONTR = "0.000000"
GAMMA_INPUT = "2.800000"
gamma_out = "2.200000"
interm = "0.000000"
HSHARPNESS = "1.000000"
SIGMA_HOR = "0.400000"
S_SHARP = "0.000000"
HSHARP = "0.000000"
MAXS = "0.000000"
HARNG = "0.000000"
spike = "0.000000"
m_glow = "1.000000"
m_glow_cutoff = "0.300000"
m_glow_low = "5.100000"
m_glow_high = "4.800000"
m_glow_mask = "0.000000"
SIZEH = "4.000000"
SIGMA_H = "0.800000"
SIZEV = "4.000000"
SIGMA_V = "0.600000"
SIGMA_HB = "0.975000"
SIGMA_VB = "0.975000"
glow = "0.020000"
halation = "0.290000"
hmask1 = "0.000000"
gamma_c = "1.325000"
brightboost = "2.500000"
brightboost1 = "2.500000"
gsl = "-1.000000"
scanline1 = "70.000000"
scanline2 = "70.000000"
beam_min = "0.550000"
beam_max = "0.600000"
beam_size = "0.000000"
scans = "0.000000"
scangamma = "2.200000"
csize = "0.030000"
bsize1 = "0.160000"
sborder = "0.250000"
shadowMask = "2.000000"
maskstr = "1.000000"
mcut = "1.000000"
masksize = "3.000000"
mask_zoom = "-3.000000"
mzoom_sh = "1.000000"
mshift = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mask_gamma = "5.000000"
double_slot = "3.000000"
pr_scan = "0.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = ":/shaders/shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = ":/shaders/shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = ":/shaders/shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = ":/shaders/shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
4 Likes

Is this full resolution?

dont know if this the right topic to ask but I think it worth someone port CRT Guest Advanced to Magpie similar to reshade case, there are some old PC games like Touhou Soccer 2 that need Magpie, I did ask them https://github.com/Blinue/Magpie/issues/860#issuecomment-2800476090 but they said “currently no plans to add new effects” but they also said “contributions are always welcome”

Yes the screenshots should be full resolution with the links I provided, or are you talking about something else ?

In real CRT RF (I think it even in AV but not as clear) there are some Chroma side bleed if there are some dark next to a bright edge (Especially if it is saturated), and of course there is some movement (Right and left) in it (from what I remember), I think it called fuzzy?

edit: its not always “dark next to a bright edge” case

it will be nice if there was some option in NTSC adaptive to mimic that

I just noted it is even in the S-video too!

but I dont think it moving like others, so maybe it’s in any analog

5 Likes

@Jobima that’s what looking for in RetroArch. More RF preset/shaders if possible please! Those pixels with Rainboweffect always look so nice !

Its little imperfections that make it accurate to the old school experience !

3 Likes

Do you have any presets for RF? I hope we get like something like 97% accurate to it.

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

no, these from real CRT from https://twitter.com/CRTpixels

I know but I wish we can emulate like that almost perfect from a real CRT

1 Like