New CRT shader from Guest + CRT Guest Advanced updates

Thank you. It’s funny cause I’m literally tweaking and playing around with this very setting when you posted that. Trying out different combinations until I hopefully hit a sweet spot with both scalefx and xbr-lvl3. I’ll post up pics again and maybe even a sample pack in my thread for you all to try.

4 Likes

New Release Version (2023-11-30-r1):

Notable changes:

  • Fastest version improvements and some performance uplift.
  • “Hires Scanlines” added to standard and fast versions.
  • “Fine Glow Sampling” feature added for much better glow/m.glow shaping.
  • “Bloom Substract” removed as it was obsoleted by “Fine Bloom Sampling”.
  • Feedback is welcome as this is a repository update candidate.

Download link:

https://mega.nz/file/MohTAJbK#QCAirV98SplJCUqh5p1k41dCYmm-bEAwDQ1J9I772JE

14 Likes

This is the highlight to me here. Curious on the changes this all brings. I’ll be testing this out and reporting with results later.

2 Likes

Is this the name of the smoothing like filter from ?

Setting the parameter with this name to 1.0 activates an alternate image handling mode, which requires the user to prepend etc. a scaling shader preset (scalefx, xbr…) for proper usage.

3 Likes

It looks outstanding when you prepend super-xbr and take out scanlines, specially game fonts:

10 Likes

After giving this latest update a spin I say it’s good to go. At first I thought those “glow/bloom” changes were gonna alter my presets to where I’d have to retweak things but everything still looks as is, in fact they seem to look better or maybe my eyes are playing tricks lol. Maybe others can chime in with their opinion but I say get it ready for the repository.

2 Likes

Wow! Every update you surprise me, but this last update, I can say it’s fantastic!!!:heart_eyes:.

5 Likes

can you share the preset? I want to see how it looks on my monitor!

1 Like

Sure! You might achieve better results by tweaking colors and Gamma. I didn’t change many things.

Summary
shaders = "19"
feedback_pass = "0"
shader0 = "shaders_slang/edge-smoothing/xbr/shaders/support/linearize.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "XbrSource"
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/edge-smoothing/xbr/shaders/super-xbr/super-xbr-pass0.slang"
filter_linear1 = "false"
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/edge-smoothing/xbr/shaders/super-xbr/super-xbr-pass1.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "2.000000"
scale_type_y2 = "source"
scale_y2 = "2.000000"
shader3 = "shaders_slang/edge-smoothing/xbr/shaders/super-xbr/super-xbr-pass2.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
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/edge-smoothing/xbr/shaders/support/spline16-x.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "viewport"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/edge-smoothing/xbr/shaders/support/spline16-y.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
scale_type_x5 = "viewport"
scale_x5 = "1.000000"
scale_type_y5 = "viewport"
scale_y5 = "1.000000"
shader6 = "shaders_slang/edge-smoothing/xbr/shaders/support/delinearize.slang"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
shader7 = "shaders_slang/crt/shaders/guest/hd/stock.slang"
filter_linear7 = "false"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
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/hd/stock.slang"
filter_linear8 = "false"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "StockPass"
float_framebuffer8 = "false"
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/hd/afterglow0.slang"
filter_linear9 = "false"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "AfterglowPass"
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/hd/pre-shaders-afterglow.slang"
filter_linear10 = "false"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "true"
alias10 = "PrePass"
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt/shaders/guest/hd/linearize-hd.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "LinearizePass"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "Pass1"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "800"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/hd/gaussian_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "GlowPass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "800"
scale_type_y14 = "absolute"
scale_y14 = "600"
shader15 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "800"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/hd/bloom_vertical.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = "BloomPass"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "source"
scale_x16 = "1.000000"
scale_type_y16 = "absolute"
scale_y16 = "600"
shader17 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/guest/hd/deconvergence-hd.slang"
filter_linear18 = "true"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
TNTC = "4.000000"
glow = "0.000000"
halation = "-0.200000"
hmask1 = "1.000000"
gsl = "1.000000"
scanline1 = "0.000000"
scanline2 = "18.000000"
beam_min = "1.000000"
beam_max = "0.900000"
no_scanlines = "1.000000"
shadowMask = "6.000000"
maskstr = "0.500000"
mcut = "1.000000"
maskboost = "3.000000"
mask_layout = "1.000000"
slotmask = "0.500000"
slotmask1 = "0.500000"
double_slot = "1.000000"
gamma_c = "0.900000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
3 Likes

Hi everyone,

I received my new Steam Deck OLED a few days ago and on this occasion I thought, let’s update my Steam Deck shader post as things developed a bit over time like Retro Arch having Guest new CRT Adcanced shader included in the official shader repository etc.

I didn’t touch the whole shader topic for a while and after updating the shader database in Retro Arch and looking through the shader options I realized that some important things I played with are gone (or named differently?). I’m talking about things like “shadowmask” and so on. My custom shaders, which basically just reference the original shader and include some custom values, I thought look best for me, still work so I guess the parameters are now customizable just in a different place? Can someone give me a quick overlook what changed and where one do access these parameters this days.

Sorry if it’s obvious and pointed out at some place, I couldn’t find it :sweat_smile:

2 Likes

It looks awesome! I just lowered a little the gamma correction to

gamma_c = "0.900000"

and feels nice on my panel!

One thing, few weeks ago I “refreshed” my slang directory and noticed that something has moved around: xbr directory, for example, is now located in shaders_slang/edge-smoothing/xbr/ from what I understand :sweat_smile:

3 Likes

It looks great with prerendered stuff:

4 Likes

I’m so sorry. I’m stupid. I just overlooked the “Shader parameters” entry. Ugh :roll_eyes:


Another question: As the new Steam Deck has an OLED screen, is there something special one has to consider regarding changing shader parameters when coming from the model with a LCD screen? Resolution didn’t change. I’ve read in various posts, while doing a quick research, that changing Mask Layout from RGB to BGR is somehow recommended? Is that true? I tried and I personally don’t see any difference.

Thanks.

2 Likes

I was about to write that, you could take a shoot of its subpixel layout and craft the mask accordingly, but i don’t think it is worth the hassle, as long as you haven’t a pair of eagle eyes ofc :slight_smile:

1 Like

Using:

mask_bloom = "0.200000"

It’s even better!

2 Likes

I have added a customized Super-xBR preset to my scaling presets folder, and games can look super nice!

10 Likes

Yes, these look Super Nice indeed @guest.r!

I might have just tried to sharpen the outlines/edges a little more but I really love the way these look as they are as well.

2 Likes

I see you’re really getting into this upscaling thing lol. I’ll have to give that a test sometime.

1 Like

Yeah, one thing after another. I’m also preparing stuff for the repository update.

I also created a sharper SuperXBR preset to be added…

6 Likes