Please show off what crt shaders can do!

My current config guest adv config + a news: new version of Cho Ren Sha 68K released few days ago by the orginal author!

LINK

If you never tried give it a go, is a great shmup from 1995 and now with some new sprites and background…

It plays really well on PK68K core, I managed to die on the last phase of the last boss of stage 0 (the game will loop after that) :sob: :sob: :sob:

4 Likes

3 Likes

Just thought I’d share my latest attempt at blending dithering while preserving as much sharpness and color as possible:

Here’s the image minus the shader for comparison:

The shader chain is as follows: NTSC-Colors to bring some much needed color vibrancy into the picture, TVOut-Tweaks to blend the dithering, and of course, CRT-Guest-Advanced as the CRT shader of choice. Unfortunately, my potato of a GPU can’t actually handle this preset at full speed for some reason, but I’m sure anything made after 2014 ought to be able to handle it:

shaders = "14"
feedback_pass = "0"
shader0 = "shaders_slang/misc/shaders/ntsc-colors.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/crt/shaders/tvout-tweaks.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "viewport"
scale_x1 = "1.000000"
scale_type_y1 = "viewport"
scale_y1 = "1.000000"
shader2 = "shaders_slang/crt/shaders/guest/advanced/stock.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/crt/shaders/guest/advanced/stock.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "StockPass"
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/advanced/afterglow0.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "AfterglowPass"
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/advanced/pre-shaders-afterglow.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "true"
alias5 = "PrePass"
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/avg-lum.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "true"
alias6 = "AvgLumPass"
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/advanced/linearize.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "LinearizePass"
float_framebuffer7 = "true"
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/advanced/gaussian_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 = "source"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "GlowPass"
float_framebuffer9 = "true"
srgb_framebuffer9 = "false"
scale_type_x9 = "absolute"
scale_x9 = "800"
scale_type_y9 = "absolute"
scale_y9 = "600"
shader10 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "true"
srgb_framebuffer10 = "false"
scale_type_x10 = "absolute"
scale_x10 = "800"
scale_type_y10 = "absolute"
scale_y10 = "600"
shader11 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "BloomPass"
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/advanced/crt-guest-advanced.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "viewport"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = ""
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "viewport"
scale_x13 = "1.000000"
scale_type_y13 = "viewport"
scale_y13 = "1.000000"
TVOUT_RESOLUTION = "1024.000000"
TVOUT_COMPOSITE_CONNECTION = "1.000000"
TVOUT_RESOLUTION_Y = "160.000000"
TVOUT_RESOLUTION_I = "160.000000"
TVOUT_RESOLUTION_Q = "160.000000"
sega_fix = "1.000000"
m_glow_cutoff = "0.400000"
SIZEH = "50.000000"
SIGMA_H = "15.000000"
SIZEV = "50.000000"
SIGMA_V = "15.000000"
glow = "-0.020000"
bloom = "0.500000"
mask_bloom = "0.500000"
halation = "-0.005000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "-1.000000"
scans = "0.000000"
h_sharp = "15.000000"
s_sharp = "2.000000"
shadowMask = "9.000000"
maskstr = "1.000000"
mcut = "2.000000"
slotmask = "1.000000"
slotmask1 = "1.000000"
slotwidth = "3.000000"
double_slot = "2.000000"
deconrr = "0.250000"
deconrg = "-0.250000"
deconrry = "0.750000"
deconrby = "-0.750000"
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

Almost identical to the one I’m using for the Genesis as it’s based on the same “160 resolution”, but I like your colors better I think!

I’m just testing on 1080p, I’m trying to make it look good the best I can.

5 Likes

CRT-Guest-Advanced, HD and NTSC for ReShade.

Some screenshots at default settings.

Advanced -

HD -

NTSC -

6 Likes

New experiment hah :laughing:

4 Likes

Here some shots from PS1 Ghost in the shell intro movie with my current preset using smaa + guest’s advance shader:

https://imgsli.com/MTg1OTQ3

https://imgsli.com/MTg1OTQ1

https://imgsli.com/MTg1OTUw

6 Likes

Welp, turns out Guest-Advanced can blend dithering just fine by itself. Just had to set Downsampling-X to 0.95 and voila:

The difference is a bit subtle (I think the edges around brightly colored pixels may be a tad bit rougher as opposed to when using TVOut-Tweaks), but what’s important is that it runs on my toaster. I didn’t think TVOut-Tweaks combined with GDV would make my GPU buckle like it does (even the Fast version can’t hang), so it’s good this option exists within GDV itself.

Yeah, one of the things I noticed about shaders that blend dithering is, in the case of NTSC shaders, the colors suffer as a result due to color bleed and general washing out, whereas dedithering shaders like mdapt can result in false positives. I thought, then, wouldn’t it be ideal to preserve the quality of the colors while still blending dithering in a way that doesn’t result in pixels being blended that shouldn’t be? This does mean a certain level of horizontal blurring, but it can be minimized. Blur just enough to blend the pixels and no more, is what I’m thinking.

Of course, there’s certainly a case to be made for accurately representing what the games actually looked like on real hardware using composite cables and such, but hey, if we have the option to have our cake and eat it, too, why shouldn’t we?

3 Likes

You can take a look in your Video—>Filters and look for:

Blargg_NTSC_SNES_Custom_pseudo_MD_Composite.filt

Or

Blargg_NTSC_SNES_Custom_pseudo_MD_S-Video.filt

I think you might like what they can do as well as the performance.

There are even newer and sharper filter presets which blend the Sonic Waterfalls properly available in my CyberLab Custom Blargg Video Filter Preset Pack.

Discussed here, trading accurateness for legit personal taste, maybe it suits yours as well :slight_smile:

1 Like

A large update. Using lanczos fast, color controls, ossc and slot mask

8 Likes

3 Likes

Testing another 1080p settings, mask 6, improved image…

7 Likes

I am damned.

There was a time I liked those masks type very much at 1080p, then something switched into my brain and I started to spot a disturbing pattern all over the image when displaying wide solid colors, oh well, not too bad; then I started to pay attention to that pattern and I started to see it even on smaller areas, then my hunt for different/fake slotmasks started…

It is not even easy to show it to others, because as soon as I zoom the image or paint arrows over it to highlight it, it fades away lol.

I want to spare you from that, so I will not even try to describe it.

Btw if I zoom your preset it looks very good, at least :slight_smile:

1 Like

@kokoko3k yes same here I can “see” patterns on 1080p so I tend to use some form/level of shadowmask or use some “light” slotmask but only without scanlines.

1 Like

2 Likes

My neverending quest of trying to replicate that organic phosphorus glow from the crt :upside_down_face:

12 Likes

Looks good :heart_eyes: which setting are you using? :thinking:

1 Like

3 Likes