New CRT shader from Guest + CRT Guest Advanced updates

Yes I have already tested it and I have an idea of ​​how to combine it for a good result :smile:, in the meantime I have achieved this result. Thanks again for your shader I’m having a good time with it hehe :video_game:

3 Likes

Meanwhile i’m again playing with magic glow. Some setups work very nice if the game’s brightness is a bit lower from the source:

9 Likes

It’s pretty, very pleasing to the eye. :muscle:

1 Like

It looks really good…

2 Likes

I managed to have a completely visible mask with maximum brightness for only one pixel among the six available. It may seem like a stupid idea, you might say, but the image without any zoom will not be dark (tested in 4k).

I also made an Amiga preset taking specifities from different screens and personnal tastes. Here’s a picture from John Novak if you want to see the differences.

PUAE core with 720px resolution in settings ->

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"
CP = "4.000000"
cust_artifacting = "0.000000"
cust_fringing = "0.000000"
ntsc_fields = "1.000000"
ntsc_phase = "3.000000"
ntsc_gamma = "0.625000"
ntsc_taps = "9.000000"
ntsc_cscale1 = "2.250000"
ntsc_ring = "1.000000"
CSHARPEN = "5.000000"
CCONTR = "0.000000"
DEBLUR = "7.000000"
GAMMA_INPUT = "2.800000"
gamma_out = "2.200000"
interm = "0.000000"
HSHARPNESS = "1.050000"
SIGMA_HOR = "0.725000"
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"
SIGMA_H = "3.200000"
SIGMA_V = "1.000000"
SIZEHB = "1.000000"
SIGMA_HB = "0.400000"
SIZEVB = "1.000000"
SIGMA_VB = "0.250000"
halation = "0.780000"
hmask1 = "1.000000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "-1.000000"
scanline1 = "40.000000"
scanline2 = "28.000000"
beam_min = "1.000000"
beam_size = "0.000000"
scans = "0.000000"
scan_falloff = "0.100000"
scangamma = "1.350000"
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"
3 Likes

Is there any chance to get the “rolling_scan” function back?

1 Like

@guest.r While I was doing some tests, I found a way to use Magic glow high strength at 7.0 while keeping multiples of eight for brightness at the center of scanlines. I’m going to do some more testing but I already like how it looks. :mage:

4 Likes

Hey, glad you stopped by and give some nudges. :smiley:

Here is the last version featuring rolling scanlines:

The main reason this functionality was deprecated is that the effect is a side product by recording a crt tv screen with a camera, next it’s working nicely only with a limited area of parameter settings. Would require a larger chunk of code and control parameters, but this is something i try to avoid.

When you record a CRT TV with a camera, the frame rate mismatch between the TV's refresh and the camera's capture creates the **rolling scanline artifact** .

Hey! It’s very nice to see some advanced approaches. My mentions on this is that you can also try to increase Magic Glow Low / High Strength parameters, as they are also instances to control the effect strength. Otherwise i can increase the parameter range a bit, np.

4 Likes

Thanks I’m gonna try this right now ! :yum:

Edit: I had to adjust a few values ​​and I like the result, good advice :+1:

4 Likes

Thank you very much for your response. I’ve been using the latest version of MegaBezel, which includes your scanline version with the “rolling_scan” function. I’m not very familiar with the technical part you mentioned, but the effect (or defect?) it creates on the edges of each graphic and letter, and even a bit of flickering, immediately transports me to a sense of nostalgia, which is what I’m looking for and how I remember my old TV. Without that effect, I feel like my custom presets lose a lot of realism. I’ve tried using other shaders that produce scanlines and include the rolling function, but they don’t compare to yours. It’s the highest quality I’ve come across.

3 Likes

Hi, thanks for your marvelous shader. I’m newbie in tweaking and encounter a problem of halo/bloom whitch trail behind sprites . I 'm using the “crt guest advanced HD” shader. It s visible on black background like the first stage of aldynes on supergraphx for exemple. I try to tweak magic glow and bloom to mini but it s still visible. Could you please indicate me the tweak to delete this effect please? If I choose the another shader version “crt guest advanced fast (or fatest)” with default settings, this effect isn t visible. I wonder whitch setting caused this effect between the 2 versions. Thanks for your help. Regards

2 Likes

Hey! Thanks for stopping by! :smiley: Afterglow strenght parameter is to be set to 0.0, then the trails will be gone.

2 Likes

thank you so much, the glow are gone :grinning: perfect shader thank you regards

1 Like

New Release Version (2024-10-27-r1):

Notable changes:

  • After some consideration, rolling scanlines are back with a tad different implementation. Some scanline settings and mask combos might produce strange side-effects, but should work in general. Implemented in standard, NTSC and HD versions.
  • Mask Zoom parameter range increase.

Download link:

https://mega.nz/file/AsZHBAQb#hYz9VBk1G-b511vDF_slRcLBG2cnhwArr8HRvZjp4u4

12 Likes

Hi, could you please remember us what is the benefit / usage of the rolling scanlines ? Thanks

1 Like

It’s one of the less standard effects with crt shaders, but stil present. But i suggest to try it out first hand.

1 Like

Ok thanks I will try when I comeback home Regards

1 Like

Nice. This update gives me a reason to go tinker with my 4k Shadow Mask presets again.

Edit: @guest.r I think these are good Shadow Mask settings for 4k:

For this image I used the crt mask settings mask 6, size 4, zoom -6 and (transform to) Shadow Mask 1.00.

I think these are the 4k Shadow Mask settings I’ve been needing all this time. I think I’m gonna use them for my next update.

3 Likes

Yeah, 4 * 3 - 6 = 6, so an even number for mask width, which is a condition for a decent shadow mask.

Just mention it, CRT Mask Zoom Sharpen works very well with this mask settings, maybe you want to tweak this aspect also.

Also a decent setting is with mask 12, size 2, mask zoom -8. But you already got a great combo.

1 Like

Nice. Always good to have new options, I don’t think I tried that combination yet.

I’ve actually just started using a bit of that since my last pack, it seems to work the best with Shadow Mask presets. I notice that setting brings some pixel details out in backgrounds especially in darker areas.

Your shader is so customizable it’s almost insane the possibilities you can pull off. I’ll play around in the lab a bit more then start to get my new pack ready. I’m not tweaking much so this shouldn’t take too long, gonna be a small update just like yours lol.

1 Like