Please show off what crt shaders can do!

Aha, I just checked the glsl version. On Slang, mask 9 only results in this:

Screenshot-(314)

I have updated my Reshade preset. The debanding noise is no longer default, I’ve opted for Gaussian blur instead. The CA is blue/yellow now, and a few other changes.

Here’s a video preview: https://youtu.be/kGK-6U8aUfY

Download links:

Mirror: https://github.com/frankschoeman/kyubus-shader

7 Likes

Yes a typo prevented it to work, i fixed it and opened a PR.

5 Likes

I have been spending some time increasing my DOS library using the DOSBox-Pure core.

I also just purchased a new Thrustmaster T.16000M joystick and have been using it to play one of my all time favorite DOS games.

Here is a shot of the game (Magic Carpet Plus) using one of my new Mega Bezel multiple reference presets.

Using built-in tools I have changed the base preset to Guest ADV NTSC, applied a graphics override to change the look of the bezel (And scale of the screen), and converted one of @ProfessorBraun’s recently posted presets to an internal shader override.

I don’t think the game has ever looked better. :grin:

6 Likes

Thank you! I have configured retroarch to use one global shader combination, you know, one shader to rule them all (consoles), instead of saving one for each. Kinda like back in the 90s, we only had one CRT to plug all consoles, so they all had the same look.

3 Likes

Hi Baelog, I really like what you have made and what I see, please can I ask if you can share your preset? Thank you with all my heart.

Unfortunately it doesn’t work like that because there are substantial differences in the way that different consoles output their video signals.

Having one shader to rule them all would only account for the TV input and output side of things, while completely ignoring the differences in characteristics among the various consoles outputs which shaders also seek to emulate.

Well, I’m sure some folks did have fancy tvs with more inputs, but we had one tv with an rf adapter to the antena of the tv. All consoles from the NES to the N64 looked fine with that input alone. I know there are different cables and each console had more outputs, but back then we also had adapters to use the composite, s-video or RGB signals interchangeably. That is what I am trying to replicate with this one shader:

Ps: not sure how to upload a .slangp file :sweat_smile:

EDIT: These settings should work for all consoles up to the 5th gen (pre 2000 era); plus it is lightweight on resources. Save it to a .slangp file and it should load in retroarch. For android devices is a bit more tricky to set it up :upside_down_face:

shaders = "10"
shader0 = "shaders_slang/blurs/shaders/sharpsmoother.slang"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "LinearGamma"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/dithering/shaders/sgenpt-mix/linearize.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
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/dithering/shaders/sgenpt-mix/sgenpt-mix-pass1.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/dithering/shaders/sgenpt-mix/sgenpt-mix-pass2.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "CB_Output"
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/dithering/shaders/sgenpt-mix/sgenpt-mix-pass3.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
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/dithering/shaders/sgenpt-mix/sgenpt-mix-pass4.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 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/dithering/shaders/sgenpt-mix/sgenpt-mix-pass5.slang"
filter_linear6 = "false"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
shader7 = "shaders_slang/misc/shaders/image-adjustment.slang"
filter_linear7 = "false"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
shader8 = "shaders_slang/sharpen/shaders/fast-sharpen.slang"
filter_linear8 = "false"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
shader9 = "shaders_slang/crt/shaders/crt-consumer.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
min_w = "0.020000"
smoot = "0.400000"
lumad = "3.499999"
mtric = "1.500000"
UseGamma = "0.000000"
CB_MITIG_NEIGHBRS = "2.000000"
VL_BLEND_LEVEL = "0.900000"
VL_MITIG_NEIGHBRS = "4.000000"
ia_saturation = "1.100000"
ia_contrast = "0.700000"
ia_black_level = "0.170000"
ia_bright_boost = "0.050000"
ia_R = "1.150000"
ia_G = "1.150000"
ia_B = "1.150000"
SHARPEN = "0.250000"
CONTR = "0.250000"
warpx = "0.020000"
warpy = "0.030000"
corner = "0.040000"
smoothness = "100.000000"
beamlow = "1.500000"
beamhigh = "1.400000"
brightboost1 = "0.700000"
brightboost2 = "0.700000"
MaskDark = "0.300000"
MaskLight = "1.300000"
slotmask = "0.300000"
slotwidth = "1.000000"
GAMMA_IN = "2.200000"
GAMMA_OUT = "2.600000"
glow = "0.150000"
Size = "1.500000"
sat = "1.300000"
contrast = "1.150000"
vpower = "0.300000"
vstr = "30.000000"
3 Likes

I’m not really talking about the different output standards, cables and connectors that the consoles supported. I was referring to something a little deeper which are the differences in output signal generated by the consoles due to differences in the way they processed their respective video signals and due to differences in video encoding chips used before the signal reached it’s final analog output port/cable i.e. RF/Composite/S-Video/RGB/Component.

You can take a read here if you’re curious.

I’m not saying that what you are trying to achieve is wrong though, just saying that technically the shaders do more than simulate what the TV is doing.

You can zip it and host it somewhere and post the link or copy and paste the contents and put it in Preformatted text single quotes.

Thanks! I figured it was the way to go :sweat_smile:

1 Like

8 Likes

Video:

Download: https://github.com/frankschoeman/kyubus-shader

5 Likes

Just continuing to showing off what CRT Shaders can do! Here are a two new presets I’ve been working on. One is a Shadow Mask preset and the other is a new Composite Slot Mask NTSC preset. Enjoy!

By the way, I haven’t seen nor heard @Nesguy around these parts in a while. I hope all is well with him.

1 Like

You mind sharing your settings used to get that shadow mask? I wanna try taking a stab at it.

