Please show off what crt shaders can do!

I’ve had to replace all: “ and: ” occurences with: " otherwise it failed to load; maybe on your end it reacts differently and uses wrong parameter values.

To past code, one have to wrap it like this: Screenshot_20231129_203824

preset
#reference "Monitor-Screen_Hmask_Overlapped-oldpainless.slangp"
IN_GLOW_POWER = "1.349999"
TEMPERATURE = "6500.000000"
GAMMA_OUT = "0.450000"
DO_DEDITHER = "1.000000"
DEDITHER_STRENGTH = "0.600000"
OFFSET_STRENGTH = "0.250000"
IN_GLOW_W = "-0.750000"
TATE = "0.000000"
PIXELGRID_GAMMA_H = "5.000003"
HALO_SHARPNESS = "6.499998"
BEZEL_CON = "2.069999"
BEZEL_REFL_STRENGTH = "0.200000"
BEZEL_SPCL_STRENGTH = "0.200000"
DO_BG_IMAGE = "1.000000"
DO_AMBILIGHT = "0.000000"
DO_SPOT = "0.000000"
3 Likes

So much money thrown into this and never finished, but I’ll have my revenge ahahah

4 Likes

May the elbow be with you… :wink: :wink: :wink:

3 Likes

Hi @kokoko3k I’m currently testing your shaders and I think they are great !. But I have one problem: My monitor has a pivot function, which is very good for vertical games (for example 1942). My retroarch settings -> video -> screen orientation -> 90 deg. Video Driver Dx11 preset - tv_slotmask_bloom_bezelwider.slngp

When such settings are enabled and then I turn on e.g. 1942 and change the tate mode to 2 in the shader settings, a problem occurs.

What I mean is that the vertical lines are breaking down. The problem does not occur if screen orientation is set to 0 in the options (but then navigating the retroarch menu is very difficult) or if the video driver is vulkan. Can this be fixed for dx 11?

Thanks!

I don’t know, dx10,11 and 12 have lot of problems from my experience.

From a quick view, it seems a rounding error, but i do all of my development on Linux, so debugging dx11 is not an easy task for me,

Since you can use Vulkan, why don’t you just stick to it or even try GLCore that could be faster on some hardware?

Also, we’ve a dedicated thread, can you answer there?

New release: crt-royale-1080p-v12

  • Added a naked (no scanlines) version;
  • Got rid of borders on all presets.

This naked version is very good for PSX games:

8 Likes

It looks so natural with DKC:

6 Likes

I forgot to work in linear space. It’s now fixed:

crt-royale-1080p-v12b

Before:

Now:

4 Likes

Can we just take a moment of silence to honor the glory of that pixel art?! That is absolute artistry there with the detail in those lightning effects, considering how fast they appear on the screen, the person that did that put so much effort into that sequence. GnG is a game I keep coming back to now for the last 30+ years (I built a dedicated cab for it recently) and everything about it is QUALITY.

I know this isn’t totally on topic, but these shaders really do showcase the art and let it shine :sunglasses:

7 Likes

My first slotmask at 1080p. Thoughts?

#reference "shaders_slang/crt/crt-guest-advanced.slangp"
TNTC = "4.000000"
wp_saturation = "1.000000"
gamma_out = "2.200000"
glow = "0.000000"
bloom = "0.000000"
mask_bloom = "0.000000"
gsl = "1.000000"
scanline1 = "0.000000"
scanline2 = "14.000000"
beam_min = "1.000000"
beam_max = "0.900000"
beam_size = "1.000000"
scans = "1.000000"
scan_falloff = "0.100000"
spike = "0.000000"
h_sharp = "4.100000"
s_sharp = "0.000000"
shadowMask = "2.000000"
maskstr = "0.500000"
mcut = "1.000000"
maskboost = "3.000000"
mask_gamma = "2.200000"
AS = "0.200000"
sat = "0.500000"
FINE_BLOOM = "2.000000"
halation = "-0.200000"
hmask1 = "1.000000"
mask_layout = "1.000000"
brightboost = "1.400000"
clips = "0.000000"
bmask1 = "0.000000"
double_slot = "1.000000"
halation = "0.200000"
mask_zoom = "-1.000000"
maskLight = "1.500000"
slotmask = "0.500000"
slotmask1 = "1.000000"
slotms = "2.000000"
smoothmask = "0.000000"
smask_mit = "0.500000"
4 Likes

Do I need to use integer scaling for this shader? I didn’t use the same games but I think yours looks better than what is on my screen.

If you wanna better scaling, then yes. Guest’ shaders don’t suffer much from non integer scaling artifacts, though.

1 Like

At first I thought you pulled this off on your custom Royale version. Still sexy

2 Likes

Nice Hyllian!

Don’t know what happened to final fight, but CB looks very good.

I was just trying again to have a proper slotmask at 1080p without weird patterns or using visual tricks and i’m progressing like this, i still need to balance colors:

It’s a tedious task, almost no margin for errors.

4 Likes

Guest’s HD + S-XBR + Image adjustment :nerd_face:

Starting point by @Hyllian few posts ago.

4 Likes

Is that what you are using? I can’t seem to find a resolution through AMD Virtual Resolution that allows the game to match that resolution.

1 Like

Nope. My screens are non integer as you can see there.

1 Like

Excellent. I would like to install your setting. Can you please share it if you agree.

1 Like

Sure!

