Please show off what crt shaders can do!

Updated VGA Monitor preset. For 1440p displays and higher. Using crt-guest-advanced-hd.slangp. Shader parameters:

pre_bb = "1.020000"
GAMMA_INPUT = "1.750000"
interm = "0.000000"
S_SHARP = "1.500000"
HSHARP = "2.000000"
bloom = "0.100000"
bloom_dist = "0.500000"
halation = "0.050000"
gamma_c = "0.960000"
scangamma = "3.5"
shadowMask = "6.000000"
maskstr = "0.450000"
mcut = "0.800000"
mshift = "1.000000"
mask_gamma = "2.900000"
mclip = "0.350000"
deconrr = "0.500000"
deconrg = "0.250000"
deconrb = "-0.250000"
deconrry = "-0.250000"
deconrgy = "-0.500000"
deconrby = "0.250000"
addnoised = "0.200000"
noiseresd = "1.000000"
noisetype = "1.000000"
post_br = "1.050000"



4 Likes

NEW ReShade VHS - https://drive.google.com/file/d/1IiPFfyOBMoZZrotn-lDPkMl6_4yf3aCk/view

I’m not even sure if it still looks like a VHS. To me now it looks more like a cartoon/anime shader.

Anyways some comparison screenshots.

NEW :

OLD :

(The one’s labeled 1440 are for 4:3 content & the one’s labeled 1920 are for 16:9 content!)

8 Likes

this is loaded from exe file. Is there some way to load it from RetroArch like a preset ? Thanks for sharing bud.

1 Like

If this is your first time using ReShade. All you have to do is copy and paste the following files and folder to the root of your RetroArch folder (where the retroarch.exe is located) :

ReShade-VHS (rename this folder to just ReShade)

ReShade.log

ReShade.ini

ReShade64.dll (rename this to the video driver you are using in RetroArch. Like to OpenGL32.dll for GL and GLCORE or to DXGI.dll for D3D10/11/12)

That is all. Hope you like it.

P.S. - If you are using Vulkan in RetroArch (or any other game) you can learn how to install ReShade for Vulkan here - https://reshade.me

6 Likes

Hi!

Could you please give me a hand / point me in the right direction to get this / such shader working in DOSBox? I use DOSBox staging and tried a few shaders from dosbox-svn-shaders-master.zip. They work but seems most are for the older EGA 15 KHz monitor look with fat scanlines, but I’m looking for a shader for the double scanned 31 KHz look like in your screenshots.

Thank you!

1 Like

This shader is not available for stand-alone dosbox. You can try hyllian (I think that’s available.) Make sure you configure dosbox to vgaonly. If you need SVGA, then make sure to use the 2x scaler if the game runs at 320x200 or 320x240.

Or, just use DOSBox-core in retroarch. Then you can use this exact preset I posted using the crt-guest-advanced shader.

2 Likes

OK, I just tested dosbox-svn with:

[sdl]
fullresolution = desktop
windowresolution = 1440x1080
output = openglnb

[dosbox]
machine  = vgaonly

[render]
aspect    = true
scaler    = none
glshader  = crt-hyllian-updated

And I got these results:


1 Like

These look even better and more authentic to my untrained eyes than the ones you posted previously using crt-guest-advance-hd.

That configuration screen text really took me back a couple dozen years! Lol

That’s the scanline gamma I use. If you like the “grainier” look, just set scanline gamma back to 2.4 (or even lower.) I used 3.5 for brighter colors (looks as if there’s better dynamic range.)

1 Like

Thank you :slight_smile: Looks really nice!

1 Like

Quick question, how do you take these screenshots please.

The dosbox-svn ones? With spectacle (KDE’s screenshot tool.) Dosbox for some reason blocks all hotkeys when fullscreen, so I had to use a 3 second timer in spectable to take the screenshot (start timer, switch to dosbox, make it fullscreen, wait for screenshot.)

For everything else I use flameshot to take screenshots. I have it bound to my PrnScr key.

Okie will try a few tools, maybe the Nvidia driver can do it.

On Windows, MSI Afterburner can do it if you’re already using that.

I can install it, no worries.

Another question, the shaders work with openglpp (pixel perfect aspect ratio) in 15 KHz / 200p mode with the fat scanlines, but when I use scaler=normal2x to use 15 KHz / double scan mode, it doesn’t cooperate with openglpp, but works with opengl and openglnb.

@PhilsComputerLab

You don’t need openglpp with this shader. It takes care of correct scanline display. For example, here’s the letter “C” from Monkey Island when selecting the “Close” verb. Without the shader:

raw

The horizontal line at the top is thinner than the bottom one without the shader and with openglnb when scaling to 1080p. To fix this, you indeed need openglpp.

But, watch what happens when using the shader, even though we still use openglnb:

shader

Scaling is now perfect. Both horizontal lines are the same height (two scanlines.)

This is also true for horizontal scaling, not just vertical. You can use aspect = true when using this shader to get proper non-square pixel aspect ratio (like a CRT) without introducing scaling artifacts.

This behavior can differ between different shaders though. Some shaders might indeed require integer scaling to look good. Hyllian does not require this, from what I can tell.

And, as a general note, the higher the resolution of your display, the better job the shader can do at scaling the image more closely to how a CRT monitor would “scale” it. A 1440p display has some inherent benefits for double-scanned VGA resolutions (400p/480p) because it provides 3 output lines for each input line (400 * 3 = 1200 lines, 480 * 3 = 1440 lines). A 1080p display doesn’t have enough lines. It can still look OK, as these two screenshots of the “C” I posted show, but generally, 1440p is beneficial here.

Edit:
Never use output = opengl with CRT shaders. It will blur the image due to bilinear filtering. The shader has its own filters that are sharper and smarter than bilinear.

1 Like

Thanks for the information. Here are 3 screenshots at 1080p and they are a nice improvement over the standard sharp pixel look. I will test on my other machine, that one has a 1440p monitor and later this year I want to upgrade my TV to 4K then I can test some more :slight_smile:

crt-hyllian-updated is the first image, crt-easymode the second and stock is last one.

1 Like

Nice. Have fun :+1:

The gamma is also better with the CRT shader as it tries to match the CRT gamma curve better. A raw image that was designed on a CRT always looks a bit washed out on LCDs due to different gamma. The CRT shader produces better shadows.

The brightness loss due to the shader’s CRT mask is usually corrected by raising the brightness of your display. You could try and raise brightness in the shader itself, but then you run into color clipping issues (you can’t have a white for example that’s whiter than 100% white.) So to preserve the dynamic range of the image, raise the brightness of your display.

2 Likes

Hi, long time no see.

Small update on crt-hyllian-sinc profiles. The default profile is more pixel art friendly now. Besides, it’s a bit brighter.

Release: crt-hyllian - 22-06-06 - slang

Old crt-hyllian-sinc-glow default profile:

New crt-hyllian-sinc-glow default profile:

17 Likes

Btw, no need to use the normal2x scaler with vgaonly. It doesn’t do anything. vgaonly naturally double-scans output. Unlike svga machine types. Only those need 2x scaling.

1 Like