New CRT shader from Guest + CRT Guest Advanced updates

You can use the new append or prepend preset features from the RA shader menu to combine presets. Although you might be better off with replacing a stock pass with plain xBR and set this pass scaling to 3.0 (very nice common ground). You can use the downsampling features of the crt shader to gain a smoother appearance.

Example preset:

shaders = "12"
shader0 = "shaders_slang/xbr/shaders/xbr-lv2-standalone.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 = "3.000000"
scale_type_y0 = "source"
scale_y0 = "3.000000"
shader1 = "shaders_slang/blurs/sharpsmoother.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_slang/crt-guest-advanced/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "false"
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_slang/crt-guest-advanced/shaders/guest/advanced/pre-shaders-afterglow.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "true"
alias3 = "PrePass"
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-guest-advanced/shaders/guest/advanced/avg-lum.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "AvgLumPass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/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-guest-advanced/shaders/guest/advanced/gaussian_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "GlowPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "absolute"
scale_y7 = "600"
shader8 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/bloom_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "BloomPass"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/crt-guest-advanced.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "viewport"
scale_x10 = "1.000000"
scale_type_y10 = "viewport"
scale_y10 = "1.000000"
shader11 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/deconvergence.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
downsample_levelx = "1.000000"
downsample_levely = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt-guest-advanced/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"

Screenie:

Adding Super xBR as with the Mega Bezel might require some fine tweaking of the preset’s scaling.

7 Likes

Hi Guest, meanwhile I don’t know how to thank you for your patience and your work. I understand that I may sound obnoxious with my constant questions and requests, but I promise you I’m almost there now thanks to your help and that of the community. I have a copy of the preset you sent me and thank you, but from what I’ve read, if I understand correctly, the super xbr does a better job of interpolation than the classic version in terms of less graphical distortion, and therefore barely available in the standard version of Retroarch I will use the new function to merge this shader with yours, and set the same parameters that I find inside the HSM Potato Super XBR GDV shader for the parameters related to the Super XBR and your CRT Guest, I believe and hope that this may be enough to obtain the same effect without the passages of the mega bezel (I prepare for all eventualities due to the performance of my PC, perhaps with more demanding emulations this trick is lighter). I’ll try the same thing with your NTSC Guest CRT. What do you think about it ? Heartfelt thanks indeed.

2 Likes

Allow me to make you a proposal: since the Super XBR GDV and Super XBR GDV NTSC presets are already present in the Mega Bezels, if you and Hyllian agree why don’t you include them in your package as alternative/combined presets? It would be great to have them outside of the Mega Bezels as well like for your CRT Presets. Mine is a suggestion and a desire, I’m finding myself too well with this combination.

1 Like

Just load the super-xbr preset. Then use the “append preset” functionality of the RA shader menu and load a crt preset. Works quite nice.

I mentioned that you might tweak some preset scaling properties with an editor if you desire.

It’s very simple now to use such combos nowdays, just takes some patience and practice in the beginning. :grin:

3 Likes

Heartfelt thanks Guest, I’ll do some field tests as soon as possible.

2 Likes

Hello this is some example of my settings… 1080p …

really this shader is awesome!

thx guest

9 Likes

Hello ckf92, congratulations for your settings, what I see I consider very beautiful. Could you please share your parameters? I’d like to try your customization. A thousand thanks.

1 Like

Thx you it’s very simple.

load xbr2 (scale4) in the second “stock pass” of guest advance shader and “voila” ! no special tweak needed! (don’t forget to put all necessary shader in the same guest advance folder)

This is my *.slangp (preset) :

shaders = 12

shader0 = shaders/guest/advanced/stock.slang
filter_linear0 = false
scale_type0 = source
scale0 = 1.0

shader1 = shaders/xbr-lv2-standalone.slang
filter_linear1 = false
scale_type1 = source
scale1 = 4.0
alias1 = StockPass

