Please show off what crt shaders can do!

turboxray PCE hires_slideshow_1.pce using CyberLab_Turbo_Duo_S-Video_Slot_Mask_IV_OLED_NTSC_II.slangp (1080p Optimized) + CFRS_Mini_TV.slangp (1080p Optimized @ 4K)

For proper viewing do not use preview. Download before playing. Requires 4K display for full fidelity.

Click on the link below to download:

turboxray PCE hires_slideshow_1.pce using CyberLab_Turbo_Duo_S-Video_Slot_Mask_IV_OLED_NTSC_II.slangp (1080p Optimized) + CFRS_Mini_TV

Credits:

Title theme for Blazing Lazers (also known as Gunhed) for the TurboGrafx-16, composed by Masatomo Miyamoto (Compile).

turboxray PCE

hires_slideshow_1.pce

http://www.turboxraypce.org/

and the exceptionally talented artists who created these original images.

featuring HSM Mega Bezel Reflection Shader by @HyperspaceMadness, powered by CRT-Guest-Advanced-NTSC by @guest.r and many more shader contributors.

CRT Shader Overlay Graphics & Presets by CyberLab.

Powered by HSM Mega Bezel Reflection Shader.

5 Likes

4 Likes

I always see a kind of noise in the screenshots you post.

Just curious, is it intended or just jpg compression artifacts?

It‘s intended. I had a Samsung plasma tv in the past, which always looked restless if you took a closer look. Maybe Samsung added it to prevent burn in. I add dynamic noise to get this restless messy look. It can also be disabled.

2 Likes

Another one from my Xperia Xz1, that doesn’t do really well with precision at above 4x scale but powerful enough to run every shader there is.

2 Likes

turboxray PCE hires_slideshow_1.pce using CyberLab_Turbo_Duo_Composite_Slot_Mask_IV_OLED_NTSC + CFRS_Mega_TV.slangp

For proper viewing do not use preview. Download before playing. Requires 4K display for full fidelity.

Click on the link below to download:

turboxray PCE hires_slideshow_1.pce using CyberLab_Turbo_Duo_Composite_Slot_Mask_IV_OLED_NTSC + CFRS_Mega_TV

Credits:

Title theme for Blazing Lazers (also known as Gunhed) for the TurboGrafx-16, composed by Masatomo Miyamoto (Compile).

turboxray PCE

hires_slideshow_1.pce

http://www.turboxraypce.org/

and the exceptionally talented artists who created these original images.

featuring HSM Mega Bezel Reflection Shader by @HyperspaceMadness, powered by CRT-Guest-Advanced-NTSC by @guest.r and many more shader contributors.

CRT Shader Overlay Graphics & Presets by CyberLab.

Powered by HSM Mega Bezel Reflection Shader.

2 Likes

I think I’ve gotten closer to my goal of obtaining a preset that combines the blending potential of composite with the color vibrancy of RGB while retaining as much sharpness as possible. This is using a preset consisting of NTSC-Colors and CRT-Guest-Advanced-NTSC:

While it’s not razor-sharp, it’s still sharp enough that you don’t feel like it’s murdering all the details of the pixel art just to blend that damn waterfall. The colors are, of course, nice and vivid, courtesy of disabling all the NTSC parameters that tend to mute them, as well as giving them a nice boost through the NTSC-Colors shader. I’ve also begun to experiment with the Mask Boost parameter, which gives a nice brightness boost along with getting back some of the mask detail lost through the Bloom parameters. The image is actually bright enough that I can more than comfortably play with my monitor’s backlight all the way down to the lowest setting, and according to the 240p suite, while I am missing some color bars, that is purely down to the NTSC-Colors shader, which is a tradeoff I am willing to live with given how much it improves the colors of the image IMO.

Here is the preset, if anyone wants to check it out:

