I always see a kind of noise in the screenshots you post.
Just curious, is it intended or just jpg compression artifacts?
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.
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.
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:
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
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.
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"
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
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”
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.
Some more shots of dithering on the Genesis being blended with minimal artifacts:
And a Saturn shot, because why not:
Looks fantastic! Image is stunning for my eyes!!!
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…
That shader thing has become a hobby for me
Push more, more, more
Here is the preset if you like it so much. Later i will port it to slang when i am in the mood
shaders = "3"
feedback_pass = "0"
shader0 = "shaders_glsl/misc/shaders/simple_color_controls.glsl"
filter_linear0 = "false"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_glsl/misc/shaders/chromaticity.glsl"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
shader2 = "shaders_glsl/crt/shaders/zfast_crt_composite.glsl"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
TEMP = "7799.000000"
SAT = "1.150000"
postbr = "1.400000"
gamma_in = "2.200000"
gamma_out_red = "2.400000"
gamma_out_green = "2.400000"
gamma_out_blue = "2.400000"
COLOR_MODE = "5.000000"
blury = "-0.100000"
HIGHSCANAMOUNT1 = "0.300000"
HIGHSCANAMOUNT2 = "0.150000"
TYPE = "1.000000"
sat = "1.000000"
FLICK = "8.000000"