shader2 = shaders/guest/advanced/afterglow0.slang
filter_linear2 = false
scale_type2 = source
scale2 = 1.0
alias2 = AfterglowPass

shader3 = shaders/guest/advanced/pre-shaders-afterglow.slang
filter_linear3 = false
scale_type3 = source
mipmap_input3 = true
scale3 = 1.0
alias3 = PrePass

textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = shaders/guest/advanced/lut/trinitron-lut.png
SamplerLUT1_linear = true
SamplerLUT2 = shaders/guest/advanced/lut/inv-trinitron-lut.png
SamplerLUT2_linear = true
SamplerLUT3 = shaders/guest/advanced/lut/nec-lut.png
SamplerLUT3_linear = true
SamplerLUT4 = shaders/guest/advanced/lut/ntsc-lut.png
SamplerLUT4_linear = true 

shader4 = shaders/guest/advanced/avg-lum.slang
filter_linear4 = true
scale_type4 = source
scale4 = 1.0
mipmap_input4 = true
alias4 = AvgLumPass

shader5 = shaders/guest/advanced/linearize.slang
filter_linear5 = true
scale_type5 = source
scale5 = 1.0
alias5 = LinearizePass
float_framebuffer5 = true

shader6 = shaders/guest/advanced/gaussian_horizontal.slang
filter_linear6 = true
scale_type_x6 = absolute
scale_x6 = 800.0
scale_type_y6 = source
scale_y6 = 1.0 
float_framebuffer6 = true

shader7 = shaders/guest/advanced/gaussian_vertical.slang
filter_linear7 = true
scale_type_x7 = absolute
scale_x7 = 800.0
scale_type_y7 = absolute
scale_y7 = 600.0
float_framebuffer7 = true
alias7 = GlowPass

shader8 = shaders/guest/advanced/bloom_horizontal.slang
filter_linear8 = true
scale_type_x8 = absolute
scale_x8 = 800.0
scale_type_y8 = absolute
scale_y8 = 600.0 
float_framebuffer8 = true

shader9 = shaders/guest/advanced/bloom_vertical.slang
filter_linear9 = true
scale_type_x9 = source
scale_x9 = 1.0
scale_type_y9 = source
scale_y9 = 1.0
float_framebuffer9 = true
alias9 = BloomPass

shader10 = shaders/guest/advanced/crt-guest-advanced.slang
filter_linear10 = true
float_framebuffer10 = true
scale_type10 = viewport
scale_x10 = 1.0
scale_y10 = 1.0

shader11 = shaders/guest/advanced/deconvergence.slang
filter_linear11 = true
scale_type11 = viewport
scale_x11 = 1.0
scale_y11 = 1.0

Enjoy

3 Likes

Hi ckf92, thank you very much for your sharing, it was just the kind of customization I was looking for, and from the images you already shared I love it. Unfortunately I won’t be able to test it in the field for a few days since I’m away from home, but I still wanted to go ahead by asking you two questions. The shader “xbr-lv2-standalone” I have to copy in the folder “shader_slang/crt/shaders,”, right? Then I take your text, copy it to a Notepad file that I will rename with the “.slanp” extension and upload it ? Thanks for your help and thanks for sharing.

yes you need to copy the “xbr-lv2-standalone” and all dependant file in the same folder as “crt guest advance” shader folder :slightly_smiling_face:

Yes just a notepad file to copy the settings and rename :wink:

you can change the number of scale (“4”) to make the result sharper or smoother… decrease scale will smoot and increase will sharp.

IMO in 1080p scale 4 is good :slight_smile:

maybe for people the result is a little bit to clean and modern for purist but i think it nice to play old game like this :slight_smile:

1 Like

