New CRT shader from Guest + CRT Guest Advanced updates

Yeah, that’s a part of the glowing pixel mitigation. It’s consistent regarding to a non-sharpened image, the difference is prior some pixels are getting “to bright”, now they are limited in max brightness.

Good news is it can be anything in between “these two images”. I tried 25% of max mitigation, and it’s also a good compromise.

2 Likes

Ah ok. Which setting do I tweak to get it between the two of them? I like how it looks more in the first one so I’d want it closer to that look.

Edit: Gamma Correction? Raising that seems to give me the look from the first image.

1 Like

Hello, I am currently using the 0-hspack. I would like to slightly modify the CRT-Guest-Advanced-RGB shader. I would appreciate any feedback on whether this would be a good idea or not.

version with crt effect

Here is a version without any CRT effects.

  • TNTC = “2.000000”
  • wp_saturation = “1.000000”
  • gamma_out = “2.200000”
  • glow = “0.000000”
  • bloom = “0.100000”
  • mask_bloom = “0.100000”
  • gsl = “1.000000”
  • scanline1 = “0.400000”
  • scanline2 = “10.000000”
  • beam_min = “1.000000”
  • beam_max = “1.000000”
  • beam_size = “1.000000”
  • scans = “1.000000”
  • scan_falloff = “1.000000”
  • scangamma = “2.200000”
  • spike = “0.000000”
  • h_sharp = “2.000000”
  • s_sharp = “1.500000”
  • shadowMask = “3.000000”
  • maskstr = “0.400000”
  • mcut = “1.000000”
  • maskboost = “1.500000”
  • mask_gamma = “2.200000”
  • AS = “0.000000”
  • sat = “1.000000”
  • FINE_BLOOM = “1.000000”
  • halation = “-0.100000”
  • hmask1 = “1.000000”
  • mask_layout = “1.000000”
  • brightboost = “1.200000”
  • clips = “0.000000”
  • bmask1 = “0.000000”
  • double_slot = “1.000000”`
1 Like

Edit: Gamma Correction? Raising that seems to give me the look from the first image.

Great, i also had gamma correction in mind, if you get the desired looks than it would be sweet. One of the culprits lies in 3-phase design and temporal blending…

2 Likes

I’m still testing things out. Truth be told I love the first image I posted the most, that look is the cleanest sharpest looking composite preset I’ve made to date and is the look I want to put out in my next pack. Going from that clean white space to that fuzziness look between the letters was really rubbing me the wrong way, I actually went back to your previous update for a few minutes lol.

For now I’m playing with the gamma correction and going back and forth seeing if it matches that look from the first image. If I can get it like that again I’m good to go.

Edit: Yeah… I don’t know @guest.r , although gamma correction seems to do the trick but the more I raise it the more it starts to bring in a whole new set of issues. I might just go back to the previous release and just deal with it, I like how my preset looks on that one and I can’t get that look back on this one plus it feels like I’m nitpicking too much at this point especially since I’m essentially the cause of this current update you just released.

2 Likes

New Release Version (2024-09-21-r2):

Notable changes:

  • 09-18-r1: rainbowing now only works with 2-phase mode.
  • 09-18-r1: some general NTSC passes code improvements.
  • 09-18-r1: adaptive sharpen improvements, some artifact mitigation was also desired (2-phase).
  • 09-21-r1: adaptive sharpen improvements.
  • 09-21-r1: adaptive sharpen “glowing” pixels mitigation.
  • 09-21-r1: some general code cleanup.
  • 09-21-r2: “glowing pixels” improvements.

Download link:

https://mega.nz/file/ssYB1QQZ#fJxajSie_E2HlxWNyeTb07q8-bXseqTWY1HZdh5qJOU

14 Likes

That’s crazy. I was literally about to bite the bullet and get started putting together my next pack using your previous pack from the 18th, something told me come here one last time before I get started and here you are.

guest.r you’re a mad man lol. Ok gonna test this right now.

Edit: And BOOM just like that, it’s perfect again:

None of that fuzziness between the letters anymore. The white outline on the Mario bricks no longer look dull but beaming once again.

@guest.r I can’t thank you enough for going back in the lab one more time. In return I’m gonna present to you one of the cleanest looking composite presets to date on my next pack.

7 Likes

Playing a bit with magic glow / ntsc:

8 Likes

Looks like you’re cooking up something in the lab :eyes:

2 Likes

I’m also in need of some presets to play a game or two. Sometimes i try something less ordinary. :grin:

5 Likes

Try mine and see if you like it :joy:

4 Likes

https://forums.libretro.com/uploads/default/original/3X/f/5/f568aab8f3e351647356ddacf1c1468b2a5b21ba.png

This game looks gorgeous!

4 Likes

Thanks, here is a “cleaner” screenie…

8 Likes

One of, if not THE best Amiga game, for what concern the graphic.
An Amiga 500 + 512KB of ram expansion was enough at the time!

4 Likes

The NTSC “preset” was lacking the ability to preserve to preserve chromatic properties of original resolutions while playing games with increased internal resolution.

I’m working on another option to easily integrate existing low-res presets to games with enhanced output resolutions (PSX cores…).

Seems it’s working nice so far:

The user needs to select game’s internal resolution, scanlines and other interlacing pass tweaks are compatible too.

9 Likes

A simple Sega Genesis preset ->

Artifacting value 1.0

Artifacting value 0.0

shaders = "18"
shader0 = "shaders_slang/crt/shaders/guest/advanced/stock.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/advanced/stock.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/shaders/guest/advanced/afterglow0.slang"
filter_linear2 = "true"
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/shaders/guest/advanced/pre-shaders-afterglow.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "PrePass0"
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/ntsc/ntsc-pass1.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "NPass1"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "4.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "0.500000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.slang"
filter_linear6 = "true"
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/advanced/custom-fast-sharpen.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "NtscPass"
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/advanced/stock.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "true"
alias8 = "PrePass"
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/advanced/avg-lum-ntsc.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "AvgLumPass"
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/advanced/linearize-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = "LinearizePass"
float_framebuffer10 = "true"
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/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "Pass1"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/hd/gaussian_horizontal.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "800"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "GlowPass"
float_framebuffer13 = "true"
srgb_framebuffer13 = "false"
scale_type_x13 = "absolute"
scale_x13 = "800"
scale_type_y13 = "absolute"
scale_y13 = "600"
shader14 = "shaders_slang/crt/shaders/guest/hd/bloom_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 = "absolute"
scale_y14 = "600"
shader15 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = "BloomPass"
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/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
AS = "0.000000"
sega_fix = "1.000000"
BP = "-1.000000"
cust_fringing = "0.000000"
ntsc_fields = "1.000000"
ntsc_phase = "2.000000"
ntsc_taps = "24.000000"
ntsc_rainbow1 = "2.000000"
ntsc_cscale = "4.000000"
ntsc_ring = "1.000000"
CCONTR = "0.000000"
GAMMA_INPUT = "2.500000"
gamma_out = "2.200000"
interm = "0.000000"
HSHARPNESS = "1.000000"
SIGMA_HOR = "0.375000"
S_SHARP = "0.000000"
HSHARP = "0.000000"
MAXS = "0.000000"
HARNG = "0.000000"
spike = "2.000000"
m_glow = "1.000000"
m_glow_cutoff = "0.000000"
m_glow_low = "0.500000"
m_glow_high = "0.000000"
m_glow_mask = "0.000000"
SIZEH = "3.000000"
SIGMA_H = "0.950000"
SIZEV = "3.000000"
SIGMA_V = "0.950000"
SIZEHB = "1.000000"
SIGMA_HB = "0.400000"
SIZEVB = "1.000000"
SIGMA_VB = "0.450000"
halation = "0.750000"
hmask1 = "0.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
scanline1 = "40.000000"
scanline2 = "36.000000"
beam_min = "1.000000"
beam_size = "0.000000"
scans = "0.000000"
scan_falloff = "0.100000"
scangamma = "1.600000"
shadowMask = "11.000000"
maskstr = "1.000000"
mcut = "2.000000"
mask_zoom = "2.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mask_gamma = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
7 Likes

Long time no see man. Glad to see you back in action around here.

2 Likes

Thanks, yes I’m running out of free time to devote to retrogaming lately, but not today! :stuck_out_tongue: :video_game:

3 Likes

I see you’ve already dropped your first bomb up above. Man you’ve got to check out all the new features that’s been added to the guest.r shaders, just recently the “ntsc sharpness” positive value setting has gotten a nice overhaul, it’s low key a huge game changer for any ntsc presets that aim for more sharpness while still being able to fully blend dithering in my opinion. Definitely check that setting out if nothing else, I got that baby cranked to the max!

2 Likes

The Professor is back! :partying_face: I must admit you guys tweak the presets the way that’s eluding my stubborn habits, great work!

4 Likes