Please show off what crt shaders can do!

Same preset with Guest’s HD + S-XBR + Image adjustment with some mods to add scanlines to the mix, very happy with the results and so far it also seems to keep moire in check (1080p, non-integer scaling + curvature). :nerd_face:

11 Likes

Looks great! Time to put these in a preset pack!

3 Likes

Oh, I really liked it. I would like to try. How about posting the combination and preset for us?

2 Likes

Actually I already changed it, instead of S-XBR I now use XBR lvl 2 that I find more “tidy”, I also pulled back a little on deconvergence for moire reasons… The final result is the same (at least at full screen :wink:), but some details now are looking better (check the numbers in the timer in the previous preset, now the look correct)!

shaders = "19"
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/xbr-lv2-multipass/xbr-lv2-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/xbr-lv2-multipass/xbr-lv2-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 = "4.000000"
scale_type_y3 = "source"
scale_y3 = "4.000000"
shader4 = "shaders_slang/edge-smoothing/xbr/shaders/support/b-spline-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/b-spline-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"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
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"
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"
SMALL_DETAILS = "1.000000"
WP4 = "0.200000"
XBR_EQ_THRESHOLD = "0.000000"
FD = "1.000000"
sat = "0.400000"
WP = "-5.000000"
wp_saturation = "1.300000"
BP = "-5.000000"
vigstr = "0.150000"
GAMMA_INPUT = "1.850000"
gamma_out = "1.650000"
m_glow = "1.000000"
warpX = "0.040000"
warpY = "0.060000"
csize = "0.050000"
bsize1 = "0.100000"
glow = "0.200000"
bloom = "-0.200000"
mask_bloom = "-0.250000"
halation = "-0.200000"
gamma_c = "0.950000"
gsl = "2.000000"
scanline1 = "5.000000"
scanline2 = "5.000000"
beam_min = "1.450000"
beam_max = "1.350000"
tds = "1.000000"
scans = "0.800000"
scan_falloff = "0.900000"
scangamma = "3.000000"
ssharp = "0.300000"
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 = "1.000000"
deconrb = "-1.000000"
deconrry = "1.000000"
deconrby = "-1.000000"
decons = "0.500000"
addnoised = "0.280000"
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"

Thanks! yeah I was thinking about that, even tho my “use case” might be narrow; I just need to tidy up things and trim some presets… :sweat_smile:

6 Likes

Thanks a lot @Hari-82! Great Job!

2 Likes

What Out Run version is that?
I mean, on mine the horse is facing right, your is facing left.
Also, my Ferrari is a bit wider than yours; i wonder if it is an aspect ratio thing or if the whole sprite is different.

Very nice results, congrats!

1 Like

Thanks!

that is Out Run “(sitdown/upright, Rev B) (Enhanced Edition v2.0.3)” in FBneo, I think the sprite, like in some beat’em up, gets flipped horizontally when you turn the car so “il cavallino” face right or left depending on the car’s direction, I think!

Aspect ratio is set to core provided, witch gives a 4/3 aspect (it fits the overlay I use), I tried 1:1 PAR but is way wider.

2 Likes

Same preset (xbr lvl 2 prepended) but with some adjustments and this time integer scaled; I think I will switch to integer scaling for most systems for a while and see how it goes…

5 Likes

New release: crt-royale-1080p-v13

  • I’ve generated a new LUT using grade shader and now it’s the default LUT loaded. The old one can be selected through the parameters screen;
  • At last I found a good output for Royale using slot mask. The same presets can be found inside ‘slotmask-presets’ folder;
  • Improved no-scanlines preset. Now I think I got gamma right for it;
  • Got rid of sharp preset as it wasn’t very good at non-integer scalings.

Screens of the slotmask presets:

12 Likes

Nice! Are you modelling those presets with the real crt on a side?

Not at my side, though I use my CRT almost everyday, so I remember how it looks.

The real CRT doesn’t exhibit fancy effects over the pixels as the most complex shaders do. It looks like a simple CRT shader using some mask. The time response and brightness makes the difference, and it cannot be simulated by shaders, so we have to create fancy effects to distract the user (:P) into thinking it’s a real crt.

3 Likes

Decades of crt shader development just threw in the trashcan by an irrefutable sentence :rofl:

3 Likes

I mean, I’m being simplistic here as I’m evaluating only my CRT through component cables. Of course using other cables you have many other effects.

3 Likes

Ofc, I was joking, but the base truth stays still.

2 Likes

Had to give these babies a quick spin. Right off the bat I notice when I enable any of the “Geometry - Mode” settings I get this weirdness going on the sides of the screen as well as the top and the bottom:

This happens on both the slot mask and aperture grille presets

1 Like

Good! Looks like ‘Border - Darkness’ param can’t be ZERO. Increase it and this bug disappears.

It’s a Royale bug and happens even on default Royale.

1 Like

That did the trick, thanks. Ok back to playing and tweaking around with all this sexiness lol.

1 Like

That slotmask preset looks fantastic. But strangley the noscanline preset don’t work anymore. I’m pretty sure they worked the last time I tried them from an older version

I just tested here and it’s working.

You need to update your slang shaders. Some shaders changed path. You probably don’t have jinc2 inside interpolation folder.

2 Likes

Some general improvements to my xbr lvl 2 + guest’s hd preset

this one with transparency :nerd_face:

7 Likes