I get it, you copied the “shader_slang/xbr/shaders” folder inside the shader_slang/crt folder by merging them. You put your custom “*.slangp” file in the “shader_slang/crt” folder and upload it from there. I apologize for my redundancy but I’m still a noob on the subject, I try to learn as much as possible. I love your look because it keeps the retro style but at the same time gives a nod to a more modern, less raw look. It’s how I remember things, even if memories are deceiving and I’m getting old. What I love about this look is the clear definition of the silhouettes, I find it pleasing to the eye. I had tried the Super XBR Crt and Guest had kindly provided me with a preset, but your customization work seemed perfect in terms of cleanliness and colour. I thank Guest again for making his shader available to us and you for this beautiful customization you shared. I can’t wait to make it mine and test it in the field.

1 Like

Guest good evening, but if one wanted to search for an image with such a sharp and marked silhouette in the displayed image, without using an XBR scaler or similar, should one act on the two Smart Edge values? And if so, which of the two should you increase exactly? Thank you

1 Like

I’m asking for situations like “Marvel Vs. Capcom 2” and similar, where due to weird 2D pixel scaling compared to 3D, the scalers don’t work properly

1 Like

Some screenshots with 2 different presets.

GAMMA_INPUT = "2.200000"
interm = "0.000000"
bloom = "0.980000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "-1.000000"
scanline1 = "17.500000"
scanline2 = "47.000000"
beam_min = "1.000000"
beam_size = "1.000000"
scans = "0.300000"
scangamma = "5.000000"
h_sharp = "4.400000"
s_sharp = "0.000000"
bsize1 = "0.000000"
shadowMask = "8.000000"
maskstr = "1.000000"
mcut = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mask_gamma = "1.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
gamma_out = "2.200000"
deconrr = "-1.000000"
deconrb = "1.000000"
deconrry = "-1.000000"
deconrby = "1.000000"

and

GAMMA_INPUT = "2.200000"
interm = "0.000000"
bloom = "0.980000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "-1.000000"
scanline1 = "17.500000"
scanline2 = "47.000000"
beam_min = "1.000000"
beam_size = "1.000000"
scans = "0.300000"
scangamma = "5.000000"
h_sharp = "10.500000"
s_sharp = "0.000000"
c_shape = "0.050000"
bsize1 = "0.000000"
sborder = "0.250000"
shadowMask = "11.000000"
maskstr = "1.000000"
mcut = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mshift = "-2.000000"
mask_gamma = "1.000000"
gamma_out = "2.200000"
9 Likes

I would still use the HD version for these games, but you can basically not hope for a decent low-res pixel scaling without a proper texture replacing project involved.

3 Likes

which CRT guest preset(s) have you used previously to set up those 2 preset options ?

1 Like

It was for crt-guest-advanced.slangp, but also works with NTSC version if you remove h_sharp and s_sharp. You can delete maskDark and maskLight, I was testing another mask.

Mask 13 can be used with those settings . :stuck_out_tongue:

Edit:

Ntsc sharpen (negative:adaptive) is a nice feature. If you push value to 10.0 with ntsc shape mode to the lowest value and blend mode to 0.0 while having artifacts to 5. It produces dark artifacts with a clear picture at 1.00 Ntsc resolution.

4 Likes

Imho Marvel vs Capcom 2 doesn’t look so bad if you pump up Flycast’s internal resolution, then also use that setting in Guest Advanced HD, while switching interlacing off.

By comparison, with the default 640x480:

That clash of low/high res comes off a bit weird even on crts imho, I find it especially misapplied with some of the RPG remakes that Square Enix has been put out in recent years.

3 Likes

Thank you !!! But it’s really good like this, as soon as I can I try, in the meantime with your advice I can solve this strange situation. To this day I still don’t understand why we opted for two-dimensional graphics with such low scaling … thanks anyway :grinning:

2 Likes

Hi Guest, I wanted to ask, if it was possible, if you could share the parameters to create a preset with your Advance shader together with ScaleFX, as you kindly did with the XBR preset. The ScaleFX is more accurate even if heavier and I would like to try it. Heartfelt thanks for the help.

3 Likes