I don’t mind but I was planning to reveal these as well as other settings as part of my next CyberLab Mega Bezel Death To Pixels Shader Preset Pack release. It’s been a while since my last release, so what you’re seeing now is really a sort of teaser/sneak peek preview of my work in progress and a build up to the next release.

I’m actually hoping that things will actually look the same (or at least very similar) whenever the next HSM Mega Bezel Reflection Shader version that resolves issues with the NTSC Filtering settings is released.

The setting that gives the Shadow Mask effect is just regular Mask 6 with a stagger/rotation/offset to match my resolution and viewport scale. What I’ve realized is that it doesn’t seem to be scalable so if the viewport scale is changed the mask may not look the same and the offset might need to be adjusted to suit.

It was also affected by the recent alignment change to the BGR Mask Layout (which was subsequently reverted) so you should probably get close to the screen and adjust the offset until you get the type of results you’re looking for. It’s not too difficult, as you adjust the Mask Stagger you’ll just see the phosphors shift or rotate and you stop adjusting when it looks the way you want.

You can take a look at this post here for an example.

Other than that, you can probably play around with the Mask Size to get the TVL you’re looking for.

Those screenshots actually show 2 different mask types by the way, Shadow Mask as well as Slot Mask.

1 Like

That’s precious information right there, at least I know that since it uses mask 6 which is pretty much for 1080p, whichever preset I come up with I can then make 1440p and 4k versions using mask 10 and mask 12 respectively. That link you posted use mask 5 in the settings and the screenshot there looks nothing like the shadow mask shots you’re using up above but I get the idea.

I just wanted your mask settings really not anything else, looks like you’re saving it all for a release though and that’s cool. Least I know the few settings I have to play with are mask shift/stagger and the crt mask size setting so I should be able to come up with something. In any case thanks for the feedback.

I think there might be more value in teaching someone how to fish. Lol. Especially one with your talents, potential and capabilities.

You might say that that link looks nothing like the Shadow Mask settings I’m using above but not too far below that post, you’ll see my very first released attempts at using the Mask Stagger to create a Shadow Mask. I’ve seen it posted about before and it’s something that I’ve always wanted to try.

Mask 5 is just a B&W version of Mask 6 as far as I can tell. I knew I didn’t want that, I wanted RGB so I used Mask 6 instead.

Then it was pretty obvious that size 1 wasn’t going to cut it because I was trying to match the reference photo in the post.

Yeah, I kinda wanted to present things in a fun and exciting way. I’ve recently hit my 1,000th post so that might be something to make a little fuss and blow a kazoo over.

Usually this would be available already in my pack for all to see but as it is now, not many would be able to apply my exact settings and get those results because of the version of CRT-GUEST-ADVANCE that the current version of HSM Mega Bezel Reflection Shader is using. I understand you’re only interested in the Mask Settings so I guess that aspect may not apply to you as you have access to the latest CRT-GUEST-ADVANCE, in which case the Mask Settings would look the same provided that your Integer/Non-Integer Scale and Viewport Scale settings also match because remember the Mask Stagger looks different even if you change the Integer Scale Offset by 1 for example. At least that’s what I’ve observed so far in my limited testing using different versions of the Shaders, each with their own bugs and kinks to work out.

Only yesterday, I kinda patched together a hybrid version of HSM Mega Bezel Reflection Shader using different parts of different versions and modified shader passes in order to get what you’re seeing there. When I release something I want it to be something that actually works and looks as intended on an actual release version of HSM Mega Bezel Reflection Shader.

I kinda care about these things, that’s why I put in my disclaimer about using my Shader Preset Pack with the version of HSM Mega Bezel Reflection Shader that it was designed and tested for to ensure quality and fidelity.

I’ve only just put together all of my settings in my first few presets today because they’re usually spread across many different files as I iterate when I’m tweaking something. I’m actually still consolidating my new NTSC Slot Mask preset that I’m also using in my most recent screenshot posts into useable and packageable presets.

When you look at the Mask Size settings, there are only 4 available I believe. As for the Mask Stagger Settings, there are only 16 positive and 16 negative increments (of course you can also enter additional values manually). You really have to look at the results in real-time on your particular screen as certain settings can give unwanted artifacts.

So feel free to ask if you would like any additional information on how to match the reference photo in the post or even my screenshots and I’ll be happy to assist.

1 Like

Yeah I’ve seen it around a few times myself and have now also become interested in it

I did a quick tweak eyeballing your pics and ended up using mask size 2 and mask shift 4:

I don’t think that matches up but it’s a start.

Thank you. I’ll more than likely end up going to guest to get some advice from him as well.

1 Like

This is what I’m talking about. If you tried 4, then how does 4.5 look or 3.5? Also, don’t forget the negative values as well. Negative values seem to rotate the Phosphors around a central axis.

I’m sure you’ll get it exactly the way you like it after you play around some more. Besides playing games, isn’t that where the real fun lies?

After you get a setting that you like, be sure to check your graphics for any strangeness that doesn’t look quite right or looks misaligned then you might have to tweak some more.

One thing I’ve recently noticed is that vertical resolution plays a very important role in avoiding all sorts of anomalies with scanlines and masks.

I also prefer this approach because when I retire, it would be better if you knew and understood the why, instead of just the what.

1 Like

-4 seems like the one that’s used in your pics, that’s the next number I ended up trying. In any case I’ll see what guest has to say. I’m also loving how gritty this mask makes the pixels look:

I can definitely see this and aperture grille presets becoming a part of my shader pack easily to complete the mask triangle with slot mask.

1 Like