shaders = "20"
feedback_pass = "0"
shader0 = "shaders_slang/misc/shaders/image-adjustment.slang"
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/edge-smoothing/xbr/shaders/support/linearize.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "XbrSource"
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-pass0.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 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/edge-smoothing/xbr/shaders/super-xbr/super-xbr-pass1.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 = "2.000000"
scale_type_y3 = "source"
scale_y3 = "2.000000"
shader4 = "shaders_slang/edge-smoothing/xbr/shaders/super-xbr/super-xbr-pass2.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
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/edge-smoothing/xbr/shaders/support/spline16-x.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 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/edge-smoothing/xbr/shaders/support/spline16-y.slang"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "viewport"
scale_y6 = "1.000000"
shader7 = "shaders_slang/edge-smoothing/xbr/shaders/support/delinearize.slang"
filter_linear7 = "false"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
shader8 = "shaders_slang/crt/shaders/guest/hd/stock.slang"
filter_linear8 = "false"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
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/stock.slang"
filter_linear9 = "false"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "StockPass"
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/afterglow0.slang"
filter_linear10 = "false"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "AfterglowPass"
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/pre-shaders-afterglow.slang"
filter_linear11 = "false"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "true"
alias11 = "PrePass"
float_framebuffer11 = "false"
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/linearize-hd.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "LinearizePass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "Pass1"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "viewport"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/hd/gaussian_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 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/crt/shaders/guest/hd/gaussian_vertical.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "GlowPass"
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "absolute"
scale_x15 = "800"
scale_type_y15 = "absolute"
scale_y15 = "600"
shader16 = "shaders_slang/crt/shaders/guest/hd/bloom_horizontal.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "absolute"
scale_x16 = "800"
scale_type_y16 = "source"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/guest/hd/bloom_vertical.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = "BloomPass"
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "source"
scale_x17 = "1.000000"
scale_type_y17 = "absolute"
scale_y17 = "600"
shader18 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
filter_linear18 = "true"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "true"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
shader19 = "shaders_slang/crt/shaders/guest/hd/deconvergence-hd.slang"
filter_linear19 = "true"
wrap_mode19 = "clamp_to_border"
mipmap_input19 = "false"
alias19 = ""
float_framebuffer19 = "false"
srgb_framebuffer19 = "false"
scale_type_x19 = "viewport"
scale_x19 = "1.000000"
scale_type_y19 = "viewport"
scale_y19 = "1.000000"
ia_saturation = "0.900000"
ia_contrast = "0.950000"
ia_black_level = "0.010000"
ia_R = "0.950000"
ia_G = "0.950000"
ia_B = "1.050000"
XBR_EDGE_STR_P0 = "3.000000"
XBR_WEIGHT = "0.500000"
sat = "0.400000"
WP = "-30.000000"
wp_saturation = "1.300000"
contr = "0.200000"
BP = "-4.000000"
vigstr = "0.150000"
GAMMA_INPUT = "1.700000"
m_glow = "1.000000"
warpX = "0.040000"
warpY = "0.060000"
csize = "0.050000"
bsize1 = "0.100000"
glow = "0.110000"
bloom = "-0.200000"
mask_bloom = "-0.200000"
halation = "-0.200000"
gamma_c = "0.975000"
no_scanlines = "1.000000"
shadowMask = "6.000000"
maskstr = "0.600000"
mcut = "1.300000"
maskboost = "2.300000"
slotmask = "0.500000"
slotmask1 = "0.500000"
slotwidth = "1.000000"
double_slot = "1.000000"
smask_mit = "0.500000"
bmask = "0.020000"
deconrr = "0.750000"
deconrb = "-0.750000"
deconrry = "0.750000"
deconrby = "-0.750000"
decons = "1.200000"
addnoised = "0.200000"
noiseresd = "1.000000"
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"
1 Like

I made this preset for Genesis games (mainly for plagued by dithering). Looks like sgenpt-mix standalone in mode 6 is like ntsc shader without most color artifacts. I mean, a good alternative.

Original screens:

shinobi3-40 shinobi3-59 shinobi3-70

shaders = "13"
feedback_pass = "0"
shader0 = "shaders_slang/dithering/shaders/sgenpt-mix.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/crt/shaders/guest/hd/stock.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/crt/shaders/guest/hd/stock.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "StockPass"
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/hd/afterglow0.slang"
filter_linear3 = "false"
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/hd/pre-shaders-afterglow.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "true"
alias4 = "PrePass"
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/shaders/guest/hd/linearize-hd.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/hd/crt-guest-advanced-hd-pass1.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "Pass1"
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.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/hd/gaussian_vertical.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/hd/bloom_horizontal.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "absolute"
scale_x9 = "800"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "shaders_slang/crt/shaders/guest/hd/bloom_vertical.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "BloomPass"
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "absolute"
scale_y10 = "600"
shader11 = "shaders_slang/crt/shaders/guest/hd/crt-guest-advanced-hd-pass2.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "viewport"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/hd/deconvergence-hd.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "viewport"
scale_y12 = "1.000000"
SGPT_BLEND_OPTION = "6.000000"
SGPT_BLEND_LEVEL = "0.900000"
SGPT_LINEAR_GAMMA = "0.000000"
TNTC = "4.000000"
WP = "30.000000"
glow = "0.000000"
bloom = "0.000000"
mask_bloom = "0.000000"
halation = "0.000000"
gsl = "1.000000"
no_scanlines = "1.000000"
shadowMask = "2.000000"
beam_min = "1.000000"
beam_max = "0.900000"
scans = "1.000000"
scan_falloff = "0.100000"
maskstr = "0.500000"
mcut = "1.000000"
maskboost = "2.500000"
mask_gamma = "2.200000"
mask_zoom = "-1.000000"
slotmask = "0.500000"
slotmask1 = "1.000000"
double_slot = "1.000000"
slotms = "2.000000"
deconrr = "0.250000"
deconrg = "-0.250000"
deconrry = "0.250000"
deconrgy = "-0.250000"
post_br = "1.000000"
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"

7 Likes