shaders = "19"
feedback_pass = "0"
shader0 = "shaders_slang/misc/shaders/ntsc-colors.slang"
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 = ""
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/stock.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "StockPass"
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/afterglow0.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "AfterglowPass"
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/pre-shaders-afterglow.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "PrePass0"
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/crt/shaders/guest/advanced/ntsc/ntsc-pass1.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "NPass1"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "4.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass2.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "0.500000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/guest/advanced/ntsc/ntsc-pass3.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 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/custom-fast-sharpen.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = "NtscPass"
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/stock.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "true"
alias9 = "PrePass"
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/avg-lum-ntsc.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "true"
alias10 = "AvgLumPass"
float_framebuffer10 = "false"
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/linearize-ntsc.slang"
filter_linear11 = "true"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "LinearizePass"
float_framebuffer11 = "true"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass1.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "Pass1"
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/advanced/gaussian_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 = "800"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "GlowPass"
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_horizontal.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
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/bloom_vertical.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = "BloomPass"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "absolute"
scale_x16 = "800"
scale_type_y16 = "absolute"
scale_y16 = "600"
shader17 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced-ntsc-pass2.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "viewport"
scale_x17 = "1.000000"
scale_type_y17 = "viewport"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/guest/advanced/deconvergence-ntsc.slang"
filter_linear18 = "true"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
sega_fix = "1.000000"
quality = "0.000000"
ntsc_phase = "3.000000"
ntsc_scale = "0.750000"
ntsc_cscale = "2.250000"
CCONTR = "0.000000"
GAMMA_INPUT = "2.400000"
gamma_out = "2.400000"
HSHARPNESS = "1.000000"
S_SHARP = "1.200000"
HSHARP = "2.000000"
MAXS = "0.270000"
HARNG = "0.000000"
m_glow = "1.000000"
m_glow_cutoff = "0.400000"
m_glow_mask = "2.000000"
SIZEH = "14.000000"
SIGMA_H = "15.000000"
SIZEV = "14.000000"
SIGMA_V = "15.000000"
bloom = "0.500000"
mask_bloom = "0.500000"
halation = "-0.005000"
brightboost = "1.000000"
brightboost1 = "1.000000"
gsl = "-1.000000"
scans = "0.000000"
scan_falloff = "0.100000"
shadowMask = "9.000000"
maskstr = "1.000000"
mcut = "2.000000"
maskboost = "1.799999"
slotmask = "1.000000"
slotmask1 = "1.000000"
deconrr = "0.500000"
deconrg = "-0.500000"
deconrry = "0.500000"
deconrby = "-0.500000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/advanced/lut/trinitron-lut.png"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/advanced/lut/inv-trinitron-lut.png"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/advanced/lut/nec-lut.png"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/advanced/lut/ntsc-lut.png"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
8 Likes

4 Likes

New work uploaded as replacement to crt-pocket slang

10 Likes

5 Likes

Trying to bright up 4K, I find it more difficult than 1080p. But I think is getting better. :sweat_smile:

4 Likes

1 Like

Alright, this is my first post (so I can only post 1 image, so here goes!), after watching this thread for awhile, here is my favorite shader settings so far. Works very well with non-integer scaling. The rainbow effect from ntsc is visible too… It’s nes-raw decoder + checkerboard dithering + ntsc 3 phase composite + lanczos3-fast + zfast-crt Tweaked settings: UseGamma = “0.200000”
CD_BLEND_LEVEL = “0.400000” CD_MITIG_LINES = “1.000000” LANCZOS3_ANTI_RINGING = “0.000000” BLURSCALEX = “0.400000” BRIGHTBOOST = “1.400000” MASK_DARK = “0.350000”

EDIT: Forgot the gamma setting (checkboard-dither), thanks for the approved post. I will post later, once I can post more than 1 image :slight_smile:

5 Likes

I hope it’s okay to reply to myself, here are the other screenshots, same settings nes-raw decoder + checkerboard dithering + ntsc 3 phase composite + lanczos3-fast + zfast-crt Tweaked settings: UseGamma = “0.200000” CD_BLEND_LEVEL = “0.400000” CD_MITIG_LINES = “1.000000” LANCZOS3_ANTI_RINGING = “0.000000” BLURSCALEX = “0.400000” BRIGHTBOOST = “1.400000” MASK_DARK = “0.350000”

5 Likes

zfast-crt-composite overhaul to be kind of crt-consumer light version. Here on my old xiaomi note 3 pro, on top of chromaticity and simple color controls, GLSL. That cellphone produces the exact same image as on my PC without any precision issues.

7 Likes

Some more shots of dithering on the Genesis being blended with minimal artifacts:

And a Saturn shot, because why not:

7 Likes

Looks fantastic! Image is stunning for my eyes!!! :heart_eyes:

1 Like

Ok, 2nd 4K brightness attempt, I hope there isn’t too much this time… :sweat_smile:

5 Likes

nes-raw-decoder + lanczos3-fast + ntsc 3 phase 256px composite + zfast-crt. Looks great!, still provides subtle rainbow, subtle blending, text looks more clean. Again this is nice for non-integer scaling and very lightweight…

shader parameters: LANCZOS3_ANTI_RINGING = "0.000000" BLURSCALEX = "0.400000" BRIGHTBOOST = "1.500000" MASK_DARK = "0.350000"

Edit: Just a quick edit for clarity on the order of the shaders… I just noticed the screenshots had the “saved message” re-doing it…

3 Likes

That shader thing has become a hobby for me :joy: Push more, more, more :rofl:

4 Likes