New CRT shader from Guest + CRT Guest Advanced updates

This is my “composite” style shader as it beats up your SNES and Genesis games pretty good but looks great on Dreamcast and upscaled Ps1.

shaders = "10"
shader0 = "shaders_slang/crt/shaders/guest/advanced/stock.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "StockPass"
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/crt/shaders/guest/advanced/afterglow0.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "AfterglowPass"
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/shaders/guest/advanced/pre-shaders-afterglow.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "PrePass0"
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/advanced/ntsc/ntsc-pass1.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
frame_count_mod3 = "2"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "4.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "PrePass"
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "0.500000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/avg-lum-ntsc.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "true"
alias5 = "AvgLumPass"
float_framebuffer5 = "false"
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/advanced/linearize-ntsc.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "LinearizePass"
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/advanced/bloom_horizontal_ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "absolute"
scale_x7 = "800"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical_ntsc.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "GlowPass"
float_framebuffer8 = "true"
srgb_framebuffer8 = "false"
scale_type_x8 = "absolute"
scale_x8 = "800"
scale_type_y8 = "absolute"
scale_y8 = "600"
shader9 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc.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 = "bogus_afterglow;PR;PG;PB;AS;sat;bogus_color;TNTC;LS;LUTLOW;LUTBR;CP;CS;WP;wp_saturation;BP;vigstr;vigdef;viground;quality;bw;linearize;lsmooth;GAMMA_INPUT;bogus_deconvergence;decon;deconstr;bogus_interlacing;inter;interm;inters;iscan;intres;bogus_bloom;SIZEHB;SIGMA_HB;SIZEVB;SIGMA_VB;bogus_brightness;glow;bloom;halation;contrastd;gamma_c;brightboost;brightboost1;bogus_scanline;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;vertmask;scans;spike;bogus_filtering;h_sharp;s_sharp;bogus_screen;TATE;IOS;OS;BLOOM;csize;bsize;warpX;warpY;overscanX;overscanY;bogus_masks;shadowMask;maskstr;masksize;maskDark;maskLight;mcut;mask_gamma;slotmask;slotwidth;double_slot;slotms;mclip;gamma_out"
bogus_afterglow = "0.000000"
PR = "0.140000"
PG = "0.140000"
PB = "0.140000"
AS = "0.070000"
sat = "0.100000"
bogus_color = "0.000000"
TNTC = "2.000000"
LS = "32.000000"
LUTLOW = "5.000000"
LUTBR = "1.000000"
CP = "5.000000"
CS = "0.000000"
WP = "-50.000000"
wp_saturation = "1.000000"
BP = "0.000000"
vigstr = "0.000000"
vigdef = "3.600000"
viground = "8.000000"
quality = "1.000000"
bw = "0.000000"
linearize = "0.000000"
lsmooth = "0.900000"
GAMMA_INPUT = "2.400000"
bogus_deconvergence = "0.000000"
decon = "1.000000"
deconstr = "0.550000"
bogus_interlacing = "0.000000"
inter = "325.000000"
interm = "4.000000"
inters = "0.000000"
iscan = "0.500000"
intres = "0.000000"
bogus_bloom = "0.000000"
SIZEHB = "6.000000"
SIGMA_HB = "1.000000"
SIZEVB = "6.000000"
SIGMA_VB = "1.000000"
bogus_brightness = "0.000000"
glow = "0.100000"
bloom = "0.000000"
halation = "0.000000"
contrastd = "0.000000"
gamma_c = "1.200000"
brightboost = "1.400000"
brightboost1 = "1.599988"
bogus_scanline = "0.000000"
gsl = "0.000000"
scanline1 = "6.000000"
scanline2 = "8.000000"
beam_min = "1.300000"
beam_max = "1.000000"
beam_size = "0.600000"
vertmask = "0.000000"
scans = "0.600000"
spike = "1.000000"
bogus_filtering = "0.000000"
h_sharp = "5.200000"
s_sharp = "0.500000"
bogus_screen = "0.000000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
overscanX = "0.000000"
overscanY = "0.000000"
bogus_masks = "0.000000"
shadowMask = "7.000000"
maskstr = "0.300000"
masksize = "1.000000"
maskDark = "0.600000"
maskLight = "1.500000"
mcut = "0.800000"
mask_gamma = "5.000000"
slotmask = "0.700000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mclip = "0.500000"
gamma_out = "2.400000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
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"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/lut/custom_lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
3 Likes

Ok, I know. Thanks, I have done it all and works. Low speed in my smartphone, but it works.

thanks!

1 Like

Sorry with the difference of time… i can’t answer you before… but you got your answer. :slight_smile:

1 Like

@guest.r Internal Res 224p is not working in HiRes and NTSC version.

2 Likes

can you shared your preset ? grade + crt-guest-advanced + glass

i would like to give a try please. (but i don’t know how to combinate the 3 shaders)

2 Likes

For Infos:

In 1080p i have more accurate result with xbr2 to compare with xbr3.

xBR2 (scale shader 3) + crt-guest advance + pre-scaler x factor X3 is my choice at the moment.

5 Likes

Good catch, fixed now.

New Release Version (18.02.2021-r1):

Notable changes:

  • 224p scanline mode enabled now with NTSC and Hires versions.
  • Small cleanup of unused code.

Download link:

https://mega.nz/file/AwgmCDBA#HaUgzL_8lMRfVJt8UUeNE0n_a9Zjt5gJmX5J7TM_RC0

10 Likes

You can use grade instead of the first stock pass and increase the number of passes to add the glass shader as the last one. Grade is found in the /misc folder, glass.slang should be downloaded from:

and also put into the /misc folder.

3 Likes

grade is working but for glass i downloaded wit “save under” but when i try to put in pass 12 … (last pass) i have error.

How about xbr-mlv4-multipass ? It produce the cleanest result for SOTN.

combinate with crt-guest advance ? i mean you can’t combiante because it’s already a preset !

Prior multipass shaders require editing the preset in a text editor (xbr-mlv4-multipass, ScaleFX…).

1 Like

What edition please?

With the default crt preset, there is only one stock pass to be replaced. Some shaders consist of more passes, which should be numbered accordingly, from 0 to last pass number if added to the crt shader preset. All that by a text editor.

2 Likes

Glass is now available on libretro github. Download the shader folder again.

The glass pass must be set as linear.

2 Likes

I share some screenshot with arcade and snes games. CRT guets-advanced + XBR-lv2 on a 1080 tv

Thanks mates for all the work !!!

3 Likes

I’ sorry mate, but i think “XBR-lv2” is not activated on your pictures…

don’t forget to play wit scale shader and pre x-factor scaler.

maybe i say bullshit… but definitely “XBR-lv2” shader don’t seems to be applied on your picture.

Normally with " XBR-lv2" it should loook like this:

3 Likes

Mmmm sure? Is my first shader pass number 0, xbr-lv2 and scale to 3. Maybe CRT Mask shader parameter is setted to 8.00? For me is a good config.

Yeah, otherwise the very static middle pixel gets picked up by the shader smoothing and the xBR AA effect is almost not present. Mask 8 is otherwise a 4k mask with even sub-pixel RGB spacing, which should look better than mask 0 with mask size of 2.0. It can be used though for a low quality TV look with lower output resolutions.

2 Likes

pre-x factor scale ? in shaders params …

1 Like