Do we even know if Sonic runs on a Genesis or a PAL Mega Drive modded for 60 Hz?
I’ve been playing around with this shader for a while and I’m loving it. My goal lately is to tweak the ntsc version for specific systems. An example would be that NES produces these crawling artifacts while moving horizontally, so I changed the Artifacts and Fringing values to the desired effect (both to 1.00 if I recall correctly).
But I wonder what should one generally use for the rest of the systems. I’ve heard for example that TurboGrafx-16’s composite signal is generally cleaner compared to let’s say the Genesis one. If we just leave the setting to Composite for all systems will that automatically do the ‘right’ job?
what are you using as a reference for the different systems?
Mainly some YouTube videos from gaming reviews, such as CGR.
So the problem here is that TVs widely differed in the filtering they would apply to an NTSC signal, so we have to eliminate that as a variable if we’re trying to replicate the composite output of each particular system.
I think some PVMs don’t have a comb filter, so they might be good to use for this. It’d be ideal if we could find someone with a filter-less PVM and access to all the systems.
This is exactly what I’ve been doing in my preset pack.
Feel free to take a look:
I made a bit of tweak. Here are my settings for SNES with Blargg’s RGB on the HSM Mega Bezel…
shaders = "45"
shader0 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-params-all.slang"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "CorePass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/stock.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "DerezedPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-add-negative-crop-area.slang"
filter_linear2 = "false"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "NegativeCropAddedPass"
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-cache-info-all-params.slang"
filter_linear3 = "false"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "InfoCachePass"
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/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-text-adv.slang"
filter_linear4 = "false"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = "TextPass"
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-intro.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "IntroPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "shaders_slang/stock.slang"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "PreDeDitheringPass"
float_framebuffer6 = "false"
srgb_framebuffer6 = "false"
shader7 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass0.slang"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
shader8 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass1.slang"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
shader9 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass2.slang"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
shader10 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass3.slang"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
shader11 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass4.slang"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
shader12 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-ps1dither/hsm-PS1-Undither-BoxBlur.slang"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "true"
srgb_framebuffer12 = "false"
shader13 = "shaders_slang/stock.slang"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "refpass"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
shader14 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass0.slang"
filter_linear14 = "false"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "scalefx_pass0"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass1.slang"
filter_linear15 = "false"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "false"
srgb_framebuffer15 = "false"
scale_type_x15 = "source"
scale_x15 = "1.000000"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass2.slang"
filter_linear16 = "false"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "source"
scale_x16 = "1.000000"
scale_type_y16 = "source"
scale_y16 = "1.000000"
shader17 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass3.slang"
filter_linear17 = "false"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "false"
srgb_framebuffer17 = "false"
scale_type_x17 = "source"
scale_x17 = "1.000000"
scale_type_y17 = "source"
scale_y17 = "1.000000"
shader18 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-scalefx/hsm-scalefx-pass4.slang"
filter_linear18 = "false"
wrap_mode18 = "clamp_to_border"
mipmap_input18 = "false"
alias18 = ""
float_framebuffer18 = "false"
srgb_framebuffer18 = "false"
scale_type_x18 = "source"
scale_x18 = "3.000000"
scale_type_y18 = "source"
scale_y18 = "3.000000"
shader19 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass1.slang"
wrap_mode19 = "clamp_to_border"
mipmap_input19 = "false"
alias19 = ""
float_framebuffer19 = "true"
srgb_framebuffer19 = "false"
scale_type_x19 = "source"
scale_x19 = "1.000000"
scale_type_y19 = "source"
scale_y19 = "1.000000"
shader20 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass2.slang"
filter_linear20 = "false"
wrap_mode20 = "clamp_to_border"
mipmap_input20 = "false"
alias20 = ""
float_framebuffer20 = "true"
srgb_framebuffer20 = "false"
scale_type_x20 = "source"
scale_x20 = "1.000000"
scale_type_y20 = "source"
scale_y20 = "1.000000"
shader21 = "shaders_slang/stock.slang"
wrap_mode21 = "clamp_to_border"
mipmap_input21 = "false"
alias21 = "PreCRTPass"
float_framebuffer21 = "false"
srgb_framebuffer21 = "false"
shader22 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-afterglow0.slang"
filter_linear22 = "true"
wrap_mode22 = "clamp_to_border"
mipmap_input22 = "false"
alias22 = "AfterglowPass"
float_framebuffer22 = "false"
srgb_framebuffer22 = "false"
scale_type_x22 = "source"
scale_x22 = "1.000000"
scale_type_y22 = "source"
scale_y22 = "1.000000"
shader23 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-pre-shaders-afterglow.slang"
filter_linear23 = "true"
wrap_mode23 = "clamp_to_border"
mipmap_input23 = "true"
alias23 = ""
float_framebuffer23 = "false"
srgb_framebuffer23 = "false"
scale_type_x23 = "source"
scale_x23 = "1.000000"
scale_type_y23 = "source"
scale_y23 = "1.000000"
shader24 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-dogway/hsm-grade.slang"
filter_linear24 = "true"
wrap_mode24 = "clamp_to_border"
mipmap_input24 = "false"
alias24 = ""
float_framebuffer24 = "false"
srgb_framebuffer24 = "false"
scale_type_x24 = "source"
scale_x24 = "1.000000"
scale_type_y24 = "source"
scale_y24 = "1.000000"
shader25 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-custom-fast-sharpen.slang"
filter_linear25 = "true"
wrap_mode25 = "clamp_to_border"
mipmap_input25 = "false"
alias25 = ""
float_framebuffer25 = "false"
srgb_framebuffer25 = "false"
scale_type_x25 = "source"
scale_x25 = "1.000000"
scale_type_y25 = "source"
scale_y25 = "1.000000"
shader26 = "shaders_slang/stock.slang"
filter_linear26 = "true"
wrap_mode26 = "clamp_to_border"
mipmap_input26 = "true"
alias26 = "PrePass"
float_framebuffer26 = "false"
srgb_framebuffer26 = "false"
scale_type_x26 = "source"
scale_x26 = "1.000000"
scale_type_y26 = "source"
scale_y26 = "1.000000"
shader27 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-avg-lum.slang"
filter_linear27 = "true"
wrap_mode27 = "clamp_to_border"
mipmap_input27 = "true"
alias27 = "AvgLumPass"
float_framebuffer27 = "false"
srgb_framebuffer27 = "false"
scale_type_x27 = "source"
scale_x27 = "1.000000"
scale_type_y27 = "source"
scale_y27 = "1.000000"
shader28 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-interlace-and-linearize.slang"
filter_linear28 = "true"
wrap_mode28 = "clamp_to_border"
mipmap_input28 = "false"
alias28 = "LinearizePass"
float_framebuffer28 = "true"
srgb_framebuffer28 = "false"
scale_type_x28 = "source"
scale_x28 = "1.000000"
scale_type_y28 = "source"
scale_y28 = "1.000000"
shader29 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-gaussian_horizontal.slang"
filter_linear29 = "true"
wrap_mode29 = "clamp_to_border"
mipmap_input29 = "false"
alias29 = ""
float_framebuffer29 = "true"
srgb_framebuffer29 = "false"
scale_type_x29 = "absolute"
scale_x29 = "800"
scale_type_y29 = "source"
scale_y29 = "1.000000"
shader30 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-gaussian_vertical.slang"
filter_linear30 = "true"
wrap_mode30 = "clamp_to_border"
mipmap_input30 = "false"
alias30 = "GlowPass"
float_framebuffer30 = "true"
srgb_framebuffer30 = "false"
scale_type_x30 = "absolute"
scale_x30 = "800"
scale_type_y30 = "absolute"
scale_y30 = "600"
shader31 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-bloom_horizontal.slang"
filter_linear31 = "true"
wrap_mode31 = "clamp_to_border"
mipmap_input31 = "false"
alias31 = ""
float_framebuffer31 = "true"
srgb_framebuffer31 = "false"
scale_type_x31 = "absolute"
scale_x31 = "800"
scale_type_y31 = "absolute"
scale_y31 = "600"
shader32 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-bloom_vertical.slang"
filter_linear32 = "true"
wrap_mode32 = "clamp_to_border"
mipmap_input32 = "false"
alias32 = "BloomPass"
float_framebuffer32 = "true"
srgb_framebuffer32 = "false"
scale_type_x32 = "source"
scale_x32 = "1.000000"
scale_type_y32 = "source"
scale_y32 = "1.000000"
shader33 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-crt-guest-advanced.slang"
filter_linear33 = "true"
wrap_mode33 = "clamp_to_border"
mipmap_input33 = "false"
alias33 = ""
float_framebuffer33 = "true"
srgb_framebuffer33 = "false"
scale_type_x33 = "viewport"
scale_x33 = "1.000000"
scale_type_y33 = "viewport"
scale_y33 = "1.000000"
shader34 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/hsm-deconvergence.slang"
filter_linear34 = "true"
wrap_mode34 = "clamp_to_border"
mipmap_input34 = "false"
alias34 = ""
float_framebuffer34 = "false"
srgb_framebuffer34 = "false"
scale_type_x34 = "viewport"
scale_x34 = "1.000000"
scale_type_y34 = "viewport"
scale_y34 = "1.000000"
shader35 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-post-crt-prep-image-layers.slang"
wrap_mode35 = "clamp_to_border"
mipmap_input35 = "false"
alias35 = "MBZ_PostCRTPass"
float_framebuffer35 = "false"
srgb_framebuffer35 = "false"
shader36 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-linearize-crt.slang"
filter_linear36 = "true"
wrap_mode36 = "clamp_to_border"
mipmap_input36 = "true"
alias36 = "BR_MirrorLowResPass"
float_framebuffer36 = "false"
srgb_framebuffer36 = "false"
scale_type_x36 = "absolute"
scale_x36 = "800"
scale_type_y36 = "absolute"
scale_y36 = "600"
shader37 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-blur-outside-screen-horiz.slang"
filter_linear37 = "true"
wrap_mode37 = "clamp_to_border"
mipmap_input37 = "true"
alias37 = ""
float_framebuffer37 = "false"
srgb_framebuffer37 = "false"
shader38 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-blur-outside-screen-vert.slang"
filter_linear38 = "true"
wrap_mode38 = "clamp_to_border"
mipmap_input38 = "false"
alias38 = "BR_MirrorBlurredPass"
float_framebuffer38 = "false"
srgb_framebuffer38 = "false"
shader39 = "shaders_slang/blurs/blur9x9.slang"
filter_linear39 = "true"
wrap_mode39 = "clamp_to_border"
mipmap_input39 = "true"
alias39 = "BR_MirrorReflectionDiffusedPass"
float_framebuffer39 = "false"
srgb_framebuffer39 = "false"
scale_type_x39 = "absolute"
scale_x39 = "128"
scale_type_y39 = "absolute"
scale_y39 = "128"
shader40 = "shaders_slang/blurs/blur9x9.slang"
filter_linear40 = "true"
wrap_mode40 = "clamp_to_border"
mipmap_input40 = "true"
alias40 = "BR_MirrorFullscreenGlowPass"
float_framebuffer40 = "false"
srgb_framebuffer40 = "false"
scale_type_x40 = "absolute"
scale_x40 = "12"
scale_type_y40 = "absolute"
scale_y40 = "12"
shader41 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-reflection.slang"
wrap_mode41 = "clamp_to_border"
mipmap_input41 = "false"
alias41 = "BR_CRTAndReflectionPass"
float_framebuffer41 = "true"
srgb_framebuffer41 = "false"
scale_type_x41 = "viewport"
scale_x41 = "1.000000"
scale_type_y41 = "viewport"
scale_y41 = "1.000000"
shader42 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-bezel-images-under-crt.slang"
filter_linear42 = "true"
wrap_mode42 = "clamp_to_border"
mipmap_input42 = "false"
alias42 = "BR_LayersUnderCRTPass"
float_framebuffer42 = "true"
srgb_framebuffer42 = "false"
scale_type_x42 = "viewport"
scale_x42 = "1.000000"
scale_type_y42 = "viewport"
scale_y42 = "1.000000"
shader43 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-bezel-images-over-crt.slang"
filter_linear43 = "true"
wrap_mode43 = "clamp_to_border"
mipmap_input43 = "false"
alias43 = "BR_LayersOverCRTPass"
float_framebuffer43 = "true"
srgb_framebuffer43 = "false"
scale_type_x43 = "viewport"
scale_x43 = "1.000000"
scale_type_y43 = "viewport"
scale_y43 = "1.000000"
shader44 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm/hsm-combine-passes.slang"
wrap_mode44 = "clamp_to_border"
mipmap_input44 = "false"
alias44 = "CombinePass"
float_framebuffer44 = "false"
srgb_framebuffer44 = "false"
scale_type_x44 = "viewport"
scale_x44 = "1.000000"
scale_type_y44 = "viewport"
scale_y44 = "1.000000"
GAMMA_INPUT = "2.200000"
gamma_out = "2.500000"
post_br = "2.000000"
HSM_ASPECT_RATIO_MODE = "6.000000"
HSM_SCALEFX_ON = "1.000000"
HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = "500.000000"
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = "30.000000"
MDAPT_MODE = "1.000000"
CP = "5.000000"
TNTC = "4.000000"
wp_saturation = "1.350000"
g_signal_type = "0.000000"
g_crtgamut = "1.000000"
glow = "0.000000"
> Cita
> bloom = "0.900000"
> bloom_dist = "0.700000"
> halation = "0.050000"
> SIGMA_HB = "0.350000"
> SIGMA_VB = "0.350000"
> gamma_c = "1.200000"
> gsl = "1.000000"
> beam_size = "0.650000"
> vertmask = "0.500000"
> scans = "1.150000"
> s_sharp = "1.000000"
> ring = "0.000000"
> shadowMask = "10.000000"
> masksize = "2.000000"
> maskstr = "1.000000"
> slotmask = "1.000000"
> slotmask1 = "1.000000"
> slotwidth = "8.000000"
> double_slot = "3.000000"
> mclip = "1.000000"
> GDV_DECONVERGENCE_ON = "1.000000"
> deconrr = "-1.000000"
> deconrb = "1.000000"
> deconrry = "-1.000000"
> deconrby = "1.000000"
> decons = "2.000001"
> noiseresd = "1.000000"
> textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage"
> SamplerLUT1 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/trinitron-lut.png"
> SamplerLUT1_linear = "true"
> SamplerLUT1_wrap_mode = "clamp_to_border"
> SamplerLUT1_mipmap = "false"
> SamplerLUT2 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/inv-trinitron-lut.png"
> SamplerLUT2_linear = "true"
> SamplerLUT2_wrap_mode = "clamp_to_border"
> SamplerLUT2_mipmap = "false"
> SamplerLUT3 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/nec-lut.png"
> SamplerLUT3_linear = "true"
> SamplerLUT3_wrap_mode = "clamp_to_border"
> SamplerLUT3_mipmap = "false"
> SamplerLUT4 = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/hsm-guest/lut/ntsc-lut.png"
> SamplerLUT4_linear = "true"
> SamplerLUT4_wrap_mode = "clamp_to_border"
> SamplerLUT4_mipmap = "false"
> IntroImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/IntroImage_MegaBezelLogo.png"
> IntroImage_linear = "true"
> IntroImage_wrap_mode = "clamp_to_border"
> IntroImage_mipmap = "true"
> ScreenPlacementImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> ScreenPlacementImage_linear = "false"
> ScreenPlacementImage_wrap_mode = "clamp_to_border"
> ScreenPlacementImage_mipmap = "false"
> TubeDiffuseImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Tube_Diffuse_2390x1792.png"
> TubeDiffuseImage_linear = "true"
> TubeDiffuseImage_wrap_mode = "clamp_to_border"
> TubeDiffuseImage_mipmap = "true"
> TubeColoredGelImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Colored_Gel_Rainbow.png"
> TubeColoredGelImage_linear = "true"
> TubeColoredGelImage_wrap_mode = "clamp_to_border"
> TubeColoredGelImage_mipmap = "true"
> TubeShadowImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Tube_Shadow_1600x1200.png"
> TubeShadowImage_linear = "true"
> TubeShadowImage_wrap_mode = "clamp_to_border"
> TubeShadowImage_mipmap = "true"
> TubeStaticReflectionImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/TubeGlassOverlayImage_3840x2160.png"
> TubeStaticReflectionImage_linear = "true"
> TubeStaticReflectionImage_wrap_mode = "clamp_to_border"
> TubeStaticReflectionImage_mipmap = "true"
> BackgroundImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/BackgroundImage_Carbon_3840x2160.png"
> BackgroundImage_linear = "true"
> BackgroundImage_wrap_mode = "clamp_to_border"
> BackgroundImage_mipmap = "true"
> BackgroundVertImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/BackgroundImage_Carbon_3840x2160.png"
> BackgroundVertImage_linear = "true"
> BackgroundVertImage_wrap_mode = "clamp_to_border"
> BackgroundVertImage_mipmap = "true"
> ReflectionMaskImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_White_16x16.png"
> ReflectionMaskImage_linear = "true"
> ReflectionMaskImage_wrap_mode = "clamp_to_border"
> ReflectionMaskImage_mipmap = "true"
> FrameTextureImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/FrameTexture_2800x2120.png"
> FrameTextureImage_linear = "true"
> FrameTextureImage_wrap_mode = "clamp_to_border"
> FrameTextureImage_mipmap = "true"
> CabinetGlassImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> CabinetGlassImage_linear = "true"
> CabinetGlassImage_wrap_mode = "clamp_to_border"
> CabinetGlassImage_mipmap = "true"
> DeviceImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DeviceImage_linear = "true"
> DeviceImage_wrap_mode = "clamp_to_border"
> DeviceImage_mipmap = "true"
> DeviceVertImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DeviceVertImage_linear = "true"
> DeviceVertImage_wrap_mode = "clamp_to_border"
> DeviceVertImage_mipmap = "true"
> DecalImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> DecalImage_linear = "true"
> DecalImage_wrap_mode = "clamp_to_border"
> DecalImage_mipmap = "true"
> NightLightingImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/NightLighting_1920x1080.png"
> NightLightingImage_linear = "true"
> NightLightingImage_wrap_mode = "clamp_to_border"
> NightLightingImage_mipmap = "true"
> NightLighting2Image = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/NightLighting_1920x1080.png"
> NightLighting2Image_linear = "true"
> NightLighting2Image_wrap_mode = "clamp_to_border"
> NightLighting2Image_mipmap = "true"
> LEDImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> LEDImage_linear = "true"
> LEDImage_wrap_mode = "clamp_to_border"
> LEDImage_mipmap = "true"
> TopLayerImage = "shaders_slang/bezel/Mega_Bezel/shaders/HyperspaceMadness/textures/Placeholder_Transparent_16x16.png"
> TopLayerImage_linear = "true"
> TopLayerImage_wrap_mode = "clamp_to_border"
> TopLayerImage_mipmap = "true"
Cool preset
One thing I wanted to point out is that this was saved as a full preset. Which means it includes all the passes.
If/when the Mega Bezel’s shader chain gets updated this preset will likely not work properly anymore, or fail to load.
Instead of saving a full preset, I would suggest instead saving a simple preset. You can do this by turning on the Simple Preset setting in the Shaders > Save page then saving your preset. This will ensure that your preset will still load in future versions of the Mega Bezel.
Your preset would look something like this:
#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV__GDV.slangp"
GAMMA_INPUT = "2.200000"
gamma_out = "2.500000"
post_br = "2.000000"
HSM_ASPECT_RATIO_MODE = "6.000000"
HSM_SCALEFX_ON = "1.000000"
HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = "500.000000"
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = "30.000000"
MDAPT_MODE = "1.000000"
CP = "5.000000"
TNTC = "4.000000"
wp_saturation = "1.350000"
g_signal_type = "0.000000"
g_crtgamut = "1.000000"
glow = "0.000000"
Ok. I din’t know, I’ll know for the next time. Thanks
Interesting. Is there any shader that tries to emulate the CRT filters on top of NTSC?
And do we know if the waterfalls are supposed to be blended on S-Video or not?
That’s a tough one, since svideo is very difficult to get out a Genesis/MD and involves a modified 32X add-on IIRC. The pseudo-transparency from SNES’ Jurassic Park and Kirby’s Dreamland 3 are probably easier to check.
Hi, not sure if this is the right place but… I have noticed a wierd behaviour with “shaders_slang/crt/crt-guest-advanced.slangp” I’m on the lastest version provided by the online updater. I usually use vulkan as video driver and it all works great, today a I starded experimenting with some settings/drivers, With GLcore and Vulkan is all good but I noticed that with d3d11/12 when I launch a vertical game in FbNeo the “rotation” gets all funky when using crt-guest-advanced.
Aspect ratio is correct (core provided) but the picture is rotated and “squished” inside the 3/4 screen… Video Rotation is set to OFF in the core options. If I switch to ON the picture is correctly displayed in 4/3 “horizontally” and the shader works correctly…
D3D modes would indeed need some extra love. At least i found some issues with mip mapping and frame history too. But gl/glcore are working top notch and vulkan better and better, so i guess polish on d3d modes could be a bit postponed, since they are not this cross-platform in the first place.
Thanks for the answer! Well at least I know is not something on my side… As I said not the biggest deal because I mainly use vulkan, but on some fbaneo games with vulkan and glcore there are some issues, with some games, concerning refresh rate/frame pacing or something in that area where with d3d there are none… well I’ll try different solutions because I don’t want to give up your shader!
OT on
if interested. this is what I noticed: For Fbaneo I keep Sync to exact framerate ON (even though I do not have a vrr monitor) so that games use the correct framerate, and vsync on.
For example dodonpachi with this settings runs correctly at the correct pace (around 57 fps). if I set Sync to exact framerate OFF it goes to 60fps witch is incorrect and the game goes slightly faster then the correct speed (this can be noticed if you know the game and music).
This is all good and it works for most of the games that I tried but for some it doesn’t:
R-Type (jap) for example, with the same settings it starts to lose/drop frames and from the correct ~55 goes to 52-53 and music starts to crackle (I do not think is a performance issue because I can fast forward and have many 100s fps to “spare”)…
Now all of this with vulkan, if I use glcore mostly the same but I can set adaptive v-sync: seams stable but a little tearing appear.
With d3d11 all works well without adaptive vsync and keeps the correct frame rate. that’s why I was trying to use your shader with d3d xD
OT off
Not to say as much, but if @guest.r is interested to watch
Linus Tech Tips guys got their hands on a HD CRT https://www.youtube.com/watch?v=C_-9Rw5CJNE
not only the image quality is great but also on 4:3 its solid, it begs me to wonder if its possible to make a HD CRT mask for both reshade/WinUAE and the slang packs, royale even on its reshade port never fixed this issue, and some games looked strange with apperture grille or shadowmask.
Is this a different preset than your n64 one?
You can try the MaskGlowAdvanced.fx ReShade shader from:
It has all the mask options like the crt-guest-advanced shader. The high TVL science is quite modest though. I guess there is not much to add to existing options.
Regarding emulating a hd crt there aren’t many options, just pick a mask which produces a high enough TVL rating, minding that you need at least a 1440p display to come somewhere close.
4k is good enough for a hd crt look, if you prefer it, but it doesn’t mean that games with low-res input resolution will look more appealing. Some of the nicest presets around are using a rather low TVL rating with 4k presets.
Sorry guys to bother you with pics all the time, but I was mistaken with my CRT. Now I realised that mask 12 is the right one. Looks a lot better now with mask 12, I think I was doing something wrong… Here are some pics of the sega saturn with HSM Mega Bezel…
After switching to Mask 12 did you also change the Mask Size to 1? Also did you change the width to 7 from 8?
The screenshots look good! You have a good eye to be able to so closely match your reference CRT!
No, I use size 1 for 4k, I use width of 7 height 3… Thanks a lot. I help myself making closeup photos from my mobile phone with the macro camera…