Please show off what crt shaders can do!

Using Guest Venom’s “Internal Resolution Y” you can force a scanline count that works with a slot mask but it messes with the resolution. It’s up to you if you find that bothersome or not:

shaders = "17"
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"
frame_count_mod4 = "2"
mipmap_input4 = "false"
alias4 = ""
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 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
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/custom-fast-sharpen.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "NtscPass"
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/convert-ntsc.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "0.500000"
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/gaussian_horizontal.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "absolute"
scale_x11 = "640"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "GlowPass"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "absolute"
scale_x12 = "640"
scale_type_y12 = "absolute"
scale_y12 = "480"
shader13 = "shaders_slang/crt/shaders/guest/advanced/bloom_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 = "640"
scale_type_y13 = "absolute"
scale_y13 = "480"
shader14 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "BloomPass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "absolute"
scale_x14 = "640"
scale_type_y14 = "absolute"
scale_y14 = "480"
shader15 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "false"
srgb_framebuffer15 = "false"
scale_type_x15 = "viewport"
scale_x15 = "1.000000"
scale_type_y15 = "viewport"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
AS = "0.400000"
CP = "-1.000000"
wp_saturation = "1.250000"
quality = "-1.000000"
cust_fringing = "1.200000"
cust_artifacting = "2.000000"
SHARPEN = "1.200000"
CONTR = "0.250000"
intres = "1.500000"
SIGMA_HB = "0.250000"
SIGMA_VB = "0.250000"
glow = "0.000000"
bloom = "0.200000"
halation = "0.100000"
brightboost = "0.600000"
brightboost1 = "1.300000"
gsl = "-1.000000"
scanline2 = "20.000000"
beam_min = "1.700000"
beam_max = "1.200000"
vertmask = "-0.500000"
rolling_scan = "0.050000"
h_sharp = "15.000000"
s_sharp = "1.500000"
csize = "0.100000"
bsize1 = "0.999999"
sborder = "0.250000"
barspeed = "200.000000"
barintensity = "-0.020000"
shadowMask = "6.000000"
maskstr = "0.950000"
masksize = "2.000000"
maskDark = "0.900000"
slotmask = "0.950000"
slotmask1 = "0.950000"
slotwidth = "3.000000"
double_slot = "2.000000"
slotms = "2.000000"
mclip = "0.900000"
dctypex = "0.400000"
dctypey = "0.750000"
deconrr = "-7.000000"
deconrb = "7.000000"
deconrry = "5.000000"
deconrby = "-5.000000"
addnoised = "0.260000"
noisetype = "1.000000"
post_br = "1.250000"
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"
2 Likes

Here we go another shader update. First major change about this pack is that I finally managed to get the RF cable look down with rainbow banding effects for my 8/16 bit presets but mainly for the Genesis/Megadrive system. As you all know that system produced some dithering/transparency effects on the television with that cable hooked up that produced a rainbow such as the infamous Sonic waterfall and I managed to blend that look into guest’s shader perfectly:

For my “arcade” presets previously I always use to set the NTSC Phase setting to 3 phase, I changed that to Auto so now it’ll choose the correct ntsc phase to use for whichever system you load up automatically (cps2 games look as they’re suppose to now in ntsc phase 2).

https://www.mediafire.com/file/0njadc4tnbl8xb1/crt-guest-advanced-ntsc-slotmask+presets+05-23-2022.zip/file

All 8/16 bit game pics were taken with NTSC Signal Mode in the parameters turned off. Now you can switch between the RF cable look or a crispy clean sharp look on the fly simply by going into parameters and turning off/on the very first setting.

You must have guest’s latest shader for my presets to display properly which you can find here.

@HyperspaceMadness you already know lol. I think I’m satisfied with how these came out, I managed to cover all the bases that I wanted with these presets and I hope you all like them as well.

Edit: As of 5/23 I have updated my 8/16 bit shaders. There was excessive jittering going on and I managed to not only reduce it but also sharpen up the overall picture a little more in the process. That juicy rainbow banding now looks better than ever.

6 Likes

Can you increase sharpness to compensate somewhat for the resolution loss?

I wouldn’t want to lower the scanline count to anything less than an accurate number of scanlines based on the resolution of the image though.

But that Slot_Mask looks good in the screenshots. I had the idea to use less than integer values for the Slot Mask Size to fine tune it as you have done but I guess that’s a bit low on my priority list.

I really like that I can see the RGB "phosphor” triads clearly and cleanly. I haven’t been seeing that level of mask detail in most shader preset screenshot posts which use slot masks.

Made a quick edit and put up a new link so if you just grabbed the pack earlier please grab it again

1 Like

I really like your filters because I did own a few TVs which your presets remind me of. However, IMO it makes little sense to have an NTSC arcade filter. Just my 2 cents.

For the record some of my best memories were of me playing on a crappy 27" Zenith. (God bless my dad, he did what he could on a working man’s salary).

2 Likes

Hey thank you and I’m glad you enjoy my shaders and that it reminds you of the golden years. As for using NTSC I’ll show you an example of why it’s absolutely needed for arcade as well as the systems. Here’s Street Fighter Alpha 2 for example. I loaded up guest’s vanilla advanced shader without ntsc, take a look at the character portrait backgrounds:

the dithering isn’t blended in properly.

Now here’s the same screen with NTSC added in from my shader preset:

The character portrait backgrounds look as they’re suppose to now. I was making a mistake not blending those dithering effects in properly in pretty much all my past shader packs, that problem is eliminated going forward now.

3 Likes

Yeah, I can see the benefits it’s just the fact that these games were never available this way unless you played them on Sega Saturn, PS1, etc. In another thread I mentioned how you can achieve these results with different masks. Here is an example I think you will be interested in.

It’s Guests’ RRGGBBx mask. It allows for transparency in SFZ3/A3. Personally it’s a white whale so I am really happy to find it works for it.

It’s easy to use a different mask and see how most of them do not create the transparency the arcade machines allowed. Anyway, I think you will find this interesting. It is mask 13

3 Likes

Yeah sorry my bad boss. Yesterday got a messy writting. I meant MBZ_3 folder which only have optimized presets for 4K.

I really love you take the care to make proper long explanations. Really appreciate you do it bud.

Thanks for reminding me the 1600x900 solution. Sorry for my bad memory.

Your whole project is a massive thing to take the time to read about. It definetely has several more tweaking capabilities but it’s not a thing I can understand so shortly.

Your presets along with Mega bezel project are things that push my GTX 1050 mini 2GB and i5-2400 CPU (2011) to almost it’s max capabilities.

In the near future it’s going to be a lot simpler to integrate CRT Shader focused presets with Bezel/Overlay/Background graphics focused presets though so stay tuned!

This is so nice to know it bud. Really appreciate so much your work into your project alongside the Mega bezel + soqueroeu features.

2 Likes

Somes with Guest filter, arcade like.

For 1080p, for see good the screenshots more or less as me im watching, backlight in high and contrast, low brightness in the monitor/TV, color a bit more that midle, TV LCD need to in game mode, sharpening at low if TV, i dint know in oled or 4K. Real curvature/ distortion is applied and humbar, these dynamics, a flikkering mode for complete will be really good for feel more as a arcade screen CRT, vigneting applied too and bloom or the other not because some strange ireal alo apear as a texture when i apply, some other thigs.

As these arcade screens with good contract and color, very good in movement i like but good, mask present.

a greeting.

6 Likes

Nothing new here, just a few tweaks to the STD Mega Bezel Shader:

6 Likes

When I say “resolution” I meant the scanline count is inaccurate. I’m not sure how the math works out for a slot mask to match up to scanlines but maybe it’s something @guest.r would know more about. Thus far my experience is you either have accurate scanlines and a messed up slot mask, or an accurate slot mask with messed up scanlines.

4 Likes

My thought is to get it to match up you’d need to be using integer scale, then make sure the integer multiple matches how many pixels tall the mask pattern is. So that’s a lot of constraints, so a bit difficult to manage.

In the Mega Bezel you could use the fake scanlines and adjust the count to get the just right size to match the mask, but that still feels like it would not be that robust, and of course you end up with a mismatch with the original content res, which may or may not look bad.

3 Likes

Integer scale wasn’t working out for me when using the slot mask. I’ll give it another try and post screenshots in the Guest Venom thread.

3 Likes

It’s been years since I played any Capcom arcade titles on an arcade monitor but are you saying dithering wasn’t displayed properly back in the 90’s at the arcades and that it was only displayed properly on home ports? That doesn’t make sense to me. I’ll also give that mask a look, if I remember correctly it’s the same as mask 10 but for 4k displays

1 Like

Yes RGB connection doesn’t blend pixels like that.

Watch the video (4:25 & 4:44) Street Fighter Alpha 2 - Arcade Cabinet Game Review - Capcom 1996 - YouTube

3 Likes

Actually arcade monitors had RGB connection, for proper “emulation” I use guest’s vanilla. But I think there should be a sort of middle way, as obviously there’s a difference between LCD, LED and CRT. For example, I think maybe also the incandescence of the phosphors produced some kind of dithering, but I may be wrong.

2 Likes

From the looks of that video, in comparison to guest’s ntsc shader that looks just mask 0 or 7 using blend mode 2, that’s the first thing that I thought of. I like to use the Slot Mask so the pattern would probably be a little different looking if I switched it to blend mode 2 with the ntsc resolution scaling raised up anywhere past 20, or you can get that look with the vanilla shader like @Fab said.

Now I feel tempted to make a new shader update but this time make separate presets for just arcade

1 Like

This might make sense. It will give you the freedom to differentiate between the different types of screens, input types and console outputs that were used with different content instead of trying to fit everything into one format.

1 Like

Yeah that’s sounding like a plan. Maybe I’ll whip up something real fast as a proof of concept type of thing and post it up to see what you guys think. Instead of slot mask this time I want to use lottes mask 1 or 3 not sure yet. Something nice and sharp but most important, it gotta look sexy lol

What’s wrong with slot mask, especially for Arcade Games? Which actual screens used Lottes?

With that said, variety is the spice of life they say!

Good luck in your shader preset endeavors!