diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV-NTSC.slangp
new file mode 100644
index 0000000..fbe4056
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV-NTSC.slangp
@@ -0,0 +1,337 @@
+shaders = 44
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = refpass
+
+shader19 = ../../shaders/scalefx/hsm-scalefx-pass0.slang
+filter_linear19 = false
+scale_type19 = source
+scale19 = 1.0
+float_framebuffer19 = true
+alias19 = scalefx_pass0
+
+shader20 = ../../shaders/scalefx/hsm-scalefx-pass1.slang
+filter_linear20 = false
+scale_type20 = source
+scale20 = 1.0
+float_framebuffer12 = true
+
+shader21 = ../../shaders/scalefx/hsm-scalefx-pass2.slang
+filter_linear21 = false
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/scalefx/hsm-scalefx-pass3.slang
+filter_linear22 = false
+scale_type22 = source
+scale22 = 1.0
+
+shader23 = ../../shaders/scalefx/hsm-scalefx-pass4.slang
+filter_linear23 = false
+scale_type23 = source
+scale23 = 3
+
+shader24 = ../../shaders/base/stock.slang
+alias24 = "PreCRTPass"
+
+shader25 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear25 = true
+scale_type25 = source
+scale25 = 1.0
+alias25 = "AfterglowPass"
+
+shader26 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear26 = true
+scale_type26 = source
+mipmap_input26 = true
+scale26 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader27 = ../../shaders/dogway/hsm-grade.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+
+shader28 = ../../shaders/base/stock.slang
+alias28 = "PrePass0"
+
+shader29 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear29 = false
+float_framebuffer29 = true
+scale_type_x29 = source
+scale_type_y29 = source
+scale_x29 = 4.0
+scale_y29 = 1.0
+frame_count_mod29 = 2
+alias29 = NPass1
+
+shader30 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer30 = true
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 0.5
+scale_y30 = 1.0
+
+shader31 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+
+shader32 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear32 = true
+scale_type32 = source
+scale_x32 = 1.0
+scale_y32 = 1.0
+
+shader33 = ../../shaders/base/stock.slang
+filter_linear33 = true
+scale_type33 = source
+scale_x33 = 1.0
+scale_y33 = 1.0
+alias33 = "PrePass"
+mipmap_input33 = true
+
+shader34 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear34 = true
+scale_type34 = source
+scale34 = 1.0
+mipmap_input34 = true
+alias34 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader35 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear35 = true
+scale_type35 = source
+scale35 = 1.0
+float_framebuffer35 = true
+alias35 = "LinearizePass"
+
+shader36 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+filter_linear36 = true
+scale_type_x36 = viewport
+scale_x36 = 1.0
+scale_type_y36 = source
+scale_y36 = 1.0
+float_framebuffer36 = true
+alias36 = Pass1
+
+shader37 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear37 = true
+scale_type_x37 = absolute
+scale_x37 = 640.0
+scale_type_y37 = source
+scale_y37 = 1.0
+float_framebuffer37 = true
+
+shader38 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear38 = true
+scale_type_x38 = absolute
+scale_x38 = 640.0
+scale_type_y38 = absolute
+scale_y38 = 480.0
+float_framebuffer38 = true
+alias38 = GlowPass
+
+shader39 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear39 = true
+scale_type_x39 = absolute
+scale_x39 = 640.0
+scale_type_y39 = absolute
+scale_y39 = 480.0
+float_framebuffer39 = true
+
+shader40 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear40 = true
+scale_type_x40 = absolute
+scale_x40 = 640.0
+scale_type_y40 = absolute
+scale_y40 = 480.0
+float_framebuffer40 = true
+alias40 = BloomPass
+
+shader41 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+filter_linear41 = true
+float_framebuffer41 = true
+scale_type41 = viewport
+scale_x41 = 1.0
+scale_y41 = 1.0
+
+shader42 = ../../shaders/guest/hsm-deconvergence.slang
+filter_linear42 = true
+scale_type42 = viewport
+scale_x42 = 1.0
+scale_y42 = 1.0
+
+shader43 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias43 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_DEDITHER_MODE = 1
+
+HSM_SCALEFX_ON = 1
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 125
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+ntsc_scale = 0.4
+
+shadowMask = 3
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV.slangp
new file mode 100644
index 0000000..fad4387
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV.slangp
@@ -0,0 +1,312 @@
+shaders = 41
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = refpass
+
+shader19 = ../../shaders/scalefx/hsm-scalefx-pass0.slang
+filter_linear19 = false
+scale_type19 = source
+scale19 = 1.0
+float_framebuffer19 = true
+alias19 = scalefx_pass0
+
+shader20 = ../../shaders/scalefx/hsm-scalefx-pass1.slang
+filter_linear20 = false
+scale_type20 = source
+scale20 = 1.0
+float_framebuffer12 = true
+
+shader21 = ../../shaders/scalefx/hsm-scalefx-pass2.slang
+filter_linear21 = false
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/scalefx/hsm-scalefx-pass3.slang
+filter_linear22 = false
+scale_type22 = source
+scale22 = 1.0
+
+shader23 = ../../shaders/scalefx/hsm-scalefx-pass4.slang
+filter_linear23 = false
+scale_type23 = source
+scale23 = 3
+
+// GTU TV Processing
+shader24 = ../../shaders/gtu/hsm-gtu-pass1.slang
+scale_type24 = source
+scale24 = 1.0
+float_framebuffer24 = true
+
+shader25 = ../../shaders/gtu/hsm-gtu-pass2.slang
+scale_type_x25 = source
+scale_x25 = 1.0
+scale_type_y25 = source
+scale_y25 = 1.0
+filter_linear25 = false
+float_framebuffer25 = true
+
+shader26 = ../../shaders/base/stock.slang
+alias26 = "PreCRTPass"
+
+shader27 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+alias27 = "AfterglowPass"
+
+shader28 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear28 = true
+scale_type28 = source
+mipmap_input28 = true
+scale28 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader29 = ../../shaders/dogway/hsm-grade.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+
+shader30 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 1.0
+scale_y30 = 1.0
+
+shader31 = ../../shaders/base/stock.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+alias31 = "PrePass"
+mipmap_input31 = true
+
+shader32 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear32 = true
+scale_type32 = source
+scale32 = 1.0
+mipmap_input32 = true
+alias32 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader33 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear33 = true
+scale_type33 = source
+scale33 = 1.0
+float_framebuffer33 = true
+alias33 = "LinearizePass"
+
+shader34 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear34 = true
+scale_type_x34 = absolute
+scale_x34 = 800.0
+scale_type_y34 = source
+scale_y34 = 1.0
+float_framebuffer34 = true
+
+shader35 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear35 = true
+scale_type_x35 = absolute
+scale_x35 = 800.0
+scale_type_y35 = absolute
+scale_y35 = 600.0
+float_framebuffer35 = true
+alias35 = GlowPass
+
+shader36 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear36 = true
+scale_type_x36 = absolute
+scale_x36 = 800.0
+scale_type_y36 = absolute
+scale_y36 = 600.0
+float_framebuffer36 = true
+
+shader37 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear37 = true
+scale_type_x37 = source
+scale_x37 = 1.0
+scale_type_y37 = source
+scale_y37 = 1.0
+float_framebuffer37 = true
+alias37 = BloomPass
+
+shader38 = ../../shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+filter_linear38 = true
+float_framebuffer38 = true
+scale_type38 = viewport
+scale_x38 = 1.0
+scale_y38 = 1.0
+
+shader39 = ../../shaders/guest/hsm-deconvergence-no-reflect.slang
+filter_linear39 = true
+scale_type39 = viewport
+scale_x39 = 1.0
+scale_y39 = 1.0
+
+shader40 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias40 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_DEDITHER_MODE = 1
+
+HSM_SCALEFX_ON = 1
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 125
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+ntsc_scale = 0.4
+
+shadowMask = 3
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp
new file mode 100644
index 0000000..7beae4a
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp
@@ -0,0 +1,319 @@
+shaders = 40
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = refpass
+
+shader19 = ../../shaders/scalefx/hsm-scalefx-pass0.slang
+filter_linear19 = false
+scale_type19 = source
+scale19 = 1.0
+float_framebuffer19 = true
+alias19 = scalefx_pass0
+
+shader20 = ../../shaders/scalefx/hsm-scalefx-pass1.slang
+filter_linear20 = false
+scale_type20 = source
+scale20 = 1.0
+float_framebuffer12 = true
+
+shader21 = ../../shaders/scalefx/hsm-scalefx-pass2.slang
+filter_linear21 = false
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/scalefx/hsm-scalefx-pass3.slang
+filter_linear22 = false
+scale_type22 = source
+scale22 = 1.0
+
+shader23 = ../../shaders/scalefx/hsm-scalefx-pass4.slang
+filter_linear23 = false
+scale_type23 = source
+scale23 = 3
+
+shader24 = ../../shaders/base/stock.slang
+alias24 = "PreCRTPass"
+
+shader25 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear25 = true
+scale_type25 = source
+scale25 = 1.0
+alias25 = "AfterglowPass"
+
+shader26 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear26 = true
+scale_type26 = source
+mipmap_input26 = true
+scale26 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader27 = ../../shaders/dogway/hsm-grade.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+
+shader28 = ../../shaders/base/stock.slang
+alias28 = "PrePass0"
+
+shader29 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear29 = false
+float_framebuffer29 = true
+scale_type_x29 = source
+scale_type_y29 = source
+scale_x29 = 4.0
+scale_y29 = 1.0
+frame_count_mod29 = 2
+alias29 = NPass1
+
+shader30 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer30 = true
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 0.5
+scale_y30 = 1.0
+
+shader31 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+
+shader32 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear32 = true
+scale_type32 = source
+scale_x32 = 1.0
+scale_y32 = 1.0
+
+shader33 = ../../shaders/base/stock.slang
+filter_linear33 = true
+scale_type33 = source
+scale_x33 = 1.0
+scale_y33 = 1.0
+alias33 = "PrePass"
+mipmap_input33 = true
+
+shader34 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear34 = true
+scale_type34 = source
+scale34 = 1.0
+mipmap_input34 = true
+alias34 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader35 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear35 = true
+scale_type35 = source
+scale35 = 1.0
+float_framebuffer35 = true
+alias35 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader36 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear36 = "false"
+scale_type36 = "source"
+scale36 = "1.0"
+wrap_mode36 = "clamp_to_border"
+mipmap_input36 = "false"
+alias36 = "SourceSDR"
+float_framebuffer36 = "true"
+
+shader37 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear37 = "false"
+scale_type37 = "source"
+scale37 = "1.0"
+wrap_mode37 = "clamp_to_border"
+mipmap_input37 = "false"
+alias37 = "SourceHDR"
+float_framebuffer37 = "true"
+
+shader38 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear38 = "false"
+wrap_mode38 = "clamp_to_border"
+mipmap_input38 = "false"
+alias38 = ""
+float_framebuffer38 = "false"
+srgb_framebuffer38 = "false"
+scale_type38 = "viewport"
+
+shader39 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias39 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_DEDITHER_MODE = 1
+
+HSM_SCALEFX_ON = 1
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 125
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+ntsc_scale = 0.4
+
+shadowMask = 3
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON.slangp
new file mode 100644
index 0000000..2f7e47b
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__MEGATRON.slangp
@@ -0,0 +1,303 @@
+shaders = 38
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = refpass
+
+shader19 = ../../shaders/scalefx/hsm-scalefx-pass0.slang
+filter_linear19 = false
+scale_type19 = source
+scale19 = 1.0
+float_framebuffer19 = true
+alias19 = scalefx_pass0
+
+shader20 = ../../shaders/scalefx/hsm-scalefx-pass1.slang
+filter_linear20 = false
+scale_type20 = source
+scale20 = 1.0
+float_framebuffer12 = true
+
+shader21 = ../../shaders/scalefx/hsm-scalefx-pass2.slang
+filter_linear21 = false
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/scalefx/hsm-scalefx-pass3.slang
+filter_linear22 = false
+scale_type22 = source
+scale22 = 1.0
+
+shader23 = ../../shaders/scalefx/hsm-scalefx-pass4.slang
+filter_linear23 = false
+scale_type23 = source
+scale23 = 3
+
+// GTU TV Processing
+shader24 = ../../shaders/gtu/hsm-gtu-pass1.slang
+scale_type24 = source
+scale24 = 1.0
+float_framebuffer24 = true
+
+shader25 = ../../shaders/gtu/hsm-gtu-pass2.slang
+scale_type_x25 = source
+scale_x25 = 1.0
+scale_type_y25 = source
+scale_y25 = 1.0
+filter_linear25 = false
+float_framebuffer25 = true
+
+shader26 = ../../shaders/base/stock.slang
+alias26 = "PreCRTPass"
+
+shader27 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+alias27 = "AfterglowPass"
+
+shader28 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear28 = true
+scale_type28 = source
+mipmap_input28 = true
+scale28 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader29 = ../../shaders/dogway/hsm-grade.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+
+shader30 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 1.0
+scale_y30 = 1.0
+
+shader31 = ../../shaders/base/stock.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+alias31 = "PrePass"
+mipmap_input31 = true
+
+shader32 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear32 = true
+scale_type32 = source
+scale32 = 1.0
+mipmap_input32 = true
+alias32 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader33 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear33 = true
+scale_type33 = source
+scale33 = 1.0
+float_framebuffer33 = true
+alias33 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader34 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear34 = "false"
+scale_type34 = "source"
+scale34 = "1.0"
+wrap_mode34 = "clamp_to_border"
+mipmap_input34 = "false"
+alias34 = "SourceSDR"
+float_framebuffer34 = "true"
+
+shader35 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear35 = "false"
+scale_type35 = "source"
+scale35 = "1.0"
+wrap_mode35 = "clamp_to_border"
+mipmap_input35 = "false"
+alias35 = "SourceHDR"
+float_framebuffer35 = "true"
+
+shader36 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear36 = "false"
+wrap_mode36 = "clamp_to_border"
+mipmap_input36 = "false"
+alias36 = ""
+float_framebuffer36 = "false"
+srgb_framebuffer36 = "false"
+scale_type36 = "viewport"
+
+shader37 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias37 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_DEDITHER_MODE = 1
+
+HSM_SCALEFX_ON = 1
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 125
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+ntsc_scale = 0.4
+
+shadowMask = 3
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV-NTSC.slangp
index c6e758a..8a3b4e6 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV-NTSC.slangp
@@ -439,17 +439,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV.slangp
index b04f5b9..00acaf5 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__1__ADV-SUPER-XBR__GDV.slangp
@@ -414,17 +414,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV-NTSC.slangp
index c50b179..4a5a23a 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV-NTSC.slangp
@@ -455,17 +455,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV.slangp
index a9888ba..bbcf942 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-GLASS-SUPER-XBR__GDV.slangp
@@ -430,17 +430,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
index 58f5ef2..09993c1 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
@@ -385,17 +385,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV.slangp
index d0b6d32..f056541 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT-SUPER-XBR__GDV.slangp
@@ -360,17 +360,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp
new file mode 100644
index 0000000..fc0d321
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp
@@ -0,0 +1,382 @@
+shaders = 44
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+// filter_linear18 = "false"
+// wrap_mode18 = "clamp_to_border"
+// mipmap_input18 = "false"
+// float_framebuffer18 = "false"
+// srgb_framebuffer18 = "true"
+alias18 = XbrSource
+
+shader19 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass0.slang
+filter_linear19 = "false"
+wrap_mode19 = "clamp_to_border"
+mipmap_input19 = "false"
+float_framebuffer19 = "false"
+srgb_framebuffer19 = "true"
+
+shader20 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass1.slang
+filter_linear20 = "false"
+wrap_mode20 = "clamp_to_border"
+mipmap_input20 = "false"
+alias20 = ""
+float_framebuffer20 = "false"
+srgb_framebuffer20 = "true"
+scale_type_x20 = "source"
+scale_x20 = "2.000000"
+scale_type_y20 = "source"
+scale_y20 = "2.000000"
+
+shader21 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass2.slang
+filter_linear21 = "false"
+wrap_mode21 = "clamp_to_border"
+mipmap_input21 = "false"
+alias21 = ""
+float_framebuffer21 = "false"
+srgb_framebuffer21 = "true"
+scale_type_x21 = "source"
+scale_x21 = "1.000000"
+scale_type_y21 = "source"
+scale_y21 = "1.000000"
+
+shader22 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-X.slang
+filter_linear22 = "false"
+wrap_mode22 = "clamp_to_border"
+mipmap_input22 = "false"
+alias22 = ""
+float_framebuffer22 = "false"
+srgb_framebuffer22 = "true"
+scale_type_x22 = "source"
+scale_x22 = "1.000000"
+scale_type_y22 = "source"
+scale_y22 = "1.000000"
+
+shader23 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
+filter_linear23 = false
+scale_type_x23 = source
+scale_x23 = 1
+scale_type_y23 = source
+scale_y23 = 0.5
+wrap_mode23 = "clamp_to_edge"
+
+shader24 = ../../shaders/base/stock.slang
+alias24 = "PreCRTPass"
+
+shader25 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear25 = true
+scale_type25 = source
+scale25 = 1.0
+alias25 = "AfterglowPass"
+
+shader26 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear26 = true
+scale_type26 = source
+mipmap_input26 = true
+scale26 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader27 = ../../shaders/dogway/hsm-grade.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+
+shader28 = ../../shaders/base/stock.slang
+alias28 = "PrePass0"
+
+shader29 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear29 = false
+float_framebuffer29 = true
+scale_type_x29 = source
+scale_type_y29 = source
+scale_x29 = 4.0
+scale_y29 = 1.0
+frame_count_mod29 = 2
+alias29 = NPass1
+
+shader30 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer30 = true
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 0.5
+scale_y30 = 1.0
+
+shader31 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+
+shader32 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear32 = true
+scale_type32 = source
+scale_x32 = 1.0
+scale_y32 = 1.0
+
+shader33 = ../../shaders/base/stock.slang
+filter_linear33 = true
+scale_type33 = source
+scale_x33 = 1.0
+scale_y33 = 1.0
+alias33 = "PrePass"
+mipmap_input33 = true
+
+shader34 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear34 = true
+scale_type34 = source
+scale34 = 1.0
+mipmap_input34 = true
+alias34 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader35 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear35 = true
+scale_type35 = source
+scale35 = 1.0
+float_framebuffer35 = true
+alias35 = "LinearizePass"
+
+shader36 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+filter_linear36 = true
+scale_type_x36 = viewport
+scale_x36 = 1.0
+scale_type_y36 = source
+scale_y36 = 1.0
+float_framebuffer36 = true
+alias36 = Pass1
+
+shader37 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear37 = true
+scale_type_x37 = absolute
+scale_x37 = 640.0
+scale_type_y37 = source
+scale_y37 = 1.0
+float_framebuffer37 = true
+
+shader38 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear38 = true
+scale_type_x38 = absolute
+scale_x38 = 640.0
+scale_type_y38 = absolute
+scale_y38 = 480.0
+float_framebuffer38 = true
+alias38 = GlowPass
+
+shader39 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear39 = true
+scale_type_x39 = absolute
+scale_x39 = 640.0
+scale_type_y39 = absolute
+scale_y39 = 480.0
+float_framebuffer39 = true
+
+shader40 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear40 = true
+scale_type_x40 = absolute
+scale_x40 = 640.0
+scale_type_y40 = absolute
+scale_y40 = 480.0
+float_framebuffer40 = true
+alias40 = BloomPass
+
+shader41 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+filter_linear41 = true
+float_framebuffer41 = true
+scale_type41 = viewport
+scale_x41 = 1.0
+scale_y41 = 1.0
+
+shader42 = ../../shaders/guest/hsm-deconvergence.slang
+filter_linear42 = true
+scale_type42 = viewport
+scale_x42 = 1.0
+scale_y42 = 1.0
+
+shader43 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias43 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
+
+// SMOOTH-ADV
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+
+HSM_DEDITHER_MODE = 3
+
+SHARPSMOOTHER_ON = 1
+max_w = 0.05
+min_w = 0
+smoot = 0.4
+lumad = 0.5
+mtric = 0.3
+
+SUPERXBR_ON = 1
+
+ntsc_scale = 0.55
+
+SHARPEN = 0.5
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV.slangp
new file mode 100644
index 0000000..dbcbfa0
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV.slangp
@@ -0,0 +1,357 @@
+shaders = 41
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+// filter_linear18 = "false"
+// wrap_mode18 = "clamp_to_border"
+// mipmap_input18 = "false"
+// float_framebuffer18 = "false"
+// srgb_framebuffer18 = "true"
+alias18 = XbrSource
+
+shader19 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass0.slang
+filter_linear19 = "false"
+wrap_mode19 = "clamp_to_border"
+mipmap_input19 = "false"
+float_framebuffer19 = "false"
+srgb_framebuffer19 = "true"
+
+shader20 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass1.slang
+filter_linear20 = "false"
+wrap_mode20 = "clamp_to_border"
+mipmap_input20 = "false"
+alias20 = ""
+float_framebuffer20 = "false"
+srgb_framebuffer20 = "true"
+scale_type_x20 = "source"
+scale_x20 = "2.000000"
+scale_type_y20 = "source"
+scale_y20 = "2.000000"
+
+shader21 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass2.slang
+filter_linear21 = "false"
+wrap_mode21 = "clamp_to_border"
+mipmap_input21 = "false"
+alias21 = ""
+float_framebuffer21 = "false"
+srgb_framebuffer21 = "true"
+scale_type_x21 = "source"
+scale_x21 = "1.000000"
+scale_type_y21 = "source"
+scale_y21 = "1.000000"
+
+shader22 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-X.slang
+filter_linear22 = "false"
+wrap_mode22 = "clamp_to_border"
+mipmap_input22 = "false"
+alias22 = ""
+float_framebuffer22 = "false"
+srgb_framebuffer22 = "true"
+scale_type_x22 = "source"
+scale_x22 = "1.000000"
+scale_type_y22 = "source"
+scale_y22 = "1.000000"
+
+shader23 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
+filter_linear23 = false
+scale_type_x23 = source
+scale_x23 = 1
+scale_type_y23 = source
+scale_y23 = 0.5
+wrap_mode23 = "clamp_to_edge"
+
+// GTU TV Processing
+shader24 = ../../shaders/gtu/hsm-gtu-pass1.slang
+scale_type24 = source
+scale24 = 1.0
+float_framebuffer24 = true
+
+shader25 = ../../shaders/gtu/hsm-gtu-pass2.slang
+scale_type_x25 = source
+scale_x25 = 1.0
+scale_type_y25 = source
+scale_y25 = 1.0
+filter_linear25 = false
+float_framebuffer25 = true
+
+shader26 = ../../shaders/base/stock.slang
+alias26 = "PreCRTPass"
+
+shader27 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+alias27 = "AfterglowPass"
+
+shader28 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear28 = true
+scale_type28 = source
+mipmap_input28 = true
+scale28 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader29 = ../../shaders/dogway/hsm-grade.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+
+shader30 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 1.0
+scale_y30 = 1.0
+
+shader31 = ../../shaders/base/stock.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+alias31 = "PrePass"
+mipmap_input31 = true
+
+shader32 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear32 = true
+scale_type32 = source
+scale32 = 1.0
+mipmap_input32 = true
+alias32 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader33 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear33 = true
+scale_type33 = source
+scale33 = 1.0
+float_framebuffer33 = true
+alias33 = "LinearizePass"
+
+shader34 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear34 = true
+scale_type_x34 = absolute
+scale_x34 = 800.0
+scale_type_y34 = source
+scale_y34 = 1.0
+float_framebuffer34 = true
+
+shader35 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear35 = true
+scale_type_x35 = absolute
+scale_x35 = 800.0
+scale_type_y35 = absolute
+scale_y35 = 600.0
+float_framebuffer35 = true
+alias35 = GlowPass
+
+shader36 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear36 = true
+scale_type_x36 = absolute
+scale_x36 = 800.0
+scale_type_y36 = absolute
+scale_y36 = 600.0
+float_framebuffer36 = true
+
+shader37 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear37 = true
+scale_type_x37 = source
+scale_x37 = 1.0
+scale_type_y37 = source
+scale_y37 = 1.0
+float_framebuffer37 = true
+alias37 = BloomPass
+
+shader38 = ../../shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+filter_linear38 = true
+float_framebuffer38 = true
+scale_type38 = viewport
+scale_x38 = 1.0
+scale_y38 = 1.0
+
+shader39 = ../../shaders/guest/hsm-deconvergence-no-reflect.slang
+filter_linear39 = true
+scale_type39 = viewport
+scale_x39 = 1.0
+scale_y39 = 1.0
+
+shader40 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias40 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+
+HSM_DEDITHER_MODE = 3
+
+SHARPSMOOTHER_ON = 1
+max_w = 0.05
+min_w = 0
+smoot = 0.4
+lumad = 0.5
+mtric = 0.3
+
+SUPERXBR_ON = 1
+
+ntsc_scale = 0.55
+
+SHARPEN = 0.5
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV-NTSC.slangp
new file mode 100644
index 0000000..a29c992
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV-NTSC.slangp
@@ -0,0 +1,292 @@
+shaders = 38
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = "PreCRTPass"
+
+shader19 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear19 = true
+scale_type19 = source
+scale19 = 1.0
+alias19 = "AfterglowPass"
+
+shader20 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear20 = true
+scale_type20 = source
+mipmap_input20 = true
+scale20 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader21 = ../../shaders/dogway/hsm-grade.slang
+filter_linear21 = true
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/base/stock.slang
+alias22 = "PrePass0"
+
+shader23 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear23 = false
+float_framebuffer23 = true
+scale_type_x23 = source
+scale_type_y23 = source
+scale_x23 = 4.0
+scale_y23 = 1.0
+frame_count_mod23 = 2
+alias23 = NPass1
+
+shader24 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer24 = true
+filter_linear24 = true
+scale_type24 = source
+scale_x24 = 0.5
+scale_y24 = 1.0
+
+shader25 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear25 = true
+scale_type25 = source
+scale_x25 = 1.0
+scale_y25 = 1.0
+
+shader26 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear26 = true
+scale_type26 = source
+scale_x26 = 1.0
+scale_y26 = 1.0
+
+shader27 = ../../shaders/base/stock.slang
+filter_linear27 = true
+scale_type27 = source
+scale_x27 = 1.0
+scale_y27 = 1.0
+alias27 = "PrePass"
+mipmap_input27 = true
+
+shader28 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear28 = true
+scale_type28 = source
+scale28 = 1.0
+mipmap_input28 = true
+alias28 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader29 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+float_framebuffer29 = true
+alias29 = "LinearizePass"
+
+shader30 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+filter_linear30 = true
+scale_type_x30 = viewport
+scale_x30 = 1.0
+scale_type_y30 = source
+scale_y30 = 1.0
+float_framebuffer30 = true
+alias30 = Pass1
+
+shader31 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear31 = true
+scale_type_x31 = absolute
+scale_x31 = 640.0
+scale_type_y31 = source
+scale_y31 = 1.0
+float_framebuffer31 = true
+
+shader32 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear32 = true
+scale_type_x32 = absolute
+scale_x32 = 640.0
+scale_type_y32 = absolute
+scale_y32 = 480.0
+float_framebuffer32 = true
+alias32 = GlowPass
+
+shader33 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear33 = true
+scale_type_x33 = absolute
+scale_x33 = 640.0
+scale_type_y33 = absolute
+scale_y33 = 480.0
+float_framebuffer33 = true
+
+shader34 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear34 = true
+scale_type_x34 = absolute
+scale_x34 = 640.0
+scale_type_y34 = absolute
+scale_y34 = 480.0
+float_framebuffer34 = true
+alias34 = BloomPass
+
+shader35 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+filter_linear35 = true
+float_framebuffer35 = true
+scale_type35 = viewport
+scale_x35 = 1.0
+scale_y35 = 1.0
+
+shader36 = ../../shaders/guest/hsm-deconvergence.slang
+filter_linear36 = true
+scale_type36 = viewport
+scale_x36 = 1.0
+scale_y36 = 1.0
+
+shader37 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias37 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV.slangp
new file mode 100644
index 0000000..f6c1bbc
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV.slangp
@@ -0,0 +1,267 @@
+shaders = 35
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+// GTU TV Processing
+shader18 = ../../shaders/gtu/hsm-gtu-pass1.slang
+scale_type18 = source
+scale18 = 1.0
+float_framebuffer18 = true
+
+shader19 = ../../shaders/gtu/hsm-gtu-pass2.slang
+scale_type_x19 = source
+scale_x19 = 1.0
+scale_type_y19 = source
+scale_y19 = 1.0
+filter_linear19 = false
+float_framebuffer19 = true
+
+shader20 = ../../shaders/base/stock.slang
+alias20 = "PreCRTPass"
+
+shader21 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear21 = true
+scale_type21 = source
+scale21 = 1.0
+alias21 = "AfterglowPass"
+
+shader22 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear22 = true
+scale_type22 = source
+mipmap_input22 = true
+scale22 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader23 = ../../shaders/dogway/hsm-grade.slang
+filter_linear23 = true
+scale_type23 = source
+scale23 = 1.0
+
+shader24 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear24 = true
+scale_type24 = source
+scale_x24 = 1.0
+scale_y24 = 1.0
+
+shader25 = ../../shaders/base/stock.slang
+filter_linear25 = true
+scale_type25 = source
+scale_x25 = 1.0
+scale_y25 = 1.0
+alias25 = "PrePass"
+mipmap_input25 = true
+
+shader26 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear26 = true
+scale_type26 = source
+scale26 = 1.0
+mipmap_input26 = true
+alias26 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader27 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+float_framebuffer27 = true
+alias27 = "LinearizePass"
+
+shader28 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear28 = true
+scale_type_x28 = absolute
+scale_x28 = 800.0
+scale_type_y28 = source
+scale_y28 = 1.0
+float_framebuffer28 = true
+
+shader29 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear29 = true
+scale_type_x29 = absolute
+scale_x29 = 800.0
+scale_type_y29 = absolute
+scale_y29 = 600.0
+float_framebuffer29 = true
+alias29 = GlowPass
+
+shader30 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear30 = true
+scale_type_x30 = absolute
+scale_x30 = 800.0
+scale_type_y30 = absolute
+scale_y30 = 600.0
+float_framebuffer30 = true
+
+shader31 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear31 = true
+scale_type_x31 = source
+scale_x31 = 1.0
+scale_type_y31 = source
+scale_y31 = 1.0
+float_framebuffer31 = true
+alias31 = BloomPass
+
+shader32 = ../../shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+filter_linear32 = true
+float_framebuffer32 = true
+scale_type32 = viewport
+scale_x32 = 1.0
+scale_y32 = 1.0
+
+shader33 = ../../shaders/guest/hsm-deconvergence-no-reflect.slang
+filter_linear33 = true
+scale_type33 = viewport
+scale_x33 = 1.0
+scale_y33 = 1.0
+
+shader34 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias34 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp
new file mode 100644
index 0000000..7d3b5b5
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON-NTSC.slangp
@@ -0,0 +1,274 @@
+shaders = 34
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader18 = ../../shaders/base/stock.slang
+alias18 = "PreCRTPass"
+
+shader19 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear19 = true
+scale_type19 = source
+scale19 = 1.0
+alias19 = "AfterglowPass"
+
+shader20 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear20 = true
+scale_type20 = source
+mipmap_input20 = true
+scale20 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader21 = ../../shaders/dogway/hsm-grade.slang
+filter_linear21 = true
+scale_type21 = source
+scale21 = 1.0
+
+shader22 = ../../shaders/base/stock.slang
+alias22 = "PrePass0"
+
+shader23 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear23 = false
+float_framebuffer23 = true
+scale_type_x23 = source
+scale_type_y23 = source
+scale_x23 = 4.0
+scale_y23 = 1.0
+frame_count_mod23 = 2
+alias23 = NPass1
+
+shader24 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer24 = true
+filter_linear24 = true
+scale_type24 = source
+scale_x24 = 0.5
+scale_y24 = 1.0
+
+shader25 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear25 = true
+scale_type25 = source
+scale_x25 = 1.0
+scale_y25 = 1.0
+
+shader26 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear26 = true
+scale_type26 = source
+scale_x26 = 1.0
+scale_y26 = 1.0
+
+shader27 = ../../shaders/base/stock.slang
+filter_linear27 = true
+scale_type27 = source
+scale_x27 = 1.0
+scale_y27 = 1.0
+alias27 = "PrePass"
+mipmap_input27 = true
+
+shader28 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear28 = true
+scale_type28 = source
+scale28 = 1.0
+mipmap_input28 = true
+alias28 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader29 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+float_framebuffer29 = true
+alias29 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader30 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear30 = "false"
+scale_type30 = "source"
+scale30 = "1.0"
+wrap_mode30 = "clamp_to_border"
+mipmap_input30 = "false"
+alias30 = "SourceSDR"
+float_framebuffer30 = "true"
+
+shader31 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear31 = "false"
+scale_type31 = "source"
+scale31 = "1.0"
+wrap_mode31 = "clamp_to_border"
+mipmap_input31 = "false"
+alias31 = "SourceHDR"
+float_framebuffer31 = "true"
+
+shader32 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear32 = "false"
+wrap_mode32 = "clamp_to_border"
+mipmap_input32 = "false"
+alias32 = ""
+float_framebuffer32 = "false"
+srgb_framebuffer32 = "false"
+scale_type32 = "viewport"
+
+shader33 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias33 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON.slangp
new file mode 100644
index 0000000..8c8a014
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__MEGATRON.slangp
@@ -0,0 +1,258 @@
+shaders = 32
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-adv-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang
+
+shader17 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+// GTU TV Processing
+shader18 = ../../shaders/gtu/hsm-gtu-pass1.slang
+scale_type18 = source
+scale18 = 1.0
+float_framebuffer18 = true
+
+shader19 = ../../shaders/gtu/hsm-gtu-pass2.slang
+scale_type_x19 = source
+scale_x19 = 1.0
+scale_type_y19 = source
+scale_y19 = 1.0
+filter_linear19 = false
+float_framebuffer19 = true
+
+shader20 = ../../shaders/base/stock.slang
+alias20 = "PreCRTPass"
+
+shader21 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear21 = true
+scale_type21 = source
+scale21 = 1.0
+alias21 = "AfterglowPass"
+
+shader22 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear22 = true
+scale_type22 = source
+mipmap_input22 = true
+scale22 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader23 = ../../shaders/dogway/hsm-grade.slang
+filter_linear23 = true
+scale_type23 = source
+scale23 = 1.0
+
+shader24 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear24 = true
+scale_type24 = source
+scale_x24 = 1.0
+scale_y24 = 1.0
+
+shader25 = ../../shaders/base/stock.slang
+filter_linear25 = true
+scale_type25 = source
+scale_x25 = 1.0
+scale_y25 = 1.0
+alias25 = "PrePass"
+mipmap_input25 = true
+
+shader26 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear26 = true
+scale_type26 = source
+scale26 = 1.0
+mipmap_input26 = true
+alias26 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader27 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear27 = true
+scale_type27 = source
+scale27 = 1.0
+float_framebuffer27 = true
+alias27 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader28 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear28 = "false"
+scale_type28 = "source"
+scale28 = "1.0"
+wrap_mode28 = "clamp_to_border"
+mipmap_input28 = "false"
+alias28 = "SourceSDR"
+float_framebuffer28 = "true"
+
+shader29 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear29 = "false"
+scale_type29 = "source"
+scale29 = "1.0"
+wrap_mode29 = "clamp_to_border"
+mipmap_input29 = "false"
+alias29 = "SourceHDR"
+float_framebuffer29 = "true"
+
+shader30 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear30 = "false"
+wrap_mode30 = "clamp_to_border"
+mipmap_input30 = "false"
+alias30 = ""
+float_framebuffer30 = "false"
+srgb_framebuffer30 = "false"
+scale_type30 = "viewport"
+
+shader31 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias31 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV-NTSC.slangp
index 91e17be..8e78b64 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV-NTSC.slangp
@@ -453,17 +453,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV.slangp
index e7a8307..9b0d761 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-GLASS-SUPER-XBR__GDV.slangp
@@ -414,17 +414,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV-NTSC.slangp
index 7febf51..a5da841 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV-NTSC.slangp
@@ -449,17 +449,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV.slangp
index bf78972..9aa4948 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD-SUPER-XBR__GDV.slangp
@@ -379,17 +379,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
index 82ce79d..2998344 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV-NTSC.slangp
@@ -383,17 +383,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV.slangp
index 24923cb..2f1cdce 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-NO-REFLECT-SUPER-XBR__GDV.slangp
@@ -344,17 +344,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp
new file mode 100644
index 0000000..5b7f2fb
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp
@@ -0,0 +1,380 @@
+shaders = 43
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader17 = ../../shaders/base/stock.slang
+// filter_linear17 = "false"
+// wrap_mode17 = "clamp_to_border"
+// mipmap_input17 = "false"
+// float_framebuffer17 = "false"
+// srgb_framebuffer17 = "true"
+alias17 = XbrSource
+
+shader18 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass0.slang
+filter_linear18 = "false"
+wrap_mode18 = "clamp_to_border"
+mipmap_input18 = "false"
+float_framebuffer18 = "false"
+srgb_framebuffer18 = "true"
+
+shader19 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass1.slang
+filter_linear19 = "false"
+wrap_mode19 = "clamp_to_border"
+mipmap_input19 = "false"
+alias19 = ""
+float_framebuffer19 = "false"
+srgb_framebuffer19 = "true"
+scale_type_x19 = "source"
+scale_x19 = "2.000000"
+scale_type_y19 = "source"
+scale_y19 = "2.000000"
+
+shader20 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass2.slang
+filter_linear20 = "false"
+wrap_mode20 = "clamp_to_border"
+mipmap_input20 = "false"
+alias20 = ""
+float_framebuffer20 = "false"
+srgb_framebuffer20 = "true"
+scale_type_x20 = "source"
+scale_x20 = "1.000000"
+scale_type_y20 = "source"
+scale_y20 = "1.000000"
+
+shader21 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-X.slang
+filter_linear21 = "false"
+wrap_mode21 = "clamp_to_border"
+mipmap_input21 = "false"
+alias21 = ""
+float_framebuffer21 = "false"
+srgb_framebuffer21 = "true"
+scale_type_x21 = "source"
+scale_x21 = "1.000000"
+scale_type_y21 = "source"
+scale_y21 = "1.000000"
+
+shader22 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
+filter_linear22 = false
+scale_type_x22 = source
+scale_x22 = 1
+scale_type_y22 = source
+scale_y22 = 0.5
+wrap_mode22 = "clamp_to_edge"
+
+shader23 = ../../shaders/base/stock.slang
+alias23 = "PreCRTPass"
+
+shader24 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear24 = true
+scale_type24 = source
+scale24 = 1.0
+alias24 = "AfterglowPass"
+
+shader25 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear25 = true
+scale_type25 = source
+mipmap_input25 = true
+scale25 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader26 = ../../shaders/dogway/hsm-grade.slang
+filter_linear26 = true
+scale_type26 = source
+scale26 = 1.0
+
+shader27 = ../../shaders/base/stock.slang
+alias27 = "PrePass0"
+
+shader28 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear28 = false
+float_framebuffer28 = true
+scale_type_x28 = source
+scale_type_y28 = source
+scale_x28 = 4.0
+scale_y28 = 1.0
+frame_count_mod28 = 2
+alias28 = NPass1
+
+shader29 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer29 = true
+filter_linear29 = true
+scale_type29 = source
+scale_x29 = 0.5
+scale_y29 = 1.0
+
+shader30 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear30 = true
+scale_type30 = source
+scale_x30 = 1.0
+scale_y30 = 1.0
+
+shader31 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear31 = true
+scale_type31 = source
+scale_x31 = 1.0
+scale_y31 = 1.0
+
+shader32 = ../../shaders/base/stock.slang
+filter_linear32 = true
+scale_type32 = source
+scale_x32 = 1.0
+scale_y32 = 1.0
+alias32 = "PrePass"
+mipmap_input32 = true
+
+shader33 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear33 = true
+scale_type33 = source
+scale33 = 1.0
+mipmap_input33 = true
+alias33 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader34 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear34 = true
+scale_type34 = source
+scale34 = 1.0
+float_framebuffer34 = true
+alias34 = "LinearizePass"
+
+shader35 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+filter_linear35 = true
+scale_type_x35 = viewport
+scale_x35 = 1.0
+scale_type_y35 = source
+scale_y35 = 1.0
+float_framebuffer35 = true
+alias35 = Pass1
+
+shader36 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear36 = true
+scale_type_x36 = absolute
+scale_x36 = 640.0
+scale_type_y36 = source
+scale_y36 = 1.0
+float_framebuffer36 = true
+
+shader37 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear37 = true
+scale_type_x37 = absolute
+scale_x37 = 640.0
+scale_type_y37 = absolute
+scale_y37 = 480.0
+float_framebuffer37 = true
+alias37 = GlowPass
+
+shader38 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear38 = true
+scale_type_x38 = absolute
+scale_x38 = 640.0
+scale_type_y38 = absolute
+scale_y38 = 480.0
+float_framebuffer38 = true
+
+shader39 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear39 = true
+scale_type_x39 = absolute
+scale_x39 = 640.0
+scale_type_y39 = absolute
+scale_y39 = 480.0
+float_framebuffer39 = true
+alias39 = BloomPass
+
+shader40 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+filter_linear40 = true
+float_framebuffer40 = true
+scale_type40 = viewport
+scale_x40 = 1.0
+scale_y40 = 1.0
+
+shader41 = ../../shaders/guest/hsm-deconvergence.slang
+filter_linear41 = true
+scale_type41 = viewport
+scale_x41 = 1.0
+scale_y41 = 1.0
+
+shader42 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias42 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
+
+// SMOOTH-ADV
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+
+HSM_DEDITHER_MODE = 3
+
+SHARPSMOOTHER_ON = 1
+max_w = 0.05
+min_w = 0
+smoot = 0.4
+lumad = 0.5
+mtric = 0.3
+
+SUPERXBR_ON = 1
+
+ntsc_scale = 0.55
+
+SHARPEN = 0.5
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV.slangp
new file mode 100644
index 0000000..b9cc53e
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV.slangp
@@ -0,0 +1,341 @@
+shaders = 38
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/dedither/dedither-gamma-prep-1-before.slang
+alias6 = LinearGamma
+
+shader7 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass1.slang
+shader8 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass2.slang
+shader9 = ../../shaders/hyllian/checkerboard-dedither/checkerboard-dedither-pass3.slang
+alias9 = "PreMdaptPass"
+
+// De-Dithering - Mdapt
+shader10 = ../../shaders/mdapt/hsm-mdapt-pass0.slang
+shader11 = ../../shaders/mdapt/hsm-mdapt-pass1.slang
+shader12 = ../../shaders/mdapt/hsm-mdapt-pass2.slang
+shader13 = ../../shaders/mdapt/hsm-mdapt-pass3.slang
+shader14 = ../../shaders/mdapt/hsm-mdapt-pass4.slang
+
+shader15 = ../../shaders/dedither/dedither-gamma-prep-2-after.slang
+
+shader16 = ../../shaders/guest/extras/hsm-sharpsmoother.slang
+
+shader17 = ../../shaders/base/stock.slang
+// filter_linear17 = "false"
+// wrap_mode17 = "clamp_to_border"
+// mipmap_input17 = "false"
+// float_framebuffer17 = "false"
+// srgb_framebuffer17 = "true"
+alias17 = XbrSource
+
+shader18 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass0.slang
+filter_linear18 = "false"
+wrap_mode18 = "clamp_to_border"
+mipmap_input18 = "false"
+float_framebuffer18 = "false"
+srgb_framebuffer18 = "true"
+
+shader19 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass1.slang
+filter_linear19 = "false"
+wrap_mode19 = "clamp_to_border"
+mipmap_input19 = "false"
+alias19 = ""
+float_framebuffer19 = "false"
+srgb_framebuffer19 = "true"
+scale_type_x19 = "source"
+scale_x19 = "2.000000"
+scale_type_y19 = "source"
+scale_y19 = "2.000000"
+
+shader20 = ../../shaders/hyllian/crt-super-xbr/super-xbr-pass2.slang
+filter_linear20 = "false"
+wrap_mode20 = "clamp_to_border"
+mipmap_input20 = "false"
+alias20 = ""
+float_framebuffer20 = "false"
+srgb_framebuffer20 = "true"
+scale_type_x20 = "source"
+scale_x20 = "1.000000"
+scale_type_y20 = "source"
+scale_y20 = "1.000000"
+
+shader21 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-X.slang
+filter_linear21 = "false"
+wrap_mode21 = "clamp_to_border"
+mipmap_input21 = "false"
+alias21 = ""
+float_framebuffer21 = "false"
+srgb_framebuffer21 = "true"
+scale_type_x21 = "source"
+scale_x21 = "1.000000"
+scale_type_y21 = "source"
+scale_y21 = "1.000000"
+
+shader22 = ../../shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
+filter_linear22 = false
+scale_type_x22 = source
+scale_x22 = 1
+scale_type_y22 = source
+scale_y22 = 0.5
+wrap_mode22 = "clamp_to_edge"
+
+shader23 = ../../shaders/base/stock.slang
+alias23 = "PreCRTPass"
+
+shader24 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear24 = true
+scale_type24 = source
+scale24 = 1.0
+alias24 = "AfterglowPass"
+
+shader25 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear25 = true
+scale_type25 = source
+mipmap_input25 = true
+scale25 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader26 = ../../shaders/dogway/hsm-grade.slang
+filter_linear26 = true
+scale_type26 = source
+scale26 = 1.0
+
+shader27 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear27 = true
+scale_type27 = source
+scale_x27 = 1.0
+scale_y27 = 1.0
+
+shader28 = ../../shaders/base/stock.slang
+filter_linear28 = true
+scale_type28 = source
+scale_x28 = 1.0
+scale_y28 = 1.0
+alias28 = "PrePass"
+mipmap_input28 = true
+
+shader29 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear29 = true
+scale_type29 = source
+scale29 = 1.0
+mipmap_input29 = true
+alias29 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader30 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear30 = true
+scale_type30 = source
+scale30 = 1.0
+float_framebuffer30 = true
+alias30 = "LinearizePass"
+
+shader31 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear31 = true
+scale_type_x31 = absolute
+scale_x31 = 800.0
+scale_type_y31 = source
+scale_y31 = 1.0
+float_framebuffer31 = true
+
+shader32 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear32 = true
+scale_type_x32 = absolute
+scale_x32 = 800.0
+scale_type_y32 = absolute
+scale_y32 = 600.0
+float_framebuffer32 = true
+alias32 = GlowPass
+
+shader33 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear33 = true
+scale_type_x33 = absolute
+scale_x33 = 800.0
+scale_type_y33 = absolute
+scale_y33 = 600.0
+float_framebuffer33 = true
+
+shader34 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear34 = true
+scale_type_x34 = source
+scale_x34 = 1.0
+scale_type_y34 = source
+scale_y34 = 1.0
+float_framebuffer34 = true
+alias34 = BloomPass
+
+shader35 = ../../shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+filter_linear35 = true
+float_framebuffer35 = true
+scale_type35 = viewport
+scale_x35 = 1.0
+scale_y35 = 1.0
+
+shader36 = ../../shaders/guest/hsm-deconvergence-no-reflect.slang
+filter_linear36 = true
+scale_type36 = viewport
+scale_x36 = 1.0
+scale_y36 = 1.0
+
+shader37 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias37 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// SMOOTH-ADV
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+
+HSM_DEDITHER_MODE = 3
+
+SHARPSMOOTHER_ON = 1
+max_w = 0.05
+min_w = 0
+smoot = 0.4
+lumad = 0.5
+mtric = 0.3
+
+SUPERXBR_ON = 1
+
+ntsc_scale = 0.55
+
+SHARPEN = 0.5
+
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__EASYMODE.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__EASYMODE.slangp
new file mode 100644
index 0000000..7e454d2
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__EASYMODE.slangp
@@ -0,0 +1,206 @@
+shaders = 19
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear10 = true
+scale_type10 = source
+scale_x10 = 1.0
+scale_y10 = 1.0
+
+shader11 = ../../shaders/base/stock.slang
+filter_linear11 = true
+scale_type11 = source
+scale_x11 = 1.0
+scale_y11 = 1.0
+alias11 = "PrePass"
+mipmap_input11 = true
+
+shader12 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear12 = true
+scale_type12 = source
+scale12 = 1.0
+mipmap_input12 = true
+alias12 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader13 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear13 = true
+scale_type13 = source
+scale13 = 1.0
+float_framebuffer13 = true
+alias13 = "LinearizePass"
+
+shader14 = ../../shaders/easymode/hsm-crt-easymode-blur_horiz.slang
+filter_linear14 = false
+srgb_framebuffer14 = true
+
+shader15 = ../../shaders/easymode/hsm-crt-easymode-blur_vert.slang
+filter_linear15 = false
+srgb_framebuffer15 = true
+
+shader16 = ../../shaders/easymode/hsm-crt-easymode-threshold.slang
+filter_linear16 = false
+srgb_framebuffer16 = true
+
+// Easymode's Shader!
+shader17 = ../../shaders/easymode/hsm-crt-easymode-halation.slang
+filter_linear17 = true
+scale_type17 = viewport
+float_framebuffer17 = true
+
+shader18 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias18 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// Easymode Parameters
+gamma_out = 2.2
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI-NTSC.slangp
new file mode 100644
index 0000000..f8cf01f
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI-NTSC.slangp
@@ -0,0 +1,225 @@
+shaders = 21
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/base/stock.slang
+alias10 = "PrePass0"
+
+shader11 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear11 = false
+float_framebuffer11 = true
+scale_type_x11 = source
+scale_type_y11 = source
+scale_x11 = 4.0
+scale_y11 = 1.0
+frame_count_mod11 = 2
+alias11 = NPass1
+
+shader12 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer12 = true
+filter_linear12 = true
+scale_type12 = source
+scale_x12 = 0.5
+scale_y12 = 1.0
+
+shader13 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear13 = true
+scale_type13 = source
+scale_x13 = 1.0
+scale_y13 = 1.0
+
+shader14 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear14 = true
+scale_type14 = source
+scale_x14 = 1.0
+scale_y14 = 1.0
+
+shader15 = ../../shaders/base/stock.slang
+filter_linear15 = true
+scale_type15 = source
+scale_x15 = 1.0
+scale_y15 = 1.0
+alias15 = "PrePass"
+mipmap_input15 = true
+
+shader16 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear16 = true
+scale_type16 = source
+scale16 = 1.0
+mipmap_input16 = true
+alias16 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader17 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear17 = true
+scale_type17 = source
+scale17 = 1.0
+float_framebuffer17 = true
+alias17 = "LinearizePass"
+
+shader18 = ../../shaders/base/delinearize.slang
+
+shader19 = ../../shaders/guest/hsm-crt-dariusg-gdv-mini.slang
+scale_type19 = viewport
+scale_x19 = 1.0
+scale_y19 = 1.0
+filter_linear19 = true
+
+g_sat = 0.15
+
+shader20 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias20 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI.slangp
new file mode 100644
index 0000000..093db85
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-MINI.slangp
@@ -0,0 +1,195 @@
+shaders = 17
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear10 = true
+scale_type10 = source
+scale_x10 = 1.0
+scale_y10 = 1.0
+
+shader11 = ../../shaders/base/stock.slang
+filter_linear11 = true
+scale_type11 = source
+scale_x11 = 1.0
+scale_y11 = 1.0
+alias11 = "PrePass"
+mipmap_input11 = true
+
+shader12 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear12 = true
+scale_type12 = source
+scale12 = 1.0
+mipmap_input12 = true
+alias12 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader13 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear13 = true
+scale_type13 = source
+scale13 = 1.0
+float_framebuffer13 = true
+alias13 = "LinearizePass"
+
+shader14 = ../../shaders/base/delinearize.slang
+
+shader15 = ../../shaders/guest/hsm-crt-dariusg-gdv-mini.slang
+scale_type15 = viewport
+scale_x15 = 1.0
+scale_y15 = 1.0
+filter_linear15 = true
+
+g_sat = 0.15
+
+shader16 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias16 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-NTSC.slangp
new file mode 100644
index 0000000..708faee
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-NTSC.slangp
@@ -0,0 +1,271 @@
+shaders = 26
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/base/stock.slang
+alias10 = "PrePass0"
+
+shader11 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear11 = false
+float_framebuffer11 = true
+scale_type_x11 = source
+scale_type_y11 = source
+scale_x11 = 4.0
+scale_y11 = 1.0
+frame_count_mod11 = 2
+alias11 = NPass1
+
+shader12 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer12 = true
+filter_linear12 = true
+scale_type12 = source
+scale_x12 = 0.5
+scale_y12 = 1.0
+
+shader13 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear13 = true
+scale_type13 = source
+scale_x13 = 1.0
+scale_y13 = 1.0
+
+shader14 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear14 = true
+scale_type14 = source
+scale_x14 = 1.0
+scale_y14 = 1.0
+
+shader15 = ../../shaders/base/stock.slang
+filter_linear15 = true
+scale_type15 = source
+scale_x15 = 1.0
+scale_y15 = 1.0
+alias15 = "PrePass"
+mipmap_input15 = true
+
+shader16 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear16 = true
+scale_type16 = source
+scale16 = 1.0
+mipmap_input16 = true
+alias16 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader17 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear17 = true
+scale_type17 = source
+scale17 = 1.0
+float_framebuffer17 = true
+alias17 = "LinearizePass"
+
+shader18 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+filter_linear18 = true
+scale_type_x18 = viewport
+scale_x18 = 1.0
+scale_type_y18 = source
+scale_y18 = 1.0
+float_framebuffer18 = true
+alias18 = Pass1
+
+shader19 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear19 = true
+scale_type_x19 = absolute
+scale_x19 = 640.0
+scale_type_y19 = source
+scale_y19 = 1.0
+float_framebuffer19 = true
+
+shader20 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear20 = true
+scale_type_x20 = absolute
+scale_x20 = 640.0
+scale_type_y20 = absolute
+scale_y20 = 480.0
+float_framebuffer20 = true
+alias20 = GlowPass
+
+shader21 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear21 = true
+scale_type_x21 = absolute
+scale_x21 = 640.0
+scale_type_y21 = absolute
+scale_y21 = 480.0
+float_framebuffer21 = true
+
+shader22 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear22 = true
+scale_type_x22 = absolute
+scale_x22 = 640.0
+scale_type_y22 = absolute
+scale_y22 = 480.0
+float_framebuffer22 = true
+alias22 = BloomPass
+
+shader23 = ../../shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+filter_linear23 = true
+float_framebuffer23 = true
+scale_type23 = viewport
+scale_x23 = 1.0
+scale_y23 = 1.0
+
+shader24 = ../../shaders/guest/hsm-deconvergence.slang
+filter_linear24 = true
+scale_type24 = viewport
+scale_x24 = 1.0
+scale_y24 = 1.0
+
+shader25 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias25 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV.slangp
new file mode 100644
index 0000000..02ed877
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV.slangp
@@ -0,0 +1,232 @@
+shaders = 21
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear10 = true
+scale_type10 = source
+scale_x10 = 1.0
+scale_y10 = 1.0
+
+shader11 = ../../shaders/base/stock.slang
+filter_linear11 = true
+scale_type11 = source
+scale_x11 = 1.0
+scale_y11 = 1.0
+alias11 = "PrePass"
+mipmap_input11 = true
+
+shader12 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear12 = true
+scale_type12 = source
+scale12 = 1.0
+mipmap_input12 = true
+alias12 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader13 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear13 = true
+scale_type13 = source
+scale13 = 1.0
+float_framebuffer13 = true
+alias13 = "LinearizePass"
+
+shader14 = ../../shaders/guest/hsm-gaussian_horizontal.slang
+filter_linear14 = true
+scale_type_x14 = absolute
+scale_x14 = 800.0
+scale_type_y14 = source
+scale_y14 = 1.0
+float_framebuffer14 = true
+
+shader15 = ../../shaders/guest/hsm-gaussian_vertical.slang
+filter_linear15 = true
+scale_type_x15 = absolute
+scale_x15 = 800.0
+scale_type_y15 = absolute
+scale_y15 = 600.0
+float_framebuffer15 = true
+alias15 = GlowPass
+
+shader16 = ../../shaders/guest/hsm-bloom_horizontal.slang
+filter_linear16 = true
+scale_type_x16 = absolute
+scale_x16 = 800.0
+scale_type_y16 = absolute
+scale_y16 = 600.0
+float_framebuffer16 = true
+
+shader17 = ../../shaders/guest/hsm-bloom_vertical.slang
+filter_linear17 = true
+scale_type_x17 = source
+scale_x17 = 1.0
+scale_type_y17 = source
+scale_y17 = 1.0
+float_framebuffer17 = true
+alias17 = BloomPass
+
+shader18 = ../../shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+filter_linear18 = true
+float_framebuffer18 = true
+scale_type18 = viewport
+scale_x18 = 1.0
+scale_y18 = 1.0
+
+shader19 = ../../shaders/guest/hsm-deconvergence-no-reflect.slang
+filter_linear19 = true
+scale_type19 = viewport
+scale_x19 = 1.0
+scale_y19 = 1.0
+
+shader20 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias20 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__LCD-GRID.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__LCD-GRID.slangp
new file mode 100644
index 0000000..d63f335
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__LCD-GRID.slangp
@@ -0,0 +1,192 @@
+shaders = 17
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear10 = true
+scale_type10 = source
+scale_x10 = 1.0
+scale_y10 = 1.0
+
+shader11 = ../../shaders/base/stock.slang
+filter_linear11 = true
+scale_type11 = source
+scale_x11 = 1.0
+scale_y11 = 1.0
+alias11 = "PrePass"
+mipmap_input11 = true
+
+shader12 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear12 = true
+scale_type12 = source
+scale12 = 1.0
+mipmap_input12 = true
+alias12 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader13 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear13 = true
+scale_type13 = source
+scale13 = 1.0
+float_framebuffer13 = true
+alias13 = "LinearizePass"
+
+shader14 = ../../shaders/base/delinearize.slang
+
+shader15 = ../../shaders/lcd-cgwg/hsm-lcd-grid-v2.slang
+filter_linear15 = "false"
+scale_type15 = "viewport"
+scale15 = "1.0"
+
+shader16 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias16 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON-NTSC.slangp
new file mode 100644
index 0000000..3c6b4b6
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON-NTSC.slangp
@@ -0,0 +1,253 @@
+shaders = 22
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/base/stock.slang
+alias10 = "PrePass0"
+
+shader11 = ../../shaders/guest/ntsc/hsm-ntsc-pass1.slang
+filter_linear11 = false
+float_framebuffer11 = true
+scale_type_x11 = source
+scale_type_y11 = source
+scale_x11 = 4.0
+scale_y11 = 1.0
+frame_count_mod11 = 2
+alias11 = NPass1
+
+shader12 = ../../shaders/guest/ntsc/hsm-ntsc-pass2.slang
+float_framebuffer12 = true
+filter_linear12 = true
+scale_type12 = source
+scale_x12 = 0.5
+scale_y12 = 1.0
+
+shader13 = ../../shaders/guest/ntsc/hsm-ntsc-pass3.slang
+filter_linear13 = true
+scale_type13 = source
+scale_x13 = 1.0
+scale_y13 = 1.0
+
+shader14 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear14 = true
+scale_type14 = source
+scale_x14 = 1.0
+scale_y14 = 1.0
+
+shader15 = ../../shaders/base/stock.slang
+filter_linear15 = true
+scale_type15 = source
+scale_x15 = 1.0
+scale_y15 = 1.0
+alias15 = "PrePass"
+mipmap_input15 = true
+
+shader16 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear16 = true
+scale_type16 = source
+scale16 = 1.0
+mipmap_input16 = true
+alias16 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader17 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear17 = true
+scale_type17 = source
+scale17 = 1.0
+float_framebuffer17 = true
+alias17 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader18 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear18 = "false"
+scale_type18 = "source"
+scale18 = "1.0"
+wrap_mode18 = "clamp_to_border"
+mipmap_input18 = "false"
+alias18 = "SourceSDR"
+float_framebuffer18 = "true"
+
+shader19 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear19 = "false"
+scale_type19 = "source"
+scale19 = "1.0"
+wrap_mode19 = "clamp_to_border"
+mipmap_input19 = "false"
+alias19 = "SourceHDR"
+float_framebuffer19 = "true"
+
+shader20 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear20 = "false"
+wrap_mode20 = "clamp_to_border"
+mipmap_input20 = "false"
+alias20 = ""
+float_framebuffer20 = "false"
+srgb_framebuffer20 = "false"
+scale_type20 = "viewport"
+
+shader21 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias21 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
+
+// NTSC Parameters
+GAMMA_INPUT = 2.0
+gamma_out = 1.95
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON.slangp
new file mode 100644
index 0000000..2ee99a5
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__MEGATRON.slangp
@@ -0,0 +1,223 @@
+shaders = 18
+
+shader0 = ../../shaders/base/add-params-no-reflect.slang
+alias0 = "CorePass"
+
+shader1 = ../../shaders/base/stock.slang
+filter_linear1 = false
+srgb_framebuffer1 = true
+scale_type1 = source
+scale_x1 = 1
+scale_y1 = 1
+alias1 = "DerezedPass"
+
+shader2 = ../../shaders/base/add-negative-crop-area.slang
+filter_linear2 = false
+mipmap_input2 = false
+srgb_framebuffer2 = true
+scale_type2 = source
+scale_x2 = 1
+scale_y2 = 1
+alias2 = "NegativeCropAddedPass"
+
+shader3 = ../../shaders/base/cache-info-no-reflect-params.slang
+filter_linear3 = false
+scale_type3 = source
+scale3 = 1.0
+alias3 = "InfoCachePass"
+
+shader4 = ../../shaders/base/text-std-no-reflect.slang
+filter_linear4 = false
+float_framebuffer4 = true
+scale_type4 = source
+scale4 = 1.0
+alias4 = "TextPass"
+
+shader5 = ../../shaders/base/intro.slang
+filter_linear5 = false
+float_framebuffer5 = true
+scale_type5 = source
+scale5 = 1.0
+alias5 = "IntroPass"
+
+shader6 = ../../shaders/base/stock.slang
+alias6 = "PreCRTPass"
+
+shader7 = ../../shaders/guest/hsm-afterglow0.slang
+filter_linear7 = true
+scale_type7 = source
+scale7 = 1.0
+alias7 = "AfterglowPass"
+
+shader8 = ../../shaders/guest/hsm-pre-shaders-afterglow.slang
+filter_linear8 = true
+scale_type8 = source
+mipmap_input8 = true
+scale8 = 1.0
+
+// Color Correction with Dogway's awesome Grade shader
+// Grade is after Afterglow so that brightening the black level does not break the afterglow
+shader9 = ../../shaders/dogway/hsm-grade.slang
+filter_linear9 = true
+scale_type9 = source
+scale9 = 1.0
+
+shader10 = ../../shaders/guest/hsm-custom-fast-sharpen.slang
+filter_linear10 = true
+scale_type10 = source
+scale_x10 = 1.0
+scale_y10 = 1.0
+
+shader11 = ../../shaders/base/stock.slang
+filter_linear11 = true
+scale_type11 = source
+scale_x11 = 1.0
+scale_y11 = 1.0
+alias11 = "PrePass"
+mipmap_input11 = true
+
+shader12 = ../../shaders/guest/hsm-avg-lum.slang
+filter_linear12 = true
+scale_type12 = source
+scale12 = 1.0
+mipmap_input12 = true
+alias12 = "AvgLumPass"
+
+// Pass referenced by subsequent blurring passes and crt pass
+shader13 = ../../shaders/guest/hsm-interlace-and-linearize.slang
+filter_linear13 = true
+scale_type13 = source
+scale13 = 1.0
+float_framebuffer13 = true
+alias13 = "LinearizePass"
+feedback_pass = "0"
+
+// Sony Megatron Colour Video Monitor by Major Pain The Cactus
+shader14 = "../../shaders/megatron/crt-sony-megatron-source-pass.slang"
+filter_linear14 = "false"
+scale_type14 = "source"
+scale14 = "1.0"
+wrap_mode14 = "clamp_to_border"
+mipmap_input14 = "false"
+alias14 = "SourceSDR"
+float_framebuffer14 = "true"
+
+shader15 = "../../shaders/megatron/crt-sony-megatron-hdr-pass.slang"
+filter_linear15 = "false"
+scale_type15 = "source"
+scale15 = "1.0"
+wrap_mode15 = "clamp_to_border"
+mipmap_input15 = "false"
+alias15 = "SourceHDR"
+float_framebuffer15 = "true"
+
+shader16 = "../../shaders/megatron/crt-sony-megatron-no-reflect.slang"
+filter_linear16 = "false"
+wrap_mode16 = "clamp_to_border"
+mipmap_input16 = "false"
+alias16 = ""
+float_framebuffer16 = "false"
+srgb_framebuffer16 = "false"
+scale_type16 = "viewport"
+
+shader17 = ../../shaders/base/post-crt-prep-no-reflect.slang
+alias17 = "MBZ_PostCRTPass"
+// Define textures to be used by the different passes
+textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4;IntroImage;ScreenPlacementImage;TubeDiffuseImage;TubeColoredGelImage;TubeShadowImage;TubeStaticReflectionImage;BackgroundImage;BackgroundVertImage;ReflectionMaskImage;FrameTextureImage;CabinetGlassImage;DeviceImage;DeviceVertImage;DeviceLEDImage;DecalImage;NightLightingImage;NightLighting2Image;LEDImage;TopLayerImage;"
+
+SamplerLUT1 = ../../shaders/guest/lut/trinitron-lut.png
+SamplerLUT1_linear = true
+SamplerLUT2 = ../../shaders/guest/lut/inv-trinitron-lut.png
+SamplerLUT2_linear = true
+SamplerLUT3 = ../../shaders/guest/lut/nec-lut.png
+SamplerLUT3_linear = true
+SamplerLUT4 = ../../shaders/guest/lut/ntsc-lut.png
+SamplerLUT4_linear = true
+
+IntroImage = ../../shaders/textures/IntroImage_MegaBezelLogo.png
+IntroImage_linear = true
+IntroImage_mipmap = 1
+
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage_linear = false
+
+TubeDiffuseImage = ../../shaders/textures/Tube_Diffuse_2390x1792.png
+TubeDiffuseImage_linear = true
+TubeDiffuseImage_mipmap = 1
+
+TubeColoredGelImage = ../../shaders/textures/Colored_Gel_Rainbow.png
+TubeColoredGelImage_linear = true
+TubeColoredGelImage_mipmap = 1
+
+TubeShadowImage = ../../shaders/textures/Tube_Shadow_1600x1200.png
+TubeShadowImage_linear = true
+TubeShadowImage_mipmap = 1
+
+TubeStaticReflectionImage = ../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
+TubeStaticReflectionImage_linear = true
+TubeStaticReflectionImage_mipmap = 1
+
+ReflectionMaskImage = ../../shaders/textures/Placeholder_White_16x16.png
+ReflectionMaskImage_linear = true
+ReflectionMaskImage_mipmap = 1
+
+FrameTextureImage = ../../shaders/textures/FrameTexture_2800x2120.png
+FrameTextureImage_linear = true
+FrameTextureImage_mipmap = 1
+
+BackgroundImage = ../../shaders/textures/BackgroundImage_Carbon_3840x2160.png
+BackgroundImage_linear = true
+BackgroundImage_mipmap = 1
+
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage_linear = true
+BackgroundVertImage_mipmap = 1
+
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage_linear = true
+CabinetGlassImage_mipmap = 1
+
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage_linear = true
+DeviceImage_mipmap = 1
+
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage_linear = true
+DeviceVertImage_mipmap = 1
+
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage_linear = true
+DeviceLEDImage_mipmap = 1
+
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage_linear = true
+DecalImage_mipmap = 1
+
+NightLightingImage = ../../shaders/textures/NightLightingClose_1920x1080.png
+NightLightingImage_linear = true
+NightLightingImage_mipmap = 1
+
+NightLighting2Image = ../../shaders/textures/NightLightingFar_1920x1080.png
+NightLighting2Image_linear = true
+NightLighting2Image_mipmap = 1
+
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage_linear = true
+LEDImage_mipmap = 1
+
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage_linear = true
+TopLayerImage_mipmap = 1
+
+// Use for matching vanilla GDV-Advanced
+// HSM_ASPECT_RATIO_MODE = 6
+// HSM_CURVATURE_MODE = 0
+
+// Sony Megatron Color Monitor
+hcrt_hdr = "0.000000"
+hcrt_gamma_in = "2.020000"
+
+HSM_INT_SCALE_MODE = "1.000000"
+HSM_CRT_CURVATURE_SCALE = "0.000000"
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "40.000000"
+HSM_REFLECT_GLOBAL_AMOUNT = "300.000000"
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV-NTSC.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV-NTSC.slangp
index 6caf130..a56f132 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV-NTSC.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV-NTSC.slangp
@@ -303,17 +303,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV.slangp b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV.slangp
index 5d3e2bf..be140d9 100644
--- a/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV.slangp
+++ b/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV.slangp
@@ -264,17 +264,17 @@ SUPERXBR_ON = 1
ntsc_scale = 0.55
-SHARPEN = 0
+SHARPEN = 0.5
-HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 300
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 600
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
-gamma_c = 0.9
-gsl = -1
-scanline1 = 3
-shadowMask = 3
-maskDark = 0.4
-maskLight = 1.2
-mask_gamma = 4
+// gamma_c = 0.9
+// gsl = -1
+// scanline1 = 3
+// shadowMask = 3
+// maskDark = 0.4
+// maskLight = 1.2
+// mask_gamma = 4
diff --git a/bezel/Mega_Bezel/Presets/Variations/Guest-Slotmask-4K.slangp b/bezel/Mega_Bezel/Presets/Variations/Guest-Slotmask-4K.slangp
new file mode 100644
index 0000000..9801467
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Guest-Slotmask-4K.slangp
@@ -0,0 +1,44 @@
+#reference "../Base_CRT_Presets/MBZ__1__ADV__GDV.slangp"
+
+g_grade_on = "0.000000"
+CS = "2.000000"
+TNTC = "1.000000"
+WP = "-75.000000"
+wp_saturation = "1.150000"
+SIZEHB = "3.000000"
+SIGMA_HB = "0.750000"
+SIZEVB = "3.000000"
+SIGMA_VB = "0.750000"
+bloom = "0.700000"
+halation = "0.100000"
+gamma_c = "1.360000"
+brightboost = "1.300001"
+brightboost1 = "1.250000"
+gsl = "-1.000000"
+scanline1 = "2.500000"
+scanline2 = "14.000000"
+beam_min = "1.800000"
+beam_max = "0.775000"
+beam_size = "0.750000"
+scans = "1.650000"
+scan_falloff = "0.650000"
+spike = "1.500000"
+h_sharp = "3.000002"
+s_sharp = "1.000000"
+sth = "0.300000"
+csize = "0.115000"
+bsize1 = "0.300000"
+warpX = "0.040000"
+warpY = "0.050000"
+shadowMask = "10.000000"
+maskstr = "1.000000"
+mask_gamma = "2.399999"
+slotmask = "1.000000"
+slotmask1 = "1.000000"
+slotwidth = "4.000000"
+double_slot = "2.000000"
+mclip = "0.350000"
+gamma_out = "2.200000"
+deconrry = "1.250000"
+deconrby = "-1.250000"
+decons = "1.400000"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT.slangp
deleted file mode 100644
index 3458520..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT.slangp
+++ /dev/null
@@ -1,20 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__0__SMOOTH-ADV-NO-REFLECT__GDV.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT__NTSC.slangp
deleted file mode 100644
index c8c2cd0..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__0__SMOOTH-ADV-NO-REFLECT__NTSC.slangp
+++ /dev/null
@@ -1,20 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__0__SMOOTH-ADV-NO-REFLECT__GDV-NTSC.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT.slangp
deleted file mode 100644
index a7862ab..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT.slangp
+++ /dev/null
@@ -1,19 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT__GDV.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT__NTSC.slangp
deleted file mode 100644
index b24e9ec..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__2__ADV-NO-REFLECT__NTSC.slangp
+++ /dev/null
@@ -1,19 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__2__ADV-NO-REFLECT__GDV-NTSC.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT.slangp
deleted file mode 100644
index 4fddfb1..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT.slangp
+++ /dev/null
@@ -1,19 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__4__STD-NO-REFLECT__GDV.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT__NTSC.slangp
deleted file mode 100644
index ea955a6..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__4__STD-NO-REFLECT__NTSC.slangp
+++ /dev/null
@@ -1,19 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__4__STD-NO-REFLECT__GDV-NTSC.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO__NTSC.slangp
deleted file mode 100644
index 4c46ef5..0000000
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO__NTSC.slangp
+++ /dev/null
@@ -1,19 +0,0 @@
-#reference "../../Base_CRT_Presets/MBZ__5__POTATO__GDV-NTSC.slangp"
-
-BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
-
-// Parameters
-HSM_ASPECT_RATIO_MODE = 0
-HSM_INT_SCALE_MODE = 1
-HSM_INT_SCALE_MAX_HEIGHT = 115
-HSM_CURVATURE_MODE = 0
-HSM_GLOBAL_CORNER_RADIUS = 4
-HSM_TUBE_BLACK_EDGE_SHARPNESS = 90
-HSM_SCREEN_VIGNETTE_ON = 0
-HSM_BG_OPACITY = 0
-HSM_BZL_OPACITY = 0
-HSM_FRM_OPACITY = 0
-
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale.params
similarity index 90%
rename from bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO.slangp
rename to bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale.params
index 6e89f63..616ea0e 100644
--- a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale-No-Bezel__5__POTATO.slangp
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale.params
@@ -1,5 +1,3 @@
-#reference "../../Base_CRT_Presets/MBZ__5__POTATO__GDV.slangp"
-
BackgroundImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
BackgroundVertImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
NightLightingImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
@@ -17,3 +15,4 @@ HSM_BG_OPACITY = 0
HSM_BZL_OPACITY = 0
HSM_FRM_OPACITY = 0
+
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY.slangp
new file mode 100644
index 0000000..23187d5
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY.slangp
@@ -0,0 +1,3 @@
+#reference "../../Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV.slangp"
+#reference "Max-Int-Scale.params"
+
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY__NTSC.slangp
new file mode 100644
index 0000000..d7b93d3
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__0__SMOOTH-ADV-SCREEN-ONLY__NTSC.slangp
@@ -0,0 +1,3 @@
+#reference "../../Base_CRT_Presets/MBZ__0__SMOOTH-ADV-SCREEN-ONLY__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
+
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR.slangp
new file mode 100644
index 0000000..d3fec9f
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR__NTSC.slangp
new file mode 100644
index 0000000..815a156
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY-SUPER-XBR__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY.slangp
new file mode 100644
index 0000000..6f242a1
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY__NTSC.slangp
new file mode 100644
index 0000000..77bc7c6
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__2__ADV-SCREEN-ONLY__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__2__ADV-SCREEN-ONLY__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR.slangp
new file mode 100644
index 0000000..ec6b52f
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR__NTSC.slangp
new file mode 100644
index 0000000..5a9e744
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY-SUPER-XBR__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY-SUPER-XBR__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY.slangp
new file mode 100644
index 0000000..3a3f5d1
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY__NTSC.slangp
new file mode 100644
index 0000000..f6d0b3c
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__4__STD-SCREEN-ONLY__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__4__STD-SCREEN-ONLY__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR.slangp
new file mode 100644
index 0000000..057e618
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR__NTSC.slangp
new file mode 100644
index 0000000..66c4689
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO-SUPER-XBR__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__5__POTATO-SUPER-XBR__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO.slangp
new file mode 100644
index 0000000..533ba8b
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__5__POTATO__GDV.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO__NTSC.slangp b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO__NTSC.slangp
new file mode 100644
index 0000000..f312034
--- /dev/null
+++ b/bezel/Mega_Bezel/Presets/Variations/Max-Int-Scale/Max-Int-Scale__5__POTATO__NTSC.slangp
@@ -0,0 +1,2 @@
+#reference "../../Base_CRT_Presets/MBZ__5__POTATO__GDV-NTSC.slangp"
+#reference "Max-Int-Scale.params"
diff --git a/bezel/Mega_Bezel/README.md b/bezel/Mega_Bezel/README.md
index b6c40dc..b7e8d73 100644
--- a/bezel/Mega_Bezel/README.md
+++ b/bezel/Mega_Bezel/README.md
@@ -3,7 +3,7 @@ Mega Bezel Shader Readme
------------------------------------------------------------------------------------------------------------
![Mega Bezel Logo](MegaBezelLogo.png)
-**Version V1.4.2_2022-09-27**
+**Version V1.4.3_2022-10-09**
----------------------------------------
----------------------------------------
diff --git a/bezel/Mega_Bezel/resource/docs/all-parameters.params b/bezel/Mega_Bezel/resource/docs/all-parameters.params
new file mode 100644
index 0000000..9cca717
--- /dev/null
+++ b/bezel/Mega_Bezel/resource/docs/all-parameters.params
@@ -0,0 +1,276 @@
+
+HSM_RESOLUTION_DEBUG_ON = 0
+
+//---------------------------------------------------------------------------------------------------
+// CRT BRIGHTNESS & GAMMA
+//---------------------------------------------------------------------------------------------------
+
+GAMMA_INPUT = 2.4
+gamma_out = 2.4
+post_br = 1
+post_br_affect_black_level = 100
+
+//---------------------------------------------------------------------------------------------------
+// Global Graphics Caching
+//---------------------------------------------------------------------------------------------------
+HSM_CACHE_GRAPHICS_ON = 1
+HSM_CACHE_UPDATE_INDICATOR_MODE = 2
+
+//---------------------------------------------------------------------------------------------------
+// Global Graphics Brightness
+//---------------------------------------------------------------------------------------------------
+HSM_GLOBAL_GRAPHICS_BRIGHTNESS = 100
+HSM_STATIC_LAYERS_GAMMA = 1
+
+//---------------------------------------------------------------------------------------------------
+// AMBIENT LIGHTING AKA NIGHTLIGHTING
+//---------------------------------------------------------------------------------------------------
+HSM_AMBIENT_LIGHTING_OPACITY = 0
+HSM_AMBIENT1_OPACITY = 100
+HSM_AMBIENT2_OPACITY = 100
+HSM_AMBIENT_LIGHTING_SWAP_IMAGE_MODE = 0
+
+//---------------------------------------------------------------------------------------------------
+// Zoom & Pan
+//---------------------------------------------------------------------------------------------------
+HSM_VIEWPORT_ZOOM = 100
+HSM_VIEWPORT_ZOOM_MASK = 0
+HSM_VIEWPORT_POSITION_X = 0
+HSM_VIEWPORT_POSITION_Y = 0
+
+//---------------------------------------------------------------------------------------------------
+// FLIP & ROTATE
+//---------------------------------------------------------------------------------------------------
+HSM_FLIP_VIEWPORT_VERTICAL = 0
+HSM_FLIP_VIEWPORT_HORIZONTAL = 0
+HSM_FLIP_CORE_VERTICAL = 0
+HSM_FLIP_CORE_HORIZONTAL = 0
+HSM_ROTATE_CORE_IMAGE = 0
+
+//---------------------------------------------------------------------------------------------------
+// ASPECT RATIO
+//---------------------------------------------------------------------------------------------------
+HSM_ASPECT_RATIO_ORIENTATION = 0
+HSM_ASPECT_RATIO_MODE = 0
+HSM_ASPECT_RATIO_EXPLICIT = 0
+
+//---------------------------------------------------------------------------------------------------
+// CRT SCREEN SCALING GENERAL
+//---------------------------------------------------------------------------------------------------
+HSM_INT_SCALE_MODE = 0
+HSM_VERTICAL_PRESET = 0
+
+//---------------------------------------------------------------------------------------------------
+// INTEGER SCALE
+//---------------------------------------------------------------------------------------------------
+HSM_INT_SCALE_MAX_HEIGHT = 89
+HSM_INT_SCALE_MULTIPLE_OFFSET = 0
+HSM_INT_SCALE_MULTIPLE_OFFSET_LONG = 0
+
+//---------------------------------------------------------------------------------------------------
+// NON-INTEGER SCALE PERCENT
+//---------------------------------------------------------------------------------------------------
+HSM_NON_INTEGER_SCALE = 82.97
+
+//---------------------------------------------------------------------------------------------------
+// NON-INTEGER - PHYSICAL SIZES
+//---------------------------------------------------------------------------------------------------
+HSM_USE_PHYSICAL_SIZE_FOR_NON_INTEGER = 0
+HSM_PHYSICAL_MONITOR_ASPECT_RATIO = 1.77
+HSM_PHYSICAL_MONITOR_DIAGONAL_SIZE = 27
+HSM_PHYSICAL_SIM_TUBE_DIAGONAL_SIZE = 18.1
+
+//---------------------------------------------------------------------------------------------------
+// NON-INTEGER - AUTOMATIC SCREEN SCALE & PLACEMENT
+//---------------------------------------------------------------------------------------------------
+HSM_USE_IMAGE_FOR_PLACEMENT = 0
+HSM_PLACEMENT_IMAGE_USE_HORIZONTAL = 0
+HSM_PLACEMENT_IMAGE_MODE = 0
+
+//---------------------------------------------------------------------------------------------------
+// NON-INTEGER SCALE OFFSET
+//---------------------------------------------------------------------------------------------------
+HSM_NON_INTEGER_SCALE_OFFSET = 100
+
+//---------------------------------------------------------------------------------------------------
+// SNAP NON-INTEGER TO CLOSEST INTEGER SCALE
+//---------------------------------------------------------------------------------------------------
+HSM_USE_SNAP_TO_CLOSEST_INT_SCALE = 0
+HSM_SNAP_TO_CLOSEST_INT_SCALE_TOLERANCE = 20
+
+//---------------------------------------------------------------------------------------------------
+// POSITION OFFSET
+//---------------------------------------------------------------------------------------------------
+HSM_SCREEN_POSITION_X = 0
+HSM_SCREEN_POSITION_Y = 0
+
+//---------------------------------------------------------------------------------------------------
+// CROPPING CORE IMAGE
+//---------------------------------------------------------------------------------------------------
+HSM_CROP_MODE = 2
+HSM_CROP_PERCENT_ZOOM = 0
+HSM_CROP_PERCENT_TOP = 0
+HSM_CROP_PERCENT_BOTTOM = 0
+HSM_CROP_PERCENT_LEFT = 0
+HSM_CROP_PERCENT_RIGHT = 0
+HSM_CROP_BLACK_THRESHOLD = 0
+
+//---------------------------------------------------------------------------------------------------
+// SCANLINE DIRECTION
+//---------------------------------------------------------------------------------------------------
+HSM_SCANLINE_DIRECTION = 0
+
+//---------------------------------------------------------------------------------------------------
+// DREZ DOWNSAMPLE FILTER - HYLLIAN - DREZ PRESETS ONLY
+//---------------------------------------------------------------------------------------------------
+C_FILTER_MODE = 0
+
+//---------------------------------------------------------------------------------------------------
+// CORE RES SAMPLING
+//---------------------------------------------------------------------------------------------------
+HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = 0
+HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = 100
+HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = 0
+HSM_CORE_RES_SAMPLING_SHIFT_OPPOSITE_DIR = 0
+
+//---------------------------------------------------------------------------------------------------
+// FAST SHARPEN - GUEST.R
+//---------------------------------------------------------------------------------------------------
+SHARPEN = 0
+CONTR = 0.05
+DETAILS = 1
+
+//---------------------------------------------------------------------------------------------------
+// INTERLACING From Guest.r
+//---------------------------------------------------------------------------------------------------
+HSM_INTERLACE_TRIGGER_RES = 650
+HSM_INTERLACE_MODE = 4
+HSM_INTERLACE_EFFECT_SMOOTHNESS_INTERS = 0
+HSM_INTERLACE_SCANLINE_EFFECT = 20
+icans = 0.25
+
+//---------------------------------------------------------------------------------------------------
+// FAKE SCANLINES
+//---------------------------------------------------------------------------------------------------
+HSM_FAKE_SCANLINE_MODE = 2
+HSM_FAKE_SCANLINE_OPACITY = 70
+HSM_FAKE_SCANLINE_RES_MODE = 1
+HSM_FAKE_SCANLINE_RES = 240
+HSM_FAKE_SCANLINE_INT_SCALE = 1
+HSM_FAKE_SCANLINE_ROLL = 0
+HSM_FAKE_SCANLINE_CURVATURE = 0
+
+//---------------------------------------------------------------------------------------------------
+// CURVATURE
+//---------------------------------------------------------------------------------------------------
+HSM_CURVATURE_MODE = 1
+HSM_CURVATURE_2D_SCALE_LONG_AXIS = 100
+HSM_CURVATURE_2D_SCALE_SHORT_AXIS = 100
+HSM_CURVATURE_3D_RADIUS = 200
+HSM_CURVATURE_3D_VIEW_DIST = 150
+HSM_CURVATURE_3D_TILT_ANGLE_X = 0
+HSM_CURVATURE_3D_TILT_ANGLE_Y = 0
+HSM_CRT_CURVATURE_SCALE = 100
+
+//---------------------------------------------------------------------------------------------------
+// ANTI-FLICKER
+//---------------------------------------------------------------------------------------------------
+HSM_ANTI_FLICKER_ON = 0
+HSM_ANTI_FLICKER_THRESHOLD = 25
+
+//---------------------------------------------------------------------------------------------------
+// A/B SPLITSCREEN COMPARE
+//---------------------------------------------------------------------------------------------------
+HSM_AB_COMPARE_SHOW_MODE = 0
+HSM_AB_COMPARE_AREA = 0
+HSM_AB_COMPARE_SPLIT_POSITION = 50
+HSM_AB_COMPARE_FREEZE_CRT_TUBE = 0
+HSM_AB_COMPARE_FREEZE_GRAPHICS = 0
+
+//---------------------------------------------------------------------------------------------------
+// SCREEN VIGNETTE
+//---------------------------------------------------------------------------------------------------
+HSM_SCREEN_VIGNETTE_ON = 1
+HSM_SCREEN_VIGNETTE_DUALSCREEN_VIS_MODE = 0
+HSM_SCREEN_VIGNETTE_STRENGTH = 40
+HSM_SCREEN_VIGNETTE_POWER = 26
+HSM_SCREEN_VIGNETTE_IN_REFLECTION = 100
+
+//---------------------------------------------------------------------------------------------------
+// MONOCHROME
+//---------------------------------------------------------------------------------------------------
+HSM_MONOCHROME_MODE = 0
+HSM_MONOCHROME_BRIGHTNESS = 100
+HSM_MONOCHROME_GAMMA = 1
+HSM_MONOCHROME_HUE_OFFSET = 0
+HSM_MONOCHROME_SATURATION = 100
+HSM_MONOCHROME_DUALSCREEN_VIS_MODE = 0
+
+//---------------------------------------------------------------------------------------------------
+// TUBE DIFFUSE IMAGE
+//---------------------------------------------------------------------------------------------------
+HSM_TUBE_DIFFUSE_MODE = 0
+HSM_TUBE_DIFFUSE_IMAGE_AMOUNT = 100
+HSM_TUBE_DIFFUSE_IMAGE_DUALSCREEN_VIS_MODE = 0
+HSM_TUBE_DIFFUSE_IMAGE_COLORIZE_ON = 0
+HSM_TUBE_DIFFUSE_IMAGE_HUE = 0
+HSM_TUBE_DIFFUSE_IMAGE_SATURATION = 100
+HSM_TUBE_DIFFUSE_IMAGE_BRIGHTNESS = 20
+HSM_TUBE_DIFFUSE_IMAGE_GAMMA = 1
+HSM_TUBE_DIFFUSE_IMAGE_AMBIENT_LIGHTING = 100
+HSM_TUBE_DIFFUSE_IMAGE_AMBIENT2_LIGHTING = 0
+HSM_TUBE_DIFFUSE_IMAGE_SCALE = 140
+HSM_TUBE_DIFFUSE_IMAGE_SCALE_X = 100
+HSM_TUBE_DIFFUSE_IMAGE_ROTATION = 0
+HSM_TUBE_DIFFUSE_FORCE_ASPECT = 1
+HSM_TUBE_EXPLICIT_ASPECT = 1.33
+HSM_TUBE_EMPTY_THICKNESS = 0
+HSM_TUBE_EMPTY_THICKNESS_X_SCALE = 100
+HSM_SCREEN_CORNER_RADIUS_SCALE = 100
+
+//---------------------------------------------------------------------------------------------------
+// TUBE SHADOW IMAGE
+//---------------------------------------------------------------------------------------------------
+HSM_TUBE_SHADOW_IMAGE_ON = 1
+HSM_TUBE_SHADOW_IMAGE_OPACITY = 60
+HSM_TUBE_SHADOW_IMAGE_POS_X = 0
+HSM_TUBE_SHADOW_IMAGE_POS_Y = 0
+HSM_TUBE_SHADOW_IMAGE_SCALE_X = 122
+HSM_TUBE_SHADOW_IMAGE_SCALE_Y = 130
+HSM_TUBE_SHADOW_CURVATURE_SCALE = 300
+
+//---------------------------------------------------------------------------------------------------
+// TUBE GLASS STATIC REFLECTION IMAGE
+//---------------------------------------------------------------------------------------------------
+
+HSM_TUBE_STATIC_REFLECTION_IMAGE_ON = 0
+HSM_TUBE_STATIC_REFLECTION_IMAGE_DUALSCREEN_VIS_MODE = 0
+HSM_TUBE_STATIC_REFLECTION_IMAGE_OPACITY = 16
+HSM_TUBE_STATIC_OPACITY_DIFFUSE_MULTIPLY = 25
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bezel/Mega_Bezel/resource/docs/set-all-textures-empty.params b/bezel/Mega_Bezel/resource/docs/set-all-textures-empty.params
new file mode 100644
index 0000000..f0c765e
--- /dev/null
+++ b/bezel/Mega_Bezel/resource/docs/set-all-textures-empty.params
@@ -0,0 +1,24 @@
+
+IntroImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+ScreenPlacementImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+
+NightLightingImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+NightLighting2Image = ../../shaders/textures/Placeholder_Transparent_16x16.png
+
+TubeDiffuseImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TubeColoredGelImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TubeShadowImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TubeStaticReflectionImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+
+// ReflectionMaskImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+FrameTextureImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+
+BackgroundImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+BackgroundVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+LEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceVertImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DeviceLEDImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+DecalImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+CabinetGlassImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
+TopLayerImage = ../../shaders/textures/Placeholder_Transparent_16x16.png
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/ShaderTodo.txt b/bezel/Mega_Bezel/shaders/ShaderTodo.txt
index 7b3e3d0..699a989 100644
--- a/bezel/Mega_Bezel/shaders/ShaderTodo.txt
+++ b/bezel/Mega_Bezel/shaders/ShaderTodo.txt
@@ -1,19 +1,29 @@
![Mega_Bezel_Logo|512x256, 75%](upload://6PNkvcMF9Go9Wnk6OJXfYR1opXI.png)
-Mega Bezel is updated to V1.4.2_2022-09-27
+Mega Bezel is updated to V1.4.3_2022-10-09
Changes:
- * Fixed LCD Grid and Easymode
+ * Fixed D3D11 bugs, Shaders now load, Compilation is still much slower than Vulkan or GlCore
+ * Added SCREEN-ONLY presets for those users which don't use the Refletion, Bezel or Graphics
+ * Adjusted SUPER-XBR settings to be more like the latest SUPER-XBR
+ * Added Tube Opacity
+ * Updated Text to faster compiling and rendering
+ * The names of the Max-Int presets has now changed because they point to these SCREEN-ONLY base presets which are faster
+ * Split apart libraries to improve compile times and optimize execution
----------------------------------------------------
--- TODO ---------------------------------------
----------------------------------------------------
- * Try Leveraging Fake Scanlines for Gameboy type effect
- * Integer Scale Mode not affecting tube scale
+ * Fix Blur Noise Samples
+ * Fix No Reflect Tube Edge Mask (Can see through right now)
+ * Integer Scale Mode X & Y not affecting tube scale
+ * Move Global Variable Update to separate file for compile speed
* Add .params #reference to with all parameters commented out
* Bezel shadow on Potato Tube / Game Image
+ * Get CRT image to composite on top of the BG, so effects can affect the BG
+ * We should have a middle pass which has the device behind the CRT tube
----------------------------------------------------
--- Examples --------------------------------------
diff --git a/bezel/Mega_Bezel/shaders/base/add-params-all.slang b/bezel/Mega_Bezel/shaders/base/add-params-all.slang
index a379d5e..8c791cf 100644
--- a/bezel/Mega_Bezel/shaders/base/add-params-all.slang
+++ b/bezel/Mega_Bezel/shaders/base/add-params-all.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-all-params.inc"
+#include "common/common-functions.inc"
#include "stock.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/add-params-glass.slang b/bezel/Mega_Bezel/shaders/base/add-params-glass.slang
index 2a48996..d4445d5 100644
--- a/bezel/Mega_Bezel/shaders/base/add-params-glass.slang
+++ b/bezel/Mega_Bezel/shaders/base/add-params-glass.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-glass-params.inc"
+#include "common/common-functions.inc"
#include "stock.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/add-params-no-reflect.slang b/bezel/Mega_Bezel/shaders/base/add-params-no-reflect.slang
index de307f9..c281da3 100644
--- a/bezel/Mega_Bezel/shaders/base/add-params-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/base/add-params-no-reflect.slang
@@ -3,4 +3,5 @@
#define IS_NO_REFLECT_PRESET
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "stock.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/add-params-potato.slang b/bezel/Mega_Bezel/shaders/base/add-params-potato.slang
index 3e2b50f..59451e6 100644
--- a/bezel/Mega_Bezel/shaders/base/add-params-potato.slang
+++ b/bezel/Mega_Bezel/shaders/base/add-params-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-potato-params.inc"
+#include "common/common-functions.inc"
#include "stock.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/bezel-images-over-crt.slang b/bezel/Mega_Bezel/shaders/base/bezel-images-over-crt.slang
index 0423a85..0768ea0 100644
--- a/bezel/Mega_Bezel/shaders/base/bezel-images-over-crt.slang
+++ b/bezel/Mega_Bezel/shaders/base/bezel-images-over-crt.slang
@@ -4,4 +4,5 @@
/////////////// IMPORTS ///////////////
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "bezel-images.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/bezel-images-under-crt.slang b/bezel/Mega_Bezel/shaders/base/bezel-images-under-crt.slang
index e788e3e..d391c87 100644
--- a/bezel/Mega_Bezel/shaders/base/bezel-images-under-crt.slang
+++ b/bezel/Mega_Bezel/shaders/base/bezel-images-under-crt.slang
@@ -4,4 +4,5 @@
/////////////// IMPORTS ///////////////
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "bezel-images.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/bezel-images.inc b/bezel/Mega_Bezel/shaders/base/bezel-images.inc
index 2a21cb4..fd67f81 100644
--- a/bezel/Mega_Bezel/shaders/base/bezel-images.inc
+++ b/bezel/Mega_Bezel/shaders/base/bezel-images.inc
@@ -309,7 +309,6 @@ layout(location = 0) out vec4 FragColor;
// Pass Framebuffer Textures
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D BackgroundImage;
layout(set = 0, binding = 4) uniform sampler2D BackgroundVertImage;
@@ -345,7 +344,7 @@ void main()
VIEWPORT_UNSCALED_COORD = HSM_GetViewportCoordWithFlip(vTexCoord);
VIEWPORT_COORD = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec4 feedback_color_test = texture(PassFeedback, vec2(0,0));
if (HSM_CACHE_GRAPHICS_ON > 0.5 && feedback_color_test.a < 0 && !CACHE_INFO_CHANGED)
@@ -620,7 +619,10 @@ void main()
HSM_BZL_BLEND_MODE,
HSM_AMBIENT_LIGHTING_SWAP_IMAGE_MODE);
- float FRAME_AND_BEZEL_MASK = (1 - TUBE_MASK) * (1 - OUTSIDE_FRAME_MASK);
+ // Contract the tube mask to leave a little extra black ring at the edge of the bezel
+ // otherwise this will show slivers of the background otherwise
+ float tube_mask_contracted = HSM_GetCornerMask((tube_curved_coord - 0.5) * 1.004 + 0.5, TUBE_DIFFUSE_ASPECT, bezel_corner_radius, 0.99);
+ float FRAME_AND_BEZEL_MASK = (1 - tube_mask_contracted) * (1 - OUTSIDE_FRAME_MASK);
if (HSM_BZL_OPACITY > 0 || HSM_FRM_OPACITY > 0)
bezel_layer = clamp(bezel_and_frame_rgba * FRAME_AND_BEZEL_MASK, 0, 1);
@@ -645,7 +647,8 @@ void main()
float TUBE_MASK_EXPAND = HSM_GetCornerMask((tube_curved_coord - 0.5) * 0.997 + 0.5, TUBE_DIFFUSE_ASPECT, bezel_corner_radius, 0.99);
- vec4 tube_bg_layer = vec4(0, 0, 0, TUBE_MASK_EXPAND * HSM_GetTubeDiffuseOpacity());
+ // vec4 tube_bg_layer = vec4(0, 0, 0, TUBE_MASK_EXPAND * HSM_GetTubeOpacity());
+ vec4 tube_bg_layer = vec4(0, 0, 0, 0);
// end of ifndef LAYERS_UNDER_CRT
#endif
@@ -1155,7 +1158,6 @@ void main()
// Add background behind tube
frag_color_linear = HSM_PreMultAlphaBlend(frag_color_linear, tube_bg_layer);
-
// GENERATED BEZEL LAYER
if (HSM_BZL_OPACITY > 0 || HSM_FRM_OPACITY > 0)
frag_color_linear = BlendModeMaskLayerMix(frag_color_linear,
@@ -1186,8 +1188,9 @@ void main()
FragColor = frag_color_linear;
+ // If we have calculated an image then set -1 as a flag to show that we have
if (UNFLIPPED_VIEWPORT_COORD.x < (2 / global.OutputSize.x) && UNFLIPPED_VIEWPORT_COORD.y < (2 / global.OutputSize.y))
- FragColor = vec4(0.01, 0.01, 0.01, -1);
+ FragColor.a = -1;
return;
}
diff --git a/bezel/Mega_Bezel/shaders/base/blur-outside-screen.inc b/bezel/Mega_Bezel/shaders/base/blur-outside-screen.inc
index d4b820f..2b93bb2 100644
--- a/bezel/Mega_Bezel/shaders/base/blur-outside-screen.inc
+++ b/bezel/Mega_Bezel/shaders/base/blur-outside-screen.inc
@@ -23,6 +23,7 @@
*/
#include "common/globals-and-reflection-params.inc"
+#include "common/common-functions.inc"
#include "common/common-functions-bezel.inc"
#pragma stage vertex
@@ -48,7 +49,6 @@ layout(set = 0, binding = 2) uniform sampler2D Source;
layout(set = 0, binding = 3) uniform sampler2D BR_MirrorLowResPass;
layout(set = 0, binding = 4) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 5) uniform sampler2D InfoCachePassFeedback;
float clamp_0_1(float in_value)
{
@@ -60,7 +60,7 @@ void main()
if (HSM_REFLECT_BLUR_NUM_SAMPLES > 0)
{
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 tube_curved_coord_ctr = HSM_GetTubeCurvedCoord(TUBE_DIFFUSE_COORD, 1, TUBE_DIFFUSE_SCALE, TUBE_SCALE, TUBE_DIFFUSE_ASPECT, 1) - 0.5;
diff --git a/bezel/Mega_Bezel/shaders/base/cache-info-all-params.slang b/bezel/Mega_Bezel/shaders/base/cache-info-all-params.slang
index 2198794..a5587df 100644
--- a/bezel/Mega_Bezel/shaders/base/cache-info-all-params.slang
+++ b/bezel/Mega_Bezel/shaders/base/cache-info-all-params.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-all-params.inc"
+#include "common/common-functions.inc"
#include "cache-info.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/cache-info-no-reflect-params.slang b/bezel/Mega_Bezel/shaders/base/cache-info-no-reflect-params.slang
index 30e5834..e62a962 100644
--- a/bezel/Mega_Bezel/shaders/base/cache-info-no-reflect-params.slang
+++ b/bezel/Mega_Bezel/shaders/base/cache-info-no-reflect-params.slang
@@ -3,4 +3,5 @@
#define IS_NO_REFLECT_PRESET
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "cache-info.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/cache-info-screen-scale-params.slang b/bezel/Mega_Bezel/shaders/base/cache-info-screen-scale-params.slang
index bd1352b..6908cde 100644
--- a/bezel/Mega_Bezel/shaders/base/cache-info-screen-scale-params.slang
+++ b/bezel/Mega_Bezel/shaders/base/cache-info-screen-scale-params.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-screen-scale-params.inc"
+#include "common/common-functions.inc"
#include "cache-info.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/cache-info.inc b/bezel/Mega_Bezel/shaders/base/cache-info.inc
index ea5dbec..3662758 100644
--- a/bezel/Mega_Bezel/shaders/base/cache-info.inc
+++ b/bezel/Mega_Bezel/shaders/base/cache-info.inc
@@ -592,7 +592,7 @@ float HSM_GetParameterSum()
+ HSM_AB_COMPARE_FREEZE_GRAPHICS
// // TUBE DIFFUSE
- // + HSM_TUBE_DIFFUSE_OPACITY
+ // + HSM_TUBE_OPACITY
// + HSM_TUBE_DIFFUSE_MODE
// + HSM_TUBE_DIFFUSE_IMAGE_DUALSCREEN_VIS_MODE
// + HSM_TUBE_DIFFUSE_IMAGE_COLORIZE_ON
@@ -1043,7 +1043,7 @@ vec4 HSM_GetColorForScreenInfoCache(vec2 viewport_coord, sampler2D feedback_pass
sample_2d_range = HSM_GetCacheSampleRange(1, 1);
if (HSM_IsCoordIn2DRange(viewport_coord, sample_2d_range) == 1)
{
- out_color.r = HSM_GetAverageLuma(original_pass, global.NegativeCropAddedPassSize.xy);
+ out_color.a = HSM_GetAverageLuma(original_pass, global.NegativeCropAddedPassSize.xy);
}
// Sample 2, 1
@@ -1072,6 +1072,7 @@ vec4 HSM_GetColorForScreenInfoCache(vec2 viewport_coord, sampler2D feedback_pass
if (HSM_IsCoordIn2DRange(viewport_coord, sample_2d_range) == 1)
{
out_color.rg = cropped_rotated_size_with_res_mult;
+ out_color.ba = HSM_GetRotatedNegativeCropAddedSize();
}
// Sample 1, 2
@@ -1129,6 +1130,7 @@ vec4 HSM_GetColorForScreenInfoCache(vec2 viewport_coord, sampler2D feedback_pass
if (HSM_IsCoordIn2DRange(viewport_coord, sample_2d_range) == 1)
{
out_color.rg = global.CorePassSize.xy;
+ out_color.ba = HSM_GetRotatedCoreOriginalSize();
}
// Sample 3, 3
@@ -1187,6 +1189,8 @@ vec4 HSM_GetColorForScreenInfoCache(vec2 viewport_coord, sampler2D feedback_pass
out_color.ba = tube_diffuse_scale_2nd_screen;
}
+ // Saple 4, 4 is used for CACHE_INFO_CHANGED
+
vec2 sample_coord = vec2(0);
vec4 texture_sample = vec4(0);
diff --git a/bezel/Mega_Bezel/shaders/base/combine-passes.inc b/bezel/Mega_Bezel/shaders/base/combine-passes.inc
index bdd60bc..46abd1e 100644
--- a/bezel/Mega_Bezel/shaders/base/combine-passes.inc
+++ b/bezel/Mega_Bezel/shaders/base/combine-passes.inc
@@ -24,6 +24,7 @@
/////////////// IMPORTS ///////////////
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "common/common-functions-bezel.inc"
@@ -58,7 +59,6 @@ layout(location = 0) out vec4 FragColor;
// Pass Framebuffer Textures
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D BR_LayersUnderCRTPass;
@@ -80,7 +80,7 @@ void main()
{
UNFLIPPED_VIEWPORT_COORD = vTexCoord;
vec2 VIEWPORT_COORD = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// Have to get the scale of the coordinates so we can figure out the size of the onscreen rectangle of the area
@@ -94,7 +94,7 @@ void main()
BEZEL_OUTSIDE_CURVED_COORD,
FRAME_OUTSIDE_CURVED_COORD);
- if (BEZEL_OUTSIDE_COORD.x < -0.01 || BEZEL_OUTSIDE_COORD.x > 1.01 || BEZEL_OUTSIDE_COORD.y < -0.01 || BEZEL_OUTSIDE_COORD.y > 1.01)
+ if (HHLP_IsOutsideCoordSpace(BEZEL_OUTSIDE_COORD))
{
vec4 feedback_color_test = texture(PassFeedback, vec2(0,0));
if (HSM_CACHE_GRAPHICS_ON > 0.5 && feedback_color_test.a < 0 && !CACHE_INFO_CHANGED && HSM_RENDER_SIMPLE_MODE < 0.5)
@@ -108,6 +108,7 @@ void main()
out_color.rgb *= HSM_GLOBAL_GRAPHICS_BRIGHTNESS;
vec4 crt_layer = texture(MiddlePass, vTexCoord);
+
#ifdef IS_NO_REFLECT_PRESET
crt_layer = HSM_Linearize(crt_layer, DEFAULT_SRGB_GAMMA);
#endif
@@ -118,10 +119,9 @@ void main()
float bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS;
if(HSM_BZL_USE_INDEPENDENT_CURVATURE > 0)
bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * DEFAULT_SCREEN_CORNER_RADIUS;
- vec2 tube_curved_coord = HSM_GetTubeCurvedCoord(TUBE_DIFFUSE_COORD, 1, TUBE_DIFFUSE_SCALE, TUBE_SCALE, TUBE_DIFFUSE_ASPECT, 1);
if (HSM_RENDER_SIMPLE_MODE < 0.5)
- out_color.rgb += crt_layer.rgb;
+ out_color = HSM_PreMultAlphaBlend(out_color, crt_layer);
vec4 over_layer = texture(BR_LayersOverCRTPass, vTexCoord);
over_layer.rgb *= HSM_GLOBAL_GRAPHICS_BRIGHTNESS;
@@ -131,6 +131,8 @@ void main()
if (HSM_RENDER_SIMPLE_MODE > 0.5)
{
+ vec2 tube_curved_coord = HSM_GetTubeCurvedCoord(TUBE_DIFFUSE_COORD, 1, TUBE_DIFFUSE_SCALE, TUBE_SCALE, TUBE_DIFFUSE_ASPECT, 1);
+
TUBE_DIFFUSE_CURVED_COORD = HSM_GetCurvedCoord(TUBE_DIFFUSE_COORD, HSM_TUBE_BLACK_EDGE_CURVATURE_SCALE, TUBE_DIFFUSE_ASPECT);
TUBE_DIFFUSE_MASK = HSM_GetCornerMask(((TUBE_DIFFUSE_CURVED_COORD - 0.5) * 1.001) + 0.5, TUBE_DIFFUSE_ASPECT, HSM_GLOBAL_CORNER_RADIUS * HSM_TUBE_BLACK_EDGE_CORNER_RADIUS_SCALE, HSM_TUBE_BLACK_EDGE_SHARPNESS);
@@ -186,8 +188,10 @@ void main()
FragColor = vec4(FRAME_MASK);
}
}
+
+ // If we have calculated an image then set -1 as a flag to show that we have
if (UNFLIPPED_VIEWPORT_COORD.x < (2 / global.OutputSize.x) && UNFLIPPED_VIEWPORT_COORD.y < (2 / global.OutputSize.y))
- FragColor = vec4(0.01, 0.01, 0.01, -1);
+ FragColor.a = -1;
return;
}
diff --git a/bezel/Mega_Bezel/shaders/base/common/base-functions.inc b/bezel/Mega_Bezel/shaders/base/common/base-functions.inc
new file mode 100644
index 0000000..e2a38f0
--- /dev/null
+++ b/bezel/Mega_Bezel/shaders/base/common/base-functions.inc
@@ -0,0 +1,324 @@
+/*
+ Mega Bezel - Creates a graphic treatment for the game play area to give a retro feel
+ Copyright (C) 2019-2022 HyperspaceMadness - HyperspaceMadness@outlook.com
+
+ Incorporates much great feedback from the libretro forum, and thanks
+ to Hunterk who helped me get started
+
+ See more at the libretro forum
+ https://forums.libretro.com/t/hsm-mega-bezel-reflection-shader-feedback-and-updates
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see [http://www.gnu.org/licenses/].
+*/
+
+// Returns 1 for vertical split, 2 for horizontal split
+float HSM_GetCoreImageSplitDirection()
+{
+ float core_image_split_direction = 1;
+
+ if (HSM_DUALSCREEN_CORE_IMAGE_SPLIT_MODE == 0)
+ {
+ if (HSM_DUALSCREEN_MODE == 1)
+ core_image_split_direction = 1;
+ if (HSM_DUALSCREEN_MODE == 2)
+ core_image_split_direction = 2;
+ }
+ else
+ {
+ core_image_split_direction = HSM_DUALSCREEN_CORE_IMAGE_SPLIT_MODE;
+ }
+ return core_image_split_direction;
+}
+
+vec2 HSM_GetCoordWithPositionOffset(vec2 in_coord, vec2 position_offset)
+{
+ return in_coord - position_offset;
+}
+
+vec2 HSM_GetInverseScaledCoord(vec2 in_coord, vec2 in_scale)
+{
+ vec2 middle = vec2(0.49999, 0.49999);
+ vec2 diff = in_coord.xy - middle;
+ vec2 screen_inverse_scale = 1.0 / in_scale;
+ vec2 scaled_coord = middle + diff * screen_inverse_scale;
+
+ return scaled_coord;
+}
+
+vec2 HSM_GetVTexCoordWithArgs(vec2 in_coord, vec2 in_scale, vec2 position_offset)
+{
+ return HSM_GetInverseScaledCoord(HSM_GetCoordWithPositionOffset(in_coord, position_offset), in_scale);
+}
+
+// Rows and Columns are 1 based
+vec4 HSM_GetCacheSampleRange(float column_index, float row_index)
+{
+ float num_rows = 8;
+ float num_columns = 8;
+
+ float range_width = 1 / num_columns;
+ float range_height = 1 / num_rows;
+
+ float zero_based_row_index = row_index - 1;
+ float zero_based_column_index = column_index - 1;
+
+ vec4 out_sample_range = vec4(0);
+
+ out_sample_range.x = zero_based_column_index * range_width;
+ out_sample_range.y = zero_based_row_index * range_height;
+ out_sample_range.z = out_sample_range.x + range_width;
+ out_sample_range.w = out_sample_range.y + range_height;
+
+ return out_sample_range;
+}
+
+vec2 HSM_GetCacheSampleCoord(float column_index, float row_index)
+{
+ float num_rows = 8;
+ float num_columns = 8;
+
+ float range_width = 1 / num_columns;
+ float range_height = 1 / num_rows;
+
+ vec4 sample_range = HSM_GetCacheSampleRange(column_index, row_index);
+ return vec2(sample_range.x + range_width/2, sample_range.y + range_height/2);
+}
+
+vec2 HSM_GetViewportCoordWithFlip(vec2 viewport_coord)
+{
+ vec2 out_coord = viewport_coord;
+
+ // out_coord.y = HSM_FLIP_VIEWPORT_VERTICAL * (out_coord.y - 0.5) + 0.5;
+ // out_coord.x = HSM_FLIP_VIEWPORT_HORIZONTAL * (out_coord.x - 0.5) + 0.5;
+
+ if (HSM_FLIP_VIEWPORT_VERTICAL == -1)
+ out_coord.y = 1 - out_coord.y;
+
+ if (HSM_FLIP_VIEWPORT_HORIZONTAL == -1)
+ out_coord.x = 1 - out_coord.x;
+
+ return out_coord;
+}
+
+vec2 HSM_GetViewportCoordWithZoomAndPan(vec2 viewport_coord)
+{
+ vec2 out_coord = HSM_GetViewportCoordWithFlip(viewport_coord);
+
+ out_coord = (out_coord - 0.5) / HSM_VIEWPORT_ZOOM + 0.5;
+ out_coord.x += HSM_VIEWPORT_POSITION_X;
+ out_coord.y -= HSM_VIEWPORT_POSITION_Y;
+
+ return out_coord;
+}
+
+float HSM_GetScreenIndex(vec2 viewport_coord)
+{
+ float out_index = 1;
+ float output_aspect = global.FinalViewportSize.x / global.FinalViewportSize.y;
+
+ if (HSM_DUALSCREEN_MODE == 0)
+ out_index = 1;
+ if (HSM_DUALSCREEN_MODE == 1)
+ out_index = (viewport_coord.y < 0.5 + HSM_DUALSCREEN_VIEWPORT_SPLIT_LOCATION / output_aspect) ? 1 : 2;
+ if (HSM_DUALSCREEN_MODE == 2)
+ out_index = (viewport_coord.x < 0.5 + HSM_DUALSCREEN_VIEWPORT_SPLIT_LOCATION / output_aspect) ? 1 : 2;
+
+ return out_index;
+}
+
+vec4 HSM_UpdateGlobalScreenValuesFromCache(sampler2D in_cache_pass, vec2 vTexCoord)
+{
+ float output_aspect = global.FinalViewportSize.x / global.FinalViewportSize.y;
+ vec2 flipped_viewport_coord = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
+ SCREEN_INDEX = HSM_GetScreenIndex(flipped_viewport_coord);
+ vec2 sample_coord = vec2(0);
+ vec4 texture_sample = vec4(0);
+
+ // Sample 1, 1
+ sample_coord = HSM_GetCacheSampleCoord(1, 1);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ AVERAGE_LUMA = texture_sample.a;
+
+ float res_mult_size_sum = 0;
+ float res_mult_size_sum_feedback = 0;
+
+ float res_mult_size2_sum = 0;
+ float res_mult_size2_sum_feedback = 0;
+
+ if (SCREEN_INDEX == 1)
+ {
+ // Sample 2, 1
+ // r SCREEN_ASPECT
+ // ba SCREEN_SCALE
+ sample_coord = HSM_GetCacheSampleCoord(2, 1);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ SCREEN_ASPECT = texture_sample.r;
+ SCREEN_SCALE = texture_sample.ba;
+
+ // Sample 3, 1
+ // rg TUBE_SCALE
+ // ba SCREEN_POS_OFFSET
+ sample_coord = HSM_GetCacheSampleCoord(3, 1);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_SCALE = texture_sample.rg;
+ SCREEN_POS_OFFSET = texture_sample.ba;
+
+ // Sample 3, 4
+ // rg TUBE_DIFFUSE_SCALE
+ sample_coord = HSM_GetCacheSampleCoord(3, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_DIFFUSE_SCALE = texture_sample.rg;
+ TUBE_DIFFUSE_ASPECT = TUBE_DIFFUSE_SCALE.x / TUBE_DIFFUSE_SCALE.y * output_aspect;
+
+ // Sample 4, 1
+ // rg CROPPED_ROTATED_SIZE_WITH_RES_MULT
+ sample_coord = HSM_GetCacheSampleCoord(4, 1);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CROPPED_ROTATED_SIZE_WITH_RES_MULT = texture_sample.rg;
+ res_mult_size_sum = CROPPED_ROTATED_SIZE_WITH_RES_MULT.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT.y;
+ ROTATED_CORE_PREPPED_SIZE = texture_sample.ba;
+
+ // Sample 1, 2
+ // rg CROPPED_ROTATED_SIZE
+ // ba SAMPLE_AREA_START_PIXEL_COORD
+ sample_coord = HSM_GetCacheSampleCoord(1, 2);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CROPPED_ROTATED_SIZE = texture_sample.rg;
+ SAMPLE_AREA_START_PIXEL_COORD = texture_sample.ba;
+ }
+ // If we are in the section of the viewport which is the second screen
+ if (SCREEN_INDEX == 2)
+ {
+ // Sample 2, 2 Sample - 2nd Screen
+ // r SCREEN_ASPECT
+ // ba SCREEN_SCALE
+ sample_coord = HSM_GetCacheSampleCoord(2, 2);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ SCREEN_ASPECT = texture_sample.r;
+ SCREEN_SCALE = texture_sample.gb;
+
+ // Sample 3, 2 - 2nd Screen
+ // rg TUBE_SCALE
+ // ba SCREEN_POS_OFFSET
+ sample_coord = HSM_GetCacheSampleCoord(3, 2);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_SCALE = texture_sample.rg;
+ SCREEN_POS_OFFSET = texture_sample.ba;
+
+ // TODO need to add TUBE_DIFFUSE_ASPECT & deal with 2nd Screen
+ // Sample 3, 4
+ // ba TUBE_DIFFUSE_SCALE
+ sample_coord = HSM_GetCacheSampleCoord(3, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_DIFFUSE_SCALE = texture_sample.ba;
+ TUBE_DIFFUSE_ASPECT = TUBE_DIFFUSE_SCALE.x / TUBE_DIFFUSE_SCALE.y * output_aspect;
+
+ // Sample 4, 2
+ // rg CROPPED_ROTATED_SIZE_WITH_RES_MULT
+ sample_coord = HSM_GetCacheSampleCoord(4, 2);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CROPPED_ROTATED_SIZE_WITH_RES_MULT = texture_sample.rg;
+ res_mult_size2_sum = CROPPED_ROTATED_SIZE_WITH_RES_MULT.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT.y;
+
+ // Sample 1, 3
+ // rg CROPPED_ROTATED_SIZE
+ // ba SAMPLE_AREA_START_PIXEL_COORD
+ sample_coord = HSM_GetCacheSampleCoord(1, 3);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CROPPED_ROTATED_SIZE = texture_sample.rg;
+ SAMPLE_AREA_START_PIXEL_COORD = texture_sample.ba;
+ }
+
+ // Sample 3, 1
+ // rg TUBE_SCALE
+ // ba SCREEN_POS_OFFSET
+ sample_coord = HSM_GetCacheSampleCoord(3, 1);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ // TUBE_SCALE_1ST_SCREEN = texture_sample.rg;
+ SCREEN_POS_OFFSET_1ST_SCREEN = texture_sample.ba;
+
+ // Sample 3, 4
+ // rg TUBE_DIFFUSE_SCALE_1ST_SCREEN
+ sample_coord = HSM_GetCacheSampleCoord(3, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_DIFFUSE_SCALE_1ST_SCREEN = texture_sample.rg;
+ // TUBE_DIFFUSE_ASPECT_1ST_SCREEN = TUBE_DIFFUSE_SCALE_1ST_SCREEN.x / TUBE_DIFFUSE_SCALE_1ST_SCREEN.y * output_aspect;
+
+ // Sample 3, 2 - 2nd Screen
+ // rg TUBE_SCALE_2ND_SCREEN
+ // ba SCREEN_POS_OFFSET_2ND_SCREEN
+ sample_coord = HSM_GetCacheSampleCoord(3, 2);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ // TUBE_SCALE_2ND_SCREEN = texture_sample.rg;
+ SCREEN_POS_OFFSET_2ND_SCREEN = texture_sample.ba;
+
+ // TODO need to add TUBE_DIFFUSE_ASPECT & deal with 2nd Screen
+ // Sample 3, 4
+ // ba TUBE_DIFFUSE_SCALE_2ND_SCREEN
+ sample_coord = HSM_GetCacheSampleCoord(3, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ TUBE_DIFFUSE_SCALE_2ND_SCREEN = texture_sample.ba;
+
+ // Sample 2, 3 Sample
+ // rg CORE_SIZE
+ sample_coord = HSM_GetCacheSampleCoord(2, 3);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CORE_SIZE = texture_sample.rg;
+ ROTATED_CORE_ORIGINAL_SIZE = texture_sample.ba;
+
+ // Sample 3, 3
+ // rg VIEWPORT_SCALE
+ // ba VIEWPORT_POS
+ sample_coord = HSM_GetCacheSampleCoord(3, 3);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ VIEWPORT_SCALE = texture_sample.rg;
+ VIEWPORT_POS = texture_sample.ba;
+
+ // Sample 4, 3
+ // rg SCREEN_SCALE_2ND_SCREEN
+ // ba SCREEN_POS_OFFSET_2ND_SCREEN
+ sample_coord = HSM_GetCacheSampleCoord(4, 3);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ SCREEN_SCALE_2ND_SCREEN = texture_sample.rg;
+ SCREEN_POS_OFFSET_2ND_SCREEN = texture_sample.ba;
+
+ // Sample 1, 4
+ // g CURRENT_FRAME_FROM_CACHE_INFO
+ // b ROTATED_DEREZED_SIZE
+ sample_coord = HSM_GetCacheSampleCoord(1, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CURRENT_FRAME_FROM_CACHE_INFO = texture_sample.g;
+ ROTATED_DEREZED_SIZE = texture_sample.ba;
+
+ // Sample 2, 4
+ // r NEGATIVE_CROP_EXPAND_MULTIPLIER
+ // g MAX_NEGATIVE_CROP
+ sample_coord = HSM_GetCacheSampleCoord(2, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ NEGATIVE_CROP_EXPAND_MULTIPLIER = texture_sample.r;
+ MAX_NEGATIVE_CROP = texture_sample.g;
+ USE_VERTICAL_SCANLINES = texture_sample.b;
+
+ // Sample 4, 4
+ // r CACHE_INFO_CHANGED
+ sample_coord = HSM_GetCacheSampleCoord(4, 4);
+ texture_sample = texture(in_cache_pass, sample_coord);
+ CACHE_INFO_CHANGED = texture_sample.r > 0.5 ? true : false;
+
+ SCREEN_COORD = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, SCREEN_SCALE, SCREEN_POS_OFFSET);
+ TUBE_DIFFUSE_COORD = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, TUBE_DIFFUSE_SCALE, SCREEN_POS_OFFSET);
+ TUBE_DIFFUSE_COORD_MIXED_POS = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, TUBE_DIFFUSE_SCALE_1ST_SCREEN, (SCREEN_POS_OFFSET_1ST_SCREEN + SCREEN_POS_OFFSET_2ND_SCREEN) / 2.0);
+
+ return vec4(0);
+}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/common-functions-bezel.inc b/bezel/Mega_Bezel/shaders/base/common/common-functions-bezel.inc
index 9136d89..b2d6c5b 100644
--- a/bezel/Mega_Bezel/shaders/base/common/common-functions-bezel.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/common-functions-bezel.inc
@@ -137,47 +137,4 @@ bool HSM_GetUseTubeDiffuseImage()
bool HSM_GetUseTubeColoredGelImage()
{
return HSM_TUBE_COLORED_GEL_IMAGE_ON > 0.5 && HSM_GetUseOnCurrentScreenIndex(HSM_TUBE_COLORED_GEL_IMAGE_DUALSCREEN_VIS_MODE);
-}
-
-vec4 HSM_GetTubeHighlight(vec2 tube_curved_coord, bool apply_to_mirror, in sampler2D TubeStaticReflectionImage)
-{
- tube_curved_coord = HSM_GetViewportCoordWithFlip(tube_curved_coord);
- vec4 out_color = vec4(0);
-
- vec2 mirrored_tube_coord = tube_curved_coord;
- if (apply_to_mirror)
- mirrored_tube_coord = HSM_GetMirrorWrappedCoord(tube_curved_coord);
-
- float bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS;
- if(HSM_BZL_USE_INDEPENDENT_CURVATURE > 0)
- bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * DEFAULT_SCREEN_CORNER_RADIUS;
-
- vec2 tube_highlight_coord = (mirrored_tube_coord - 0.5) / vec2(HSM_TUBE_STATIC_SCALE * HSM_TUBE_STATIC_SCALE_X, HSM_TUBE_STATIC_SCALE) + 0.5;
- tube_highlight_coord = (tube_highlight_coord - 0.5) / vec2(HSM_TUBE_STATIC_SCALE_X, 1) + 0.5;
-
- tube_highlight_coord.x = (tube_highlight_coord.x + HSM_TUBE_STATIC_POS_X - 0.5) * HSM_FLIP_VIEWPORT_HORIZONTAL + 0.5;
- tube_highlight_coord.y = (tube_highlight_coord.y + HSM_TUBE_STATIC_POS_Y - 0.5) * HSM_FLIP_VIEWPORT_VERTICAL + 0.5;
-
- // Mask the very outer edge of the tube for a very small shadowing effect
- float tube_highlight_mask = HSM_GetCornerMask((tube_curved_coord - 0.5) + 0.5 , TUBE_DIFFUSE_ASPECT, HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS, 0.9);
-
- vec4 tube_highlight_image = vec4(0);
-
- if (HSM_TUBE_STATIC_DITHER_SAMPLES > 0)
- {
- // Dithering for the glass reflection if needed to reduce banding
- tube_highlight_image = HSM_GetStoichaicBlurredSample(TubeStaticReflectionImage, tube_highlight_coord, HSM_TUBE_STATIC_DITHER_SAMPLES, HSM_TUBE_STATIC_DITHER_DISTANCE, HSM_TUBE_STATIC_DITHER_AMOUNT);
- }
- else
- {
- tube_highlight_image = HSM_GetMipmappedTexSample(TubeStaticReflectionImage, tube_highlight_coord, TUBE_SCALE, 0);
- }
- tube_highlight_image = HSM_Linearize(tube_highlight_image, DEFAULT_SRGB_GAMMA) * tube_highlight_mask;
-
- out_color = HSM_TUBE_STATIC_REFLECTION_IMAGE_OPACITY * tube_highlight_image * tube_highlight_image.a;
- out_color.rgb *= HSM_GLOBAL_GRAPHICS_BRIGHTNESS;
-
- return out_color;
-}
-
-
+}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/common-functions.inc b/bezel/Mega_Bezel/shaders/base/common/common-functions.inc
index d3eaac2..dcb0349 100644
--- a/bezel/Mega_Bezel/shaders/base/common/common-functions.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/common-functions.inc
@@ -23,6 +23,7 @@
*/
#include "helper-functions.inc"
+#include "base-functions.inc"
#ifndef IS_POTATO_PRESET
#include "royale-geometry-functions.inc"
@@ -35,33 +36,6 @@ float CURVATURE_MODE_3D_1 = 3;
float CURVATURE_MODE_3D_2 = 4;
float CURVATURE_MODE_3D_CYLINDER = 5;
-vec2 HSM_GetViewportCoordWithFlip(vec2 viewport_coord)
-{
- vec2 out_coord = viewport_coord;
-
- // out_coord.y = HSM_FLIP_VIEWPORT_VERTICAL * (out_coord.y - 0.5) + 0.5;
- // out_coord.x = HSM_FLIP_VIEWPORT_HORIZONTAL * (out_coord.x - 0.5) + 0.5;
-
- if (HSM_FLIP_VIEWPORT_VERTICAL == -1)
- out_coord.y = 1 - out_coord.y;
-
- if (HSM_FLIP_VIEWPORT_HORIZONTAL == -1)
- out_coord.x = 1 - out_coord.x;
-
- return out_coord;
-}
-
-vec2 HSM_GetViewportCoordWithZoomAndPan(vec2 viewport_coord)
-{
- vec2 out_coord = HSM_GetViewportCoordWithFlip(viewport_coord);
-
- out_coord = (out_coord - 0.5) / HSM_VIEWPORT_ZOOM + 0.5;
- out_coord.x += HSM_VIEWPORT_POSITION_X;
- out_coord.y -= HSM_VIEWPORT_POSITION_Y;
-
- return out_coord;
-}
-
float HSM_GetAspectRatioFromMode(float in_aspect_ratio_mode, float in_explicit_aspect)
{
float out_explicit_aspect = in_explicit_aspect;
@@ -111,25 +85,6 @@ float HSM_GetNegativeCropExpandMultiplier()
return HSM_GetNegativeCropAddedSize().y / HSM_GetDerezedSize().y;
}
-// Returns 1 for vertical split, 2 for horizontal split
-float HSM_GetCoreImageSplitDirection()
-{
- float core_image_split_direction = 1;
-
- if (HSM_DUALSCREEN_CORE_IMAGE_SPLIT_MODE == 0)
- {
- if (HSM_DUALSCREEN_MODE == 1)
- core_image_split_direction = 1;
- if (HSM_DUALSCREEN_MODE == 2)
- core_image_split_direction = 2;
- }
- else
- {
- core_image_split_direction = HSM_DUALSCREEN_CORE_IMAGE_SPLIT_MODE;
- }
- return core_image_split_direction;
-}
-
float HSM_GetSwappedScreenIndex(float screen_index)
{
float out_index = screen_index;
@@ -213,40 +168,6 @@ float HSM_GetUseVerticalScanlines(float screen_aspect)
return scanline_direction;
}
-// Rows and Columns are 1 based
-vec4 HSM_GetCacheSampleRange(float column_index, float row_index)
-{
- float num_rows = 8;
- float num_columns = 8;
-
- float range_width = 1 / num_columns;
- float range_height = 1 / num_rows;
-
- float zero_based_row_index = row_index - 1;
- float zero_based_column_index = column_index - 1;
-
- vec4 out_sample_range = vec4(0);
-
- out_sample_range.x = zero_based_column_index * range_width;
- out_sample_range.y = zero_based_row_index * range_height;
- out_sample_range.z = out_sample_range.x + range_width;
- out_sample_range.w = out_sample_range.y + range_height;
-
- return out_sample_range;
-}
-
-vec2 HSM_GetCacheSampleCoord(float column_index, float row_index)
-{
- float num_rows = 8;
- float num_columns = 8;
-
- float range_width = 1 / num_columns;
- float range_height = 1 / num_rows;
-
- vec4 sample_range = HSM_GetCacheSampleRange(column_index, row_index);
- return vec2(sample_range.x + range_width/2, sample_range.y + range_height/2);
-}
-
vec2 HSM_GetResMult()
{
// TODO when using target resolution
@@ -290,16 +211,6 @@ vec4 HSM_GetTexSampleFromSampleStartAndSize(sampler2D in_sampler, vec2 in_screen
return out_color;
}
-vec2 HSM_GetInverseScaledCoord(vec2 in_coord, vec2 in_scale)
-{
- vec2 middle = vec2(0.49999, 0.49999);
- vec2 diff = in_coord.xy - middle;
- vec2 screen_inverse_scale = 1.0 / in_scale;
- vec2 scaled_coord = middle + diff * screen_inverse_scale;
-
- return scaled_coord;
-}
-
// Applies the position before scaling from the center
// Should allow having an image where the center of the tube in the graphic is off center
// the position offset moves it so the screen is centered, then the graphic is scaled from the center
@@ -474,16 +385,6 @@ vec3 HSM_GetScreenPlacementAndHeight(sampler2D in_sampler_2D, float num_samples)
return vec3(0.5, 0.5, 1);
}
-vec2 HSM_GetCoordWithPositionOffset(vec2 in_coord, vec2 position_offset)
-{
- return in_coord - position_offset;
-}
-
-vec2 HSM_GetVTexCoordWithArgs(vec2 in_coord, vec2 in_scale, vec2 position_offset)
-{
- return HSM_GetInverseScaledCoord(HSM_GetCoordWithPositionOffset(in_coord, position_offset), in_scale);
-}
-
vec2 HSM_GetScreenVTexCoord(vec2 in_coord, vec2 in_screen_scale, vec2 position_offset)
{
return HSM_GetVTexCoordWithArgs(in_coord, in_screen_scale, position_offset);
@@ -847,235 +748,111 @@ vec4 HSM_GetStoichaicBlurredSample(sampler2D in_sampler, vec2 in_coord, float nu
float radius = sin(dot(in_coord, vec2(1233.224, 1743.335)));
vec2 radius_vector;
- for(int i=0; i < num_samples; i++)
+ vec2 sample_coord = vec2(0);
+
+ // The following are all unrolled otherwise they won't compile in D3D11
+ if (num_samples < 1.5)
{
radius_vector.x = HSM_rand(radius);
radius_vector.y = HSM_rand(radius);
- vec2 sample_coord = in_coord + radius_vector * p;
+ sample_coord = in_coord + radius_vector * p;
- blurred_color += texture(in_sampler, sample_coord) / num_samples;
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 1;
}
+
+ if (num_samples < 2.5)
+ {
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 2;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 2;
+ }
+
+ if (num_samples > 2.5)
+ {
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+
+ radius_vector.x = HSM_rand(radius);
+ radius_vector.y = HSM_rand(radius);
+ sample_coord = in_coord + radius_vector * p;
+
+ blurred_color += texture(in_sampler, abs(sample_coord)) / 12;
+ }
+
return blurred_color;
}
-float HSM_GetScreenIndex(vec2 viewport_coord)
-{
- float out_index = 1;
- float output_aspect = global.FinalViewportSize.x / global.FinalViewportSize.y;
-
- if (HSM_DUALSCREEN_MODE == 0)
- out_index = 1;
- if (HSM_DUALSCREEN_MODE == 1)
- out_index = (viewport_coord.y < 0.5 + HSM_DUALSCREEN_VIEWPORT_SPLIT_LOCATION / output_aspect) ? 1 : 2;
- if (HSM_DUALSCREEN_MODE == 2)
- out_index = (viewport_coord.x < 0.5 + HSM_DUALSCREEN_VIEWPORT_SPLIT_LOCATION / output_aspect) ? 1 : 2;
-
- return out_index;
-}
-
-vec4 HSM_UpdateGlobalScreenValuesFromCache(sampler2D in_cache_pass, sampler2D in_cache_feedback_pass, vec2 vTexCoord)
-{
- float output_aspect = global.FinalViewportSize.x / global.FinalViewportSize.y;
- vec2 flipped_viewport_coord = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- SCREEN_INDEX = HSM_GetScreenIndex(flipped_viewport_coord);
- CORE_SIZE = global.CorePassSize.xy;
- ROTATED_CORE_PREPPED_SIZE = HSM_GetRotatedNegativeCropAddedSize();
- ROTATED_CORE_ORIGINAL_SIZE = HSM_GetRotatedCoreOriginalSize();
- vec2 sample_coord = vec2(0);
- vec4 texture_sample = vec4(0);
-
- // Sample 1, 1
- sample_coord = HSM_GetCacheSampleCoord(1, 1);
- texture_sample = texture(in_cache_pass, sample_coord);
- AVERAGE_LUMA = texture_sample.a;
-
- float res_mult_size_sum = 0;
- float res_mult_size_sum_feedback = 0;
-
- float res_mult_size2_sum = 0;
- float res_mult_size2_sum_feedback = 0;
-
- if (SCREEN_INDEX == 1)
- {
- // Sample 2, 1
- // r SCREEN_ASPECT
- // ba SCREEN_SCALE
- sample_coord = HSM_GetCacheSampleCoord(2, 1);
- texture_sample = texture(in_cache_pass, sample_coord);
- SCREEN_ASPECT = texture_sample.r;
- SCREEN_SCALE = texture_sample.ba;
-
- // Sample 3, 1
- // rg TUBE_SCALE
- // ba SCREEN_POS_OFFSET
- sample_coord = HSM_GetCacheSampleCoord(3, 1);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_SCALE = texture_sample.rg;
- SCREEN_POS_OFFSET = texture_sample.ba;
-
- // Sample 3, 4
- // rg TUBE_DIFFUSE_SCALE
- sample_coord = HSM_GetCacheSampleCoord(3, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_DIFFUSE_SCALE = texture_sample.rg;
- TUBE_DIFFUSE_ASPECT = TUBE_DIFFUSE_SCALE.x / TUBE_DIFFUSE_SCALE.y * output_aspect;
-
- // Sample 4, 1
- // rg CROPPED_ROTATED_SIZE_WITH_RES_MULT
- sample_coord = HSM_GetCacheSampleCoord(4, 1);
- texture_sample = texture(in_cache_pass, sample_coord);
- CROPPED_ROTATED_SIZE_WITH_RES_MULT = texture_sample.rg;
- res_mult_size_sum = CROPPED_ROTATED_SIZE_WITH_RES_MULT.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT.y;
-
- texture_sample = texture(in_cache_feedback_pass, sample_coord);
- CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK = texture_sample.rg;
- res_mult_size_sum_feedback = CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK.y;
-
- // Sample 1, 2
- // rg CROPPED_ROTATED_SIZE
- // ba SAMPLE_AREA_START_PIXEL_COORD
- sample_coord = HSM_GetCacheSampleCoord(1, 2);
- texture_sample = texture(in_cache_pass, sample_coord);
- CROPPED_ROTATED_SIZE = texture_sample.rg;
- SAMPLE_AREA_START_PIXEL_COORD = texture_sample.ba;
- }
- // If we are in the section of the viewport which is the second screen
- if (SCREEN_INDEX == 2)
- {
- // Sample 2, 2 Sample - 2nd Screen
- // r SCREEN_ASPECT
- // ba SCREEN_SCALE
- sample_coord = HSM_GetCacheSampleCoord(2, 2);
- texture_sample = texture(in_cache_pass, sample_coord);
- SCREEN_ASPECT = texture_sample.r;
- SCREEN_SCALE = texture_sample.gb;
-
- // Sample 3, 2 - 2nd Screen
- // rg TUBE_SCALE
- // ba SCREEN_POS_OFFSET
- sample_coord = HSM_GetCacheSampleCoord(3, 2);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_SCALE = texture_sample.rg;
- SCREEN_POS_OFFSET = texture_sample.ba;
-
- // TODO need to add TUBE_DIFFUSE_ASPECT & deal with 2nd Screen
- // Sample 3, 4
- // ba TUBE_DIFFUSE_SCALE
- sample_coord = HSM_GetCacheSampleCoord(3, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_DIFFUSE_SCALE = texture_sample.ba;
- TUBE_DIFFUSE_ASPECT = TUBE_DIFFUSE_SCALE.x / TUBE_DIFFUSE_SCALE.y * output_aspect;
-
- // Sample 4, 2
- // rg CROPPED_ROTATED_SIZE_WITH_RES_MULT
- sample_coord = HSM_GetCacheSampleCoord(4, 2);
- texture_sample = texture(in_cache_pass, sample_coord);
- CROPPED_ROTATED_SIZE_WITH_RES_MULT = texture_sample.rg;
- res_mult_size2_sum = CROPPED_ROTATED_SIZE_WITH_RES_MULT.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT.y;
-
- texture_sample = texture(in_cache_feedback_pass, sample_coord);
- CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK = texture_sample.rg;
- res_mult_size2_sum_feedback = CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK.x + CROPPED_ROTATED_SIZE_WITH_RES_MULT_FEEDBACK.y;
-
- // Sample 1, 3
- // rg CROPPED_ROTATED_SIZE
- // ba SAMPLE_AREA_START_PIXEL_COORD
- sample_coord = HSM_GetCacheSampleCoord(1, 3);
- texture_sample = texture(in_cache_pass, sample_coord);
- CROPPED_ROTATED_SIZE = texture_sample.rg;
- SAMPLE_AREA_START_PIXEL_COORD = texture_sample.ba;
- }
-
- // Sample 3, 1
- // rg TUBE_SCALE
- // ba SCREEN_POS_OFFSET
- sample_coord = HSM_GetCacheSampleCoord(3, 1);
- texture_sample = texture(in_cache_pass, sample_coord);
- // TUBE_SCALE_1ST_SCREEN = texture_sample.rg;
- SCREEN_POS_OFFSET_1ST_SCREEN = texture_sample.ba;
-
- // Sample 3, 4
- // rg TUBE_DIFFUSE_SCALE_1ST_SCREEN
- sample_coord = HSM_GetCacheSampleCoord(3, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_DIFFUSE_SCALE_1ST_SCREEN = texture_sample.rg;
- // TUBE_DIFFUSE_ASPECT_1ST_SCREEN = TUBE_DIFFUSE_SCALE_1ST_SCREEN.x / TUBE_DIFFUSE_SCALE_1ST_SCREEN.y * output_aspect;
-
- // Sample 3, 2 - 2nd Screen
- // rg TUBE_SCALE_2ND_SCREEN
- // ba SCREEN_POS_OFFSET_2ND_SCREEN
- sample_coord = HSM_GetCacheSampleCoord(3, 2);
- texture_sample = texture(in_cache_pass, sample_coord);
- // TUBE_SCALE_2ND_SCREEN = texture_sample.rg;
- SCREEN_POS_OFFSET_2ND_SCREEN = texture_sample.ba;
-
- // TODO need to add TUBE_DIFFUSE_ASPECT & deal with 2nd Screen
- // Sample 3, 4
- // ba TUBE_DIFFUSE_SCALE_2ND_SCREEN
- sample_coord = HSM_GetCacheSampleCoord(3, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- TUBE_DIFFUSE_SCALE_2ND_SCREEN = texture_sample.ba;
- // TUBE_DIFFUSE_ASPECT_2ND_SCREEN = TUBE_DIFFUSE_SCALE_2ND_SCREEN.x / TUBE_DIFFUSE_SCALE_2ND_SCREEN.y * output_aspect;
-
-
- // Sample 2, 3 Sample
- // rg CORE_SIZE
- sample_coord = HSM_GetCacheSampleCoord(2, 3);
- texture_sample = texture(in_cache_pass, sample_coord);
- CORE_SIZE = texture_sample.rg;
-
- // Sample 3, 3
- // rg VIEWPORT_SCALE
- // ba VIEWPORT_POS
- sample_coord = HSM_GetCacheSampleCoord(3, 3);
- texture_sample = texture(in_cache_pass, sample_coord);
- VIEWPORT_SCALE = texture_sample.rg;
- VIEWPORT_POS = texture_sample.ba;
-
- // Sample 4, 3
- // rg SCREEN_SCALE_2ND_SCREEN
- // ba SCREEN_POS_OFFSET_2ND_SCREEN
- sample_coord = HSM_GetCacheSampleCoord(4, 3);
- texture_sample = texture(in_cache_pass, sample_coord);
- SCREEN_SCALE_2ND_SCREEN = texture_sample.rg;
- SCREEN_POS_OFFSET_2ND_SCREEN = texture_sample.ba;
-
- // Sample 1, 4
- // g CURRENT_FRAME_FROM_CACHE_INFO
- // b ROTATED_DEREZED_SIZE
- sample_coord = HSM_GetCacheSampleCoord(1, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- CURRENT_FRAME_FROM_CACHE_INFO = texture_sample.g;
- ROTATED_DEREZED_SIZE = texture_sample.ba;
-
- // Sample 1, 4 Feedback
- // r parameter_sum_feedback
- texture_sample = texture(in_cache_feedback_pass, sample_coord);
- float parameter_sum_feedback = texture_sample.r;
-
- // Sample 2, 4
- // r NEGATIVE_CROP_EXPAND_MULTIPLIER
- // g MAX_NEGATIVE_CROP
- sample_coord = HSM_GetCacheSampleCoord(2, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- NEGATIVE_CROP_EXPAND_MULTIPLIER = texture_sample.r;
- MAX_NEGATIVE_CROP = texture_sample.g;
- USE_VERTICAL_SCANLINES = texture_sample.b;
-
- // Sample 2, 4
- // r NEGATIVE_CROP_EXPAND_MULTIPLIER
- // g MAX_NEGATIVE_CROP
- sample_coord = HSM_GetCacheSampleCoord(4, 4);
- texture_sample = texture(in_cache_pass, sample_coord);
- CACHE_INFO_CHANGED = texture_sample.r > 0.5 ? true : false;
-
- SCREEN_COORD = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, SCREEN_SCALE, SCREEN_POS_OFFSET);
- TUBE_DIFFUSE_COORD = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, TUBE_DIFFUSE_SCALE, SCREEN_POS_OFFSET);
- TUBE_DIFFUSE_COORD_MIXED_POS = HSM_GetVTexCoordWithArgs(flipped_viewport_coord, TUBE_DIFFUSE_SCALE_1ST_SCREEN, (SCREEN_POS_OFFSET_1ST_SCREEN + SCREEN_POS_OFFSET_2ND_SCREEN) / 2.0);
-
- return vec4(0);
-}
-
bool HSM_GetIsInABCompareArea(vec2 viewport_coord)
{
float test_value = HSM_AB_COMPARE_AREA > 1.5 ? viewport_coord.y : viewport_coord.x;
@@ -1291,9 +1068,9 @@ vec4 HSM_ApplyMonochrome(vec4 in_color)
return out_color;
}
-float HSM_GetTubeDiffuseOpacity()
+float HSM_GetTubeOpacity()
{
- float tube_diffuse_opacity = HSM_TUBE_DIFFUSE_MODE < 1.5 ? HSM_TUBE_DIFFUSE_OPACITY : 0;
+ float tube_diffuse_opacity = HSM_TUBE_DIFFUSE_MODE < 1.5 ? HSM_TUBE_OPACITY : 0;
// If CRT Blend Mode is Multiply (2) then the tube must be fully opaque
if (HSM_CRT_BLEND_MODE == 2)
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-all-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-all-params.inc
index 13aacaf..b529c43 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-all-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-all-params.inc
@@ -4,5 +4,4 @@
#include "params-2-bezel.inc"
#include "params-2-reflection.inc"
#include "params-4-image-layers.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-bezel-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-bezel-params.inc
index cf7b9cb..b902331 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-bezel-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-bezel-params.inc
@@ -3,5 +3,4 @@
#include "params-0-screen-scale.inc"
#include "params-2-bezel.inc"
#include "params-4-image-layers.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-glass-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-glass-params.inc
index 5bb3d8d..cb8510f 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-glass-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-glass-params.inc
@@ -5,5 +5,4 @@
#include "params-2-bezel.inc"
#include "params-2-reflection.inc"
#include "params-3-glass-only.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-image-layers-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-image-layers-params.inc
index a5528f5..23f145f 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-image-layers-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-image-layers-params.inc
@@ -2,5 +2,4 @@
#include "params-0-screen-scale.inc"
#include "params-2-bezel.inc"
#include "params-4-image-layers.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-potato-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-potato-params.inc
index 5376c12..aff105f 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-potato-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-potato-params.inc
@@ -3,5 +3,4 @@
#include "globals.inc"
#include "params-0-screen-scale.inc"
#include "params-1-potato-only.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-reflection-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-reflection-params.inc
index c8c4768..5155c32 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-reflection-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-reflection-params.inc
@@ -2,5 +2,4 @@
#include "params-0-screen-scale.inc"
#include "params-2-bezel.inc"
#include "params-2-reflection.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals-and-screen-scale-params.inc b/bezel/Mega_Bezel/shaders/base/common/globals-and-screen-scale-params.inc
index ecac120..503c7b3 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals-and-screen-scale-params.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals-and-screen-scale-params.inc
@@ -1,4 +1,3 @@
#include "globals.inc"
#include "params-0-screen-scale.inc"
-#include "params-5-intro.inc"
-#include "common-functions.inc"
\ No newline at end of file
+#include "params-5-intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/common/globals.inc b/bezel/Mega_Bezel/shaders/base/common/globals.inc
index 1e54dd3..c8ad04f 100644
--- a/bezel/Mega_Bezel/shaders/base/common/globals.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/globals.inc
@@ -239,7 +239,7 @@ layout(std140, set = 0, binding = 0) uniform UBO
// TUBE IMAGES
float HSM_TUBE_DIFFUSE_MODE;
float HSM_TUBE_DIFFUSE_IMAGE_DUALSCREEN_VIS_MODE;
- float HSM_TUBE_DIFFUSE_OPACITY;
+ float HSM_TUBE_OPACITY;
float HSM_TUBE_DIFFUSE_IMAGE_AMOUNT;
float HSM_TUBE_DIFFUSE_IMAGE_HUE;
float HSM_TUBE_DIFFUSE_IMAGE_COLORIZE_ON;
@@ -841,15 +841,6 @@ vec2 DEFAULT_BEZEL_SCALE = vec2(0);
int INFOCACHE_MAX_INDEX = 4;
-float BLEND_MODE_OFF = 0;
-float BLEND_MODE_NORMAL = 1;
-float BLEND_MODE_ADD = 2;
-float BLEND_MODE_MULTIPLY = 3;
-
-float SOURCE_MATTE_PREMULTIPLIED = 0;
-float SOURCE_MATTE_WHITE = 1;
-float SOURCE_MATTE_NONE = 2;
-
float IMAGE_ASPECT_MODE_INHERIT_ASPECT_SCALE = 0;
float IMAGE_ASPECT_MODE_KEEP_ASPECT = 1;
diff --git a/bezel/Mega_Bezel/shaders/base/common/helper-functions.inc b/bezel/Mega_Bezel/shaders/base/common/helper-functions.inc
index a0cb7ff..0eca3d5 100644
--- a/bezel/Mega_Bezel/shaders/base/common/helper-functions.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/helper-functions.inc
@@ -23,6 +23,15 @@
along with this program. If not, see .
*/
+float SOURCE_MATTE_PREMULTIPLIED = 0;
+float SOURCE_MATTE_WHITE = 1;
+float SOURCE_MATTE_NONE = 2;
+
+float BLEND_MODE_OFF = 0;
+float BLEND_MODE_NORMAL = 1;
+float BLEND_MODE_ADD = 2;
+float BLEND_MODE_MULTIPLY = 3;
+
vec4 HSM_ApplyGamma(vec4 in_color, float in_gamma)
{
vec3 out_color = pow(in_color.rgb, vec3(1 / in_gamma));
diff --git a/bezel/Mega_Bezel/shaders/base/common/params-0-screen-scale.inc b/bezel/Mega_Bezel/shaders/base/common/params-0-screen-scale.inc
index e59a43c..e12c204 100644
--- a/bezel/Mega_Bezel/shaders/base/common/params-0-screen-scale.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/params-0-screen-scale.inc
@@ -23,14 +23,14 @@
*/
// Screen Scale Required Parameters
-#pragma parameter HSM_MEGA_BEZEL_TITLE "[ --- HSM MEGA BEZEL V1.4.2_2022-09-27 --- ]" 0 0 0.01 0.01
+#pragma parameter HSM_MEGA_BEZEL_TITLE "[ --- HSM MEGA BEZEL V1.4.3_2022-10-09 --- ]" 0 0 0.01 0.01
#pragma parameter HSM_RESOLUTION_DEBUG_ON " Show Resolution Info" 0 0 1 1
float HSM_RESOLUTION_DEBUG_ON = global.HSM_RESOLUTION_DEBUG_ON;
//---------------------------------------------------------------------------------------------------
-// CRT Layer
+// CRT BRIGHTNESS & GAMMA
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_CRT_TITLE "[ CRT BRIGHTNESS & GAMMA ]:" 0 0 0.01 0.01
@@ -145,7 +145,7 @@ float HSM_ASPECT_RATIO_EXPLICIT = global.HSM_ASPECT_RATIO_EXPLICIT;
//---------------------------------------------------------------------------------------------------
-// SCALING
+// CRT SCREEN SCALING GENERAL
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_SCALING_TITLE "[ CRT SCREEN SCALING GENERAL ]:" 0 0 0.01 0.01
@@ -242,7 +242,7 @@ float HSM_SNAP_TO_CLOSEST_INT_SCALE_TOLERANCE = HSM_USE_SNAP_TO_CLOSEST_INT_SCAL
//---------------------------------------------------------------------------------------------------
-// Position
+// POSITION OFFSET
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_SCREEN_POSITION_TITLE "[ POSITION OFFSET ]:" 0 0 0.01 0.01
@@ -257,7 +257,7 @@ float HSM_SCREEN_POSITION_Y = -1 * global.HSM_SCREEN_POSITION_Y / 1000;
// CROPPING
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_CROPPING_TITLE "[ CROPPING CORE IMAGE ]:" 0 0 0.01 0.01
-#pragma parameter HSM_CROP_FYI "!!! FYI !!! Negative Crop is currently Disabled :(" 2 0 2 1
+#pragma parameter HSM_CROP_FYI " FYI !!! Negative Crop is currently Disabled" 0 0 0.001 0.001
#pragma parameter HSM_CROP_MODE " Crop Mode - OFF | CROP BLACK ONLY | CROP ANY" 2 0 2 1
float HSM_CROP_MODE = global.HSM_CROP_MODE;
@@ -282,7 +282,7 @@ float HSM_CROP_BLACK_THRESHOLD = global.HSM_CROP_BLACK_THRESHOLD / 100;
//---------------------------------------------------------------------------------------------------
-// SCANLINES
+// SCANLINE DIRECTION
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_SCANLINE_TITLE "[ SCANLINE DIRECTION ]:" 0 0 0.01 0.01
@@ -295,12 +295,12 @@ float HSM_SCANLINE_DIRECTION = global.HSM_SCANLINE_DIRECTION;
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_DREZ_TITLE "[ DREZ DOWNSAMPLE FILTER - HYLLIAN - DREZ PRESETS ONLY ]:" 0 0 0.01 0.01
-#pragma parameter C_FILTER_MODE " DREZ Filter: B-SPLINE | BICUBIC | CATMULL-ROM | BICUBIC H" 0.0 0.0 3.0 1.0
+#pragma parameter C_FILTER_MODE " DREZ Filter: B-SPLINE | BICUBIC | CATMULL-ROM | BICUBIC H" 0 0 3 1
//---------------------------------------------------------------------------------------------------
// CORE RES SAMPLING
//---------------------------------------------------------------------------------------------------
-#pragma parameter HSM_SAMPLING_TITLE "[ CORE RES SAMPLING]:" 0 0 0.01 0.01
+#pragma parameter HSM_SAMPLING_TITLE "[ CORE RES SAMPLING ]:" 0 0 0.01 0.01
#pragma parameter HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR " Scanline Dir Multiplier (X-Prescale for H Scanline)" 100 25 1600 25
float HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = global.HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR / 100;
@@ -318,7 +318,7 @@ float HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = global.HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR
float HSM_CORE_RES_SAMPLING_SHIFT_OPPOSITE_DIR = global.HSM_CORE_RES_SAMPLING_SHIFT_OPPOSITE_DIR / 100;
//---------------------------------------------------------------------------------------------------
-// SHARPEN
+// FAST SHARPEN - GUEST.R
//---------------------------------------------------------------------------------------------------
#pragma parameter SHARPEN_TITLE "[ FAST SHARPEN - GUEST.R ]:" 0.00 0.0 2.00 0.05
#pragma parameter SHARPEN " Sharpen Strength" 0.00 0.0 4.00 0.10
@@ -429,7 +429,7 @@ float HSM_CRT_CURVATURE_SCALE = global.HSM_CRT_CURVATURE_SCALE / 100;
//---------------------------------------------------------------------------------------------------
-// CRT vs ORIGINAL A/B TESTING
+// A/B SPLITSCREEN COMPARE
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_CRT_AB_COMPARE_TITLE "[ A/B SPLITSCREEN COMPARE ]:" 0 0 0.01 0.01
@@ -450,7 +450,7 @@ float HSM_AB_COMPARE_FREEZE_GRAPHICS = global.HSM_AB_COMPARE_FREEZE_GRAPHICS;
//---------------------------------------------------------------------------------------------------
-// Screen Vignette
+// SCREEN VIGNETTE
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_SCREEN_VIGNETTE_TITLE "[ SCREEN VIGNETTE ]:" 0 0 0.01 0.01
@@ -471,7 +471,7 @@ float HSM_SCREEN_VIGNETTE_DUALSCREEN_VIS_MODE = global.HSM_SCREEN_VIGNETTE_DUALS
//---------------------------------------------------------------------------------------------------
-// Monochrome
+// MONOCHROME
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_MONOCHROME_TITLE "[ MONOCHROME ]:" 0 0 0.01 0.01
@@ -495,16 +495,13 @@ float HSM_MONOCHROME_DUALSCREEN_VIS_MODE = global.HSM_MONOCHROME_DUALSCREEN_VIS_
//---------------------------------------------------------------------------------------------------
-// TUBE DIFFUSE COLOR
+// TUBE DIFFUSE IMAGE
//---------------------------------------------------------------------------------------------------
#pragma parameter HSM_TUBE_DIFFUSE_IMAGE_TITLE "[ TUBE DIFFUSE IMAGE ]:" 0 0 0.01 0.01
#pragma parameter HSM_TUBE_DIFFUSE_MODE " Tube Diffuse Color - BLACK | IMAGE | TRANSPARENT" 0 0 2 1
float HSM_TUBE_DIFFUSE_MODE = global.HSM_TUBE_DIFFUSE_MODE;
-#pragma parameter HSM_TUBE_DIFFUSE_OPACITY " Opacity" 100 0 100 0.1
-float HSM_TUBE_DIFFUSE_OPACITY = global.HSM_TUBE_DIFFUSE_OPACITY / 100;
-
#pragma parameter HSM_TUBE_DIFFUSE_IMAGE_AMOUNT " Amount" 100 0 100 1
float HSM_TUBE_DIFFUSE_IMAGE_AMOUNT = global.HSM_TUBE_DIFFUSE_IMAGE_AMOUNT / 100;
@@ -585,9 +582,9 @@ float HSM_TUBE_SHADOW_CURVATURE_SCALE = global.HSM_TUBE_SHADOW_CURVATURE_SCALE /
//---------------------------------------------------------------------------------------------------
-// TUBE STATIC REFLECTION
+// TUBE GLASS STATIC REFLECTION IMAGE
//---------------------------------------------------------------------------------------------------
-#pragma parameter HSM_TUBE_STATIC_TITLE "[ TUBE STATIC REFLECTION IMAGE ]:" 0 0 0.01 0.01
+#pragma parameter HSM_TUBE_STATIC_TITLE "[ TUBE GLASS STATIC REFLECTION IMAGE ]:" 0 0 0.01 0.01
#pragma parameter HSM_TUBE_STATIC_REFLECTION_IMAGE_ON " Use Tube Static Reflection Image - OFF | ON" 0 0 1 1
float HSM_TUBE_STATIC_REFLECTION_IMAGE_ON = global.HSM_TUBE_STATIC_REFLECTION_IMAGE_ON;
@@ -639,12 +636,15 @@ float HSM_TUBE_STATIC_DITHER_AMOUNT = global.HSM_TUBE_STATIC_DITHER_AMOUNT;
// CRT Blend Over Diffuse
//---------------------------------------------------------------------------------------------------
-#pragma parameter HSM_CRT_BLEND_TITLE "[ CRT ON TUBE DIFFUSE BLENDING ]:" 0 0 0.01 0.01
+#pragma parameter HSM_CRT_BLEND_TITLE "[ CRT & TUBE BLENDING ]:" 0 0 0.01 0.01
-#pragma parameter HSM_CRT_BLEND_MODE " CRT On Tube Diffuse Blend Mode: OFF | ADD | MULTIPLY" 1 0 2 1
+#pragma parameter HSM_TUBE_OPACITY " Tube Opacity" 100 0 100 0.1
+float HSM_TUBE_OPACITY = global.HSM_TUBE_OPACITY / 100;
+
+#pragma parameter HSM_CRT_BLEND_MODE " CRT Blend Mode: OFF | ADD | MULTIPLY" 1 0 2 1
#define HSM_CRT_BLEND_MODE global.HSM_CRT_BLEND_MODE
-#pragma parameter HSM_CRT_BLEND_AMOUNT " CRT On Tube Diffuse Blend Amount" 100 0 100 1
+#pragma parameter HSM_CRT_BLEND_AMOUNT " CRT Blend Amount" 100 0 100 1
#define HSM_CRT_BLEND_AMOUNT global.HSM_CRT_BLEND_AMOUNT / 100
diff --git a/bezel/Mega_Bezel/shaders/base/common/params-4-image-layers.inc b/bezel/Mega_Bezel/shaders/base/common/params-4-image-layers.inc
index 9098b3c..ac34ed5 100644
--- a/bezel/Mega_Bezel/shaders/base/common/params-4-image-layers.inc
+++ b/bezel/Mega_Bezel/shaders/base/common/params-4-image-layers.inc
@@ -750,7 +750,7 @@ float HSM_TOP_MIRROR_WRAP = global.HSM_TOP_MIRROR_WRAP;
//---------------------------------------------------------------------------------------------------
// RENDER FOR SIMPLIFIED PRESETS
//---------------------------------------------------------------------------------------------------
-#pragma parameter HSM_RENDER_FOR_SIMPLIFIED_TITLE "[ RENDER FOR SIMPLIFIED PRESETS ]:" 1 0 1 1
+#pragma parameter HSM_RENDER_FOR_SIMPLIFIED_TITLE "[ MEGA BEZEL DEV RENDER FOR SIMPLIFIED PRESETS ]:" 1 0 1 1
#pragma parameter HSM_RENDER_SIMPLE_MODE " Mode: NORM | BLACK-SCREEN | BLACK-BG | PINK-MASK| BW-MASK" 0 0 4 1
float HSM_RENDER_SIMPLE_MODE = global.HSM_RENDER_SIMPLE_MODE;
diff --git a/bezel/Mega_Bezel/shaders/base/delinearize.slang b/bezel/Mega_Bezel/shaders/base/delinearize.slang
index 7e80bf7..301eb27 100644
--- a/bezel/Mega_Bezel/shaders/base/delinearize.slang
+++ b/bezel/Mega_Bezel/shaders/base/delinearize.slang
@@ -25,7 +25,7 @@
*/
#include "common/globals-and-screen-scale-params.inc"
-
+#include "common/common-functions.inc"
#pragma stage vertex
layout(location = 0) in vec4 Position;
layout(location = 1) in vec2 TexCoord;
diff --git a/bezel/Mega_Bezel/shaders/base/intro-potato.slang b/bezel/Mega_Bezel/shaders/base/intro-potato.slang
index 6a76633..91b25be 100644
--- a/bezel/Mega_Bezel/shaders/base/intro-potato.slang
+++ b/bezel/Mega_Bezel/shaders/base/intro-potato.slang
@@ -3,4 +3,6 @@
#define IS_POTATO_PRESET
#include "common/globals-and-screen-scale-params.inc"
+#include "common/helper-functions.inc"
+#include "common/base-functions.inc"
#include "intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/intro.inc b/bezel/Mega_Bezel/shaders/base/intro.inc
index ad9a917..394e109 100644
--- a/bezel/Mega_Bezel/shaders/base/intro.inc
+++ b/bezel/Mega_Bezel/shaders/base/intro.inc
@@ -24,8 +24,6 @@
// Import so all the mega bezel parameters are the first in the parameter list
-#include "text-resolution.inc"
-
#pragma stage vertex
layout(location = 0) in vec4 Position;
layout(location = 1) in vec2 TexCoord;
@@ -50,7 +48,6 @@ layout(set = 0, binding = 7) uniform sampler2D IntroImage;
#endif
layout(set = 0, binding = 8) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 9) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 10) uniform sampler2D TextPass;
@@ -93,7 +90,18 @@ vec4 GetColorWithIntro(vec4 in_color, vec2 in_coord, in sampler2D in_logo_image_
{
vec4 out_color = in_color;
- // in_coord.y = HSM_INTRO_LOGO_FLIP_VERTICAL > 0.5 ? 1 - in_coord.y : in_coord.y;
+ // If we are out of the region of time the intro plays just give back the same color
+ if (CURRENT_FRAME_FROM_CACHE_INFO > (HSM_INTRO_SOLID_COLOR_HOLD +
+ HSM_INTRO_SOLID_COLOR_FADE_OUT +
+ HSM_INTRO_LOGO_WAIT +
+ HSM_INTRO_LOGO_FADE_IN +
+ HSM_INTRO_LOGO_HOLD +
+ HSM_INTRO_LOGO_FADE_OUT +
+ HSM_INTRO_NOISE_HOLD +
+ HSM_INTRO_NOISE_FADE_OUT +
+ HSM_INTRO_SOLID_BLACK_HOLD +
+ HSM_INTRO_SOLID_BLACK_FADE_OUT) / HSM_INTRO_SPEED)
+ return out_color;
in_coord.y = HSM_FLIP_VIEWPORT_VERTICAL * HSM_FLIP_CORE_VERTICAL * in_coord.y;
in_coord.x = HSM_FLIP_VIEWPORT_HORIZONTAL * HSM_FLIP_CORE_HORIZONTAL * in_coord.x;
@@ -269,8 +277,7 @@ vec4 GetColorWithIntro(vec4 in_color, vec2 in_coord, in sampler2D in_logo_image_
void main()
{
- vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// Flip the coordinate vertically if desired
vec2 viewport_coord_adjusted = vTexCoord;
@@ -313,7 +320,22 @@ void main()
// FragColor *= 1 - 0.7 * overlay_color.a;
// FragColor += 1 * 0.7 * overlay_color;
- //////// Draw text to show out_colorolutions //////////
+ //////// Draw text to show resolutions //////////
if (HSM_RESOLUTION_DEBUG_ON == 1)
- FragColor = HSM_PreMultAlphaBlend(FragColor, texture(TextPass, vTexCoord));
+ {
+ vec2 ps = global.OutputSize.zw;
+ vec4 text_rgba = vec4(0);
+ text_rgba = texture(TextPass, vTexCoord);
+ text_rgba.rgb *= vec3(1, 1, 0);
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(1, 0)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(0, 1)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(1, 1)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(-1, 1)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(-1, 0)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(0, -1)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(-1, -1)).a;
+ text_rgba.a += texture(TextPass, vTexCoord + ps * vec2(1, -1)).a;
+ text_rgba = clamp(text_rgba, 0, 1);
+ FragColor = HSM_PreMultAlphaBlend(FragColor, text_rgba);
+ }
}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/intro.slang b/bezel/Mega_Bezel/shaders/base/intro.slang
index 5f9d3f2..939b899 100644
--- a/bezel/Mega_Bezel/shaders/base/intro.slang
+++ b/bezel/Mega_Bezel/shaders/base/intro.slang
@@ -1,4 +1,6 @@
#version 450
#include "common/globals-and-screen-scale-params.inc"
+#include "common/helper-functions.inc"
+#include "common/base-functions.inc"
#include "intro.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/linearize-crt.slang b/bezel/Mega_Bezel/shaders/base/linearize-crt.slang
index 7173c37..569b452 100644
--- a/bezel/Mega_Bezel/shaders/base/linearize-crt.slang
+++ b/bezel/Mega_Bezel/shaders/base/linearize-crt.slang
@@ -25,6 +25,7 @@
*/
#include "common/globals-and-screen-scale-params.inc"
+#include "common/helper-functions.inc"
layout(push_constant) uniform Push
{
diff --git a/bezel/Mega_Bezel/shaders/base/linearize.slang b/bezel/Mega_Bezel/shaders/base/linearize.slang
index d57ae30..f7cb7f5 100644
--- a/bezel/Mega_Bezel/shaders/base/linearize.slang
+++ b/bezel/Mega_Bezel/shaders/base/linearize.slang
@@ -25,6 +25,7 @@
*/
#include "common/globals-and-screen-scale-params.inc"
+#include "common/helper-functions.inc"
layout(push_constant) uniform Push
{
@@ -34,6 +35,11 @@ layout(push_constant) uniform Push
uint FrameCount;
} params;
+layout(std140, set = 0, binding = 0) uniform UBO
+{
+ mat4 MVP;
+} global;
+
#pragma stage vertex
layout(location = 0) in vec4 Position;
layout(location = 1) in vec2 TexCoord;
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep-glass.slang b/bezel/Mega_Bezel/shaders/base/post-crt-prep-glass.slang
index 18c5a85..598d1f5 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep-glass.slang
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep-glass.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-glass-params.inc"
+#include "common/common-functions.inc"
#include "post-crt-prep.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep-image-layers.slang b/bezel/Mega_Bezel/shaders/base/post-crt-prep-image-layers.slang
index 2fbf043..e6959db 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep-image-layers.slang
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep-image-layers.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "post-crt-prep.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep-no-reflect.slang b/bezel/Mega_Bezel/shaders/base/post-crt-prep-no-reflect.slang
index 91e0305..0a75f78 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep-no-reflect.slang
@@ -3,4 +3,5 @@
#define IS_NO_REFLECT_PRESET
#include "common/globals-and-image-layers-params.inc"
+#include "common/common-functions.inc"
#include "post-crt-prep.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep-potato.slang b/bezel/Mega_Bezel/shaders/base/post-crt-prep-potato.slang
index 05d6331..c67e3fd 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep-potato.slang
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep-potato.slang
@@ -25,7 +25,7 @@
*/
#include "common/globals-and-potato-params.inc"
-
+#include "common/common-functions.inc"
#pragma stage vertex
layout(location = 0) in vec4 Position;
@@ -52,7 +52,6 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 3) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 7) uniform sampler2D BackgroundImage;
layout(set = 0, binding = 8) uniform sampler2D BackgroundVertImage;
@@ -146,9 +145,9 @@ vec4 HSM_GetPostCrtPreppedColorPotato(vec4 in_color_with_gamma, vec2 VIEWPORT_CO
void main()
{
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
- if (SCREEN_COORD.x < -0.01 || SCREEN_COORD.x > 1.01 || SCREEN_COORD.y < -0.01 || SCREEN_COORD.y > 1.01)
+ if (HHLP_IsOutsideCoordSpace(SCREEN_COORD))
{
vec4 feedback_color_test = texture(PassFeedback, vec2(0,0));
if (HSM_CACHE_GRAPHICS_ON > 0.5 && feedback_color_test.a < 0 && !CACHE_INFO_CHANGED)
@@ -162,7 +161,4 @@ void main()
vec2 screen_curved_coord = HSM_GetCurvedCoord(SCREEN_COORD, HSM_CRT_CURVATURE_SCALE, SCREEN_ASPECT);
FragColor = HSM_GetPostCrtPreppedColorPotato(FragColor, vTexCoord, viewportCoordTransformed, screen_curved_coord, BackgroundImage, BackgroundVertImage);
-
- if (UNFLIPPED_VIEWPORT_COORD.x < (2 / global.OutputSize.x) && UNFLIPPED_VIEWPORT_COORD.y < (2 / global.OutputSize.y))
- FragColor = vec4(0.01, 0.01, 0.01, -1);
}
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep.inc b/bezel/Mega_Bezel/shaders/base/post-crt-prep.inc
index ea539d8..8860794 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep.inc
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep.inc
@@ -50,7 +50,6 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 3) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 4) uniform sampler2D TubeDiffuseImage;
layout(set = 0, binding = 5) uniform sampler2D TubeShadowImage;
@@ -118,16 +117,59 @@ vec4 HSM_ApplyScanlineMask(vec4 in_color, vec2 screen_scale, vec2 in_coord, vec2
return clamp(masked_color, 0, 1);
}
+vec4 HSM_GetTubeHighlight(vec2 tube_curved_coord, bool apply_to_mirror, in sampler2D TubeStaticReflectionImage)
+{
+ tube_curved_coord = HSM_GetViewportCoordWithFlip(tube_curved_coord);
+ vec4 out_color = vec4(0);
+
+ vec2 mirrored_tube_coord = tube_curved_coord;
+ if (apply_to_mirror)
+ mirrored_tube_coord = HSM_GetMirrorWrappedCoord(tube_curved_coord);
+
+ float bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS;
+ if(HSM_BZL_USE_INDEPENDENT_CURVATURE > 0)
+ bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * DEFAULT_SCREEN_CORNER_RADIUS;
+
+ vec2 tube_highlight_coord = (mirrored_tube_coord - 0.5) / vec2(HSM_TUBE_STATIC_SCALE * HSM_TUBE_STATIC_SCALE_X, HSM_TUBE_STATIC_SCALE) + 0.5;
+ tube_highlight_coord = (tube_highlight_coord - 0.5) / vec2(HSM_TUBE_STATIC_SCALE_X, 1) + 0.5;
+
+ tube_highlight_coord.x = (tube_highlight_coord.x + HSM_TUBE_STATIC_POS_X - 0.5) * HSM_FLIP_VIEWPORT_HORIZONTAL + 0.5;
+ tube_highlight_coord.y = (tube_highlight_coord.y + HSM_TUBE_STATIC_POS_Y - 0.5) * HSM_FLIP_VIEWPORT_VERTICAL + 0.5;
+
+ // Mask the very outer edge of the tube for a very small shadowing effect
+ float tube_highlight_mask = HSM_GetCornerMask((tube_curved_coord - 0.5) + 0.5 , TUBE_DIFFUSE_ASPECT, HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS, 0.9);
+
+ vec4 tube_highlight_image = vec4(0);
+
+ if (HSM_TUBE_STATIC_DITHER_SAMPLES > 0)
+ {
+ // Dithering for the glass reflection if needed to reduce banding
+ tube_highlight_image = HSM_GetStoichaicBlurredSample(TubeStaticReflectionImage, tube_highlight_coord, HSM_TUBE_STATIC_DITHER_SAMPLES, HSM_TUBE_STATIC_DITHER_DISTANCE, HSM_TUBE_STATIC_DITHER_AMOUNT);
+ }
+ else
+ {
+ tube_highlight_image = HSM_GetMipmappedTexSample(TubeStaticReflectionImage, tube_highlight_coord, TUBE_SCALE, 0);
+ }
+ tube_highlight_image = HSM_Linearize(tube_highlight_image, DEFAULT_SRGB_GAMMA) * tube_highlight_mask;
+
+ out_color = HSM_TUBE_STATIC_REFLECTION_IMAGE_OPACITY * tube_highlight_image * tube_highlight_image.a;
+ out_color.rgb *= HSM_GLOBAL_GRAPHICS_BRIGHTNESS;
+
+ return out_color;
+}
+
vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, vec2 screen_curved_coord, in sampler2D source_pass, bool source_is_linear, in sampler2D TubeDiffuseImage, in sampler2D TubeColoredGelImage, in sampler2D TubeStaticReflectionImage, in sampler2D BackgroundImage, in sampler2D BackgroundVertImage, in sampler2D NightLightingImage, in sampler2D NightLighting2Image)
{
if (HSM_MONOCHROME_MODE > 0.5 && HSM_GetUseOnCurrentScreenIndex(HSM_MONOCHROME_DUALSCREEN_VIS_MODE))
in_color_with_gamma = HSM_ApplyMonochrome(in_color_with_gamma);
- vec4 out_color = HSM_Linearize(in_color_with_gamma, DEFAULT_SRGB_GAMMA);
- out_color *= HSM_POST_CRT_BRIGHTNESS;
+ vec4 crt_color = HSM_Linearize(in_color_with_gamma, DEFAULT_SRGB_GAMMA);
+ crt_color *= HSM_POST_CRT_BRIGHTNESS;
vec2 mirrored_screen_coord = HSM_GetMirrorWrappedCoord(screen_curved_coord);
+ vec4 out_color = vec4(0);
+
// TODO we see artifacts of the reflection at the edge of the screen when there is extra tube thickness and the reflection is scaled
float screen_mask = HSM_GetCornerMask((screen_curved_coord - 0.5) * 0.999 + 0.5, SCREEN_ASPECT, HSM_GLOBAL_CORNER_RADIUS * HSM_SCREEN_CORNER_RADIUS_SCALE, 0.9);
@@ -140,9 +182,11 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
float vignette_factor_outside_screen = HSM_SCREEN_VIGNETTE_IN_REFLECTION * vignette_factor + (1 - HSM_SCREEN_VIGNETTE_IN_REFLECTION) * 1;
vignette_factor = screen_mask * vignette_factor + (1 - screen_mask) * vignette_factor_outside_screen;
- out_color *= vignette_factor;
+ crt_color *= vignette_factor;
}
+ // TODO Try to get rid of vignette lines at the edges outside of the screen
+
if (HSM_AB_COMPARE_SHOW_MODE == 1 && HSM_GetIsInABCompareArea(VIEWPORT_COORD))
{
vec2 ab_screen_coord = HSM_CRT_CURVATURE_SCALE * screen_curved_coord + (1 - HSM_CRT_CURVATURE_SCALE) * SCREEN_COORD;
@@ -154,21 +198,21 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
source_color = HSM_Delinearize(source_color, HSM_GAMMA_OUT_CRT);
source_color = HSM_Linearize(source_color, DEFAULT_SRGB_GAMMA);
- out_color = source_color;
+ crt_color = source_color;
}
float scan_axis_res = USE_VERTICAL_SCANLINES * CROPPED_ROTATED_SIZE_WITH_RES_MULT.x + (1 - USE_VERTICAL_SCANLINES) * CROPPED_ROTATED_SIZE_WITH_RES_MULT.y;
if (HSM_FAKE_SCANLINE_OPACITY > 0.001 && (HSM_FAKE_SCANLINE_MODE == 1 || (HSM_FAKE_SCANLINE_MODE == 2 && scan_axis_res > HSM_INTERLACE_TRIGGER_RES)))
{
- vec4 scanline_masked_color = HSM_ApplyScanlineMask(out_color, SCREEN_SCALE, SCREEN_COORD, screen_curved_coord, HSM_FAKE_SCANLINE_OPACITY);
+ vec4 scanline_masked_color = HSM_ApplyScanlineMask(crt_color, SCREEN_SCALE, SCREEN_COORD, screen_curved_coord, HSM_FAKE_SCANLINE_OPACITY);
// Darken the outside image a bit
- out_color = mix(out_color, out_color * 0.9, HSM_FAKE_SCANLINE_OPACITY);
+ crt_color = mix(crt_color, crt_color * 0.9, HSM_FAKE_SCANLINE_OPACITY);
// Show scanlines only in the tube area
float tube_highlight_mask = HSM_GetCornerMask((tube_curved_coord - 0.5) * 0.995 + 0.5 , TUBE_DIFFUSE_ASPECT, HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS, 0.05);
- out_color = mix(out_color, scanline_masked_color, tube_highlight_mask);
+ crt_color = mix(crt_color, scanline_masked_color, tube_highlight_mask);
}
float bezel_corner_radius = HSM_BZL_INNER_CORNER_RADIUS_SCALE * HSM_GLOBAL_CORNER_RADIUS;
@@ -182,10 +226,9 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
vec2 tube_diffuse_curved_coord = HSM_GetTubeCurvedCoord(TUBE_DIFFUSE_COORD, HSM_TUBE_BLACK_EDGE_CURVATURE_SCALE, TUBE_DIFFUSE_SCALE, TUBE_SCALE, TUBE_DIFFUSE_ASPECT, 0);
float tube_diffuse_mask = HSM_GetCornerMask(tube_diffuse_curved_coord, TUBE_DIFFUSE_ASPECT, black_edge_corner_radius, 0.99);
- // float black_edge_mask_invert = 1 - (tube_mask - tube_diffuse_mask);
float black_edge_mask_invert = 1 - (tube_mask - tube_diffuse_mask);
- out_color *= screen_to_tube_mask_invert;
+ crt_color.rgb *= screen_to_tube_mask_invert;
// AMBIENT LIGHTING IMAGES
vec4 ambient_lighting_image = vec4(1);
@@ -226,7 +269,7 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
// If the crt blend mode is multiply then use the diffuse image
float tube_diffuse_mode = HSM_CRT_BLEND_MODE == 2 ? 1 : HSM_TUBE_DIFFUSE_MODE;
- vec4 tube_diffuse = vec4(0, 0, 0, 1);
+ vec4 tube_diffuse = vec4(0, 0, 0, tube_mask);
float adjusted_tube_diffuse_amount = HSM_TUBE_DIFFUSE_MODE == 0 ? 0 : HSM_TUBE_DIFFUSE_IMAGE_AMOUNT;
if (tube_diffuse_mode == 2)
@@ -256,13 +299,15 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
}
// If CRT Blend Mode is Multiply (2) then the tube must be fully opaque
- tube_diffuse *= HSM_GetTubeDiffuseOpacity();
tube_diffuse.rgb = HSM_ApplyAmbientImage(tube_diffuse.rgb, ambient_lighting_image.rgb, HSM_TUBE_DIFFUSE_IMAGE_AMBIENT_LIGHTING);
tube_diffuse.rgb = HSM_ApplyAmbientImage(tube_diffuse.rgb, ambient2_lighting_image.rgb, HSM_TUBE_DIFFUSE_IMAGE_AMBIENT2_LIGHTING);
-
- // TODO see what to do when its transparent
}
- out_color.a = in_color_with_gamma.a;
+
+ tube_diffuse *= HSM_GetTubeOpacity();
+ tube_diffuse.a *= tube_mask;
+
+ out_color = tube_diffuse;
+ out_color.rgb += crt_color.rgb;
// Don't apply the CRT images
if (HSM_CRT_BLEND_MODE == 0)
@@ -270,7 +315,8 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
// Apply the CRT image additively to the tube diffuse color
if (HSM_CRT_BLEND_MODE == 1)
- out_color = HSM_BlendModeLayerMix(tube_diffuse, out_color, BLEND_MODE_ADD, HSM_CRT_BLEND_AMOUNT);
+ // out_color = HSM_BlendModeLayerMix(tube_diffuse, out_color, BLEND_MODE_ADD, HSM_CRT_BLEND_AMOUNT);
+ out_color.rgb += tube_diffuse.rgb;
// Apply the CRT image with multiply blending
if (HSM_CRT_BLEND_MODE == 2)
@@ -324,11 +370,12 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
#ifndef IS_NO_REFLECT_PRESET
- out_color *= black_edge_mask_invert;
+ out_color.rgb *= black_edge_mask_invert;
#else
- out_color *= tube_diffuse_mask;
+ out_color.rgb *= tube_diffuse_mask;
+ out_color *= tube_mask;
#endif
@@ -355,7 +402,6 @@ vec4 HSM_GetPostCrtPreppedColor(vec4 in_color_with_gamma, vec2 VIEWPORT_COORD, v
return out_color;
}
-
void main()
{
if (HSM_AB_COMPARE_FREEZE_CRT_TUBE == 1 && HSM_GetIsInABCompareArea(vTexCoord))
@@ -367,8 +413,12 @@ void main()
VIEWPORT_UNSCALED_COORD = HSM_GetViewportCoordWithFlip(vTexCoord);
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
+ vec2 cache_bounds_coord = TUBE_COORD;
+
+// If it's the potato preset render the whole frame
+#ifndef IS_NO_REFLECT_PRESET
// Have to get the scale of the coordinates so we can figure out the size of the onscreen rectangle of the area
vec2 bezel_outside_flat_coord;
vec2 frame_outside_flat_coord;
@@ -378,26 +428,25 @@ void main()
SCREEN_ASPECT,
bezel_outside_flat_coord,
frame_outside_flat_coord);
- vec2 cache_bounds_coord = (frame_outside_flat_coord - 0.5) * 0.9 + 0.5;
+ cache_bounds_coord = (frame_outside_flat_coord - 0.5) * 0.9 + 0.5;
+#endif
if (HHLP_IsOutsideCoordSpace(cache_bounds_coord))
{
FragColor = vec4(0);
return;
}
- else
- {
- // Have to get the scale of the coordinates so we can figure out the size of the onscreen rectangle of the area
- HSM_GetBezelCoords(TUBE_DIFFUSE_COORD,
- TUBE_DIFFUSE_SCALE,
- TUBE_SCALE,
- SCREEN_ASPECT,
- false,
- BEZEL_OUTSIDE_SCALE,
- BEZEL_OUTSIDE_COORD,
- BEZEL_OUTSIDE_CURVED_COORD,
- FRAME_OUTSIDE_CURVED_COORD);
- }
+
+ // Have to get the scale of the coordinates so we can figure out the size of the onscreen rectangle of the area
+ HSM_GetBezelCoords(TUBE_DIFFUSE_COORD,
+ TUBE_DIFFUSE_SCALE,
+ TUBE_SCALE,
+ SCREEN_ASPECT,
+ false,
+ BEZEL_OUTSIDE_SCALE,
+ BEZEL_OUTSIDE_COORD,
+ BEZEL_OUTSIDE_CURVED_COORD,
+ FRAME_OUTSIDE_CURVED_COORD);
vec2 screen_curved_coord = HSM_GetCurvedCoord(SCREEN_COORD, 1, SCREEN_ASPECT);
diff --git a/bezel/Mega_Bezel/shaders/base/post-crt-prep.slang b/bezel/Mega_Bezel/shaders/base/post-crt-prep.slang
index beb73b4..5156f86 100644
--- a/bezel/Mega_Bezel/shaders/base/post-crt-prep.slang
+++ b/bezel/Mega_Bezel/shaders/base/post-crt-prep.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-bezel-params.inc"
+#include "common/common-functions.inc"
#include "post-crt-prep.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/reflection-glass.slang b/bezel/Mega_Bezel/shaders/base/reflection-glass.slang
index ca9b10f..a08f210 100644
--- a/bezel/Mega_Bezel/shaders/base/reflection-glass.slang
+++ b/bezel/Mega_Bezel/shaders/base/reflection-glass.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-glass-params.inc"
+#include "common/common-functions.inc"
#include "reflection.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/reflection.inc b/bezel/Mega_Bezel/shaders/base/reflection.inc
index c0a7c9b..1314dd1 100644
--- a/bezel/Mega_Bezel/shaders/base/reflection.inc
+++ b/bezel/Mega_Bezel/shaders/base/reflection.inc
@@ -77,7 +77,6 @@ layout(location = 0) out vec4 FragColor;
// Pass Framebuffer Textures
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D NightLightingImage;
layout(set = 0, binding = 4) uniform sampler2D NightLighting2Image;
@@ -108,7 +107,7 @@ void main()
VIEWPORT_UNSCALED_COORD = HSM_GetViewportCoordWithFlip(vTexCoord);
VIEWPORT_COORD = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// Have to get the scale of the coordinates so we can figure out the size of the onscreen rectangle of the area
@@ -122,7 +121,7 @@ void main()
BEZEL_OUTSIDE_CURVED_COORD,
FRAME_OUTSIDE_CURVED_COORD);
- if (BEZEL_OUTSIDE_COORD.x < -0.01 || BEZEL_OUTSIDE_COORD.x > 1.01 || BEZEL_OUTSIDE_COORD.y < -0.01 || BEZEL_OUTSIDE_COORD.y > 1.01)
+ if (HHLP_IsOutsideCoordSpace(BEZEL_OUTSIDE_COORD))
{
FragColor = vec4(0);
return;
@@ -250,7 +249,6 @@ void main()
float tube_edge_shadow_mult = HSM_BZL_INNER_EDGE_SHADOW * (tube_shadow_mask) + (1 - HSM_BZL_INNER_EDGE_SHADOW);
crt_linear.rgb *= tube_edge_shadow_mult * (1 - outside_tube_mask_wider);
- crt_linear.a = TUBE_MASK;
float edge_highlight_mask = 0;
@@ -417,15 +415,8 @@ void main()
}
crt_linear.rgb *= TUBE_MASK;
-
- // Put the frame and bezel over top a black tube
- // It must be a little wider than the inside of the bezel so we don't see a gap
- crt_linear = HSM_PreMultAlphaBlend(vec4(0, 0, 0, 1 - outside_tube_mask_wider), crt_linear);
-
crt_linear = clamp(crt_linear, 0, 1);
- FragColor = vec4(0);
-
#ifdef IS_GLASS_PRESET
vec4 bg_image = HSM_GetMipmappedTexSample(BackgroundImage, VIEWPORT_COORD, vec2(1), 0);
@@ -441,12 +432,9 @@ void main()
return;
#endif
-vec4 crt_and_reflect_layer = vec4(0);
-crt_and_reflect_layer = HSM_BlendModeLayerMix(crt_and_reflect_layer, crt_linear, BLEND_MODE_NORMAL, 1);
-crt_and_reflect_layer.rgb += reflection_color.rgb;
-crt_and_reflect_layer *= 1 - OUTSIDE_BEZEL_MASK;
-
-FragColor = crt_and_reflect_layer;
+FragColor = crt_linear;
+FragColor.rgb += reflection_color.rgb;
+FragColor *= 1 - OUTSIDE_BEZEL_MASK;
return;
}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/reflection.slang b/bezel/Mega_Bezel/shaders/base/reflection.slang
index da9740a..fb9a8ab 100644
--- a/bezel/Mega_Bezel/shaders/base/reflection.slang
+++ b/bezel/Mega_Bezel/shaders/base/reflection.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-reflection-params.inc"
+#include "common/common-functions.inc"
#include "reflection.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-adv-glass.slang b/bezel/Mega_Bezel/shaders/base/text-adv-glass.slang
index 578e3a2..0eef4be 100644
--- a/bezel/Mega_Bezel/shaders/base/text-adv-glass.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-adv-glass.slang
@@ -3,4 +3,5 @@
#define IS_STD_PRESET
#include "common/globals-and-glass-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-adv-no-reflect.slang b/bezel/Mega_Bezel/shaders/base/text-adv-no-reflect.slang
index 9e7ac44..0eb0287 100644
--- a/bezel/Mega_Bezel/shaders/base/text-adv-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-adv-no-reflect.slang
@@ -4,4 +4,5 @@
#define IS_NO_REFLECT_PRESET
#include "common/globals-and-image-layers-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-adv.slang b/bezel/Mega_Bezel/shaders/base/text-adv.slang
index 8d4c7a0..dedfa01 100644
--- a/bezel/Mega_Bezel/shaders/base/text-adv.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-adv.slang
@@ -3,4 +3,5 @@
#define IS_ADV_PRESET
#include "common/globals-and-all-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-lib.inc b/bezel/Mega_Bezel/shaders/base/text-lib.inc
deleted file mode 100644
index 1b759e2..0000000
--- a/bezel/Mega_Bezel/shaders/base/text-lib.inc
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- Mega Bezel - Creates a graphic treatment for the game play area to give a retro feel
- Copyright (C) 2019-2022 HyperspaceMadness - HyperspaceMadness@outlook.com
-
- Text code is from the Shadertoy "96-bit 8x12" Font by Flyguy
-
- See more at the libretro forum
- https://forums.libretro.com/t/hsm-mega-bezel-reflection-shader-feedback-and-updates
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-*/
-
-#define DOWN_SCALE 2
-
-#define MAX_INT_DIGITS 4
-
-#define CHAR_SIZE vec2(8, 12)
-#define CHAR_SPACING vec2(8, 12)
-
-#define STRWIDTH(c) (c * CHAR_SPACING.x)
-#define STRHEIGHT(c) (c * CHAR_SPACING.y)
-
-#define NORMAL 0
-#define INVERT 1
-#define UNDERLINE 2
-
-int TEXT_MODE = NORMAL;
-
-/*
---------
--###----
-##-##---
-##-##---
--###----
-#####-#-
-##-####-
-##--##--
-##-###--
--###-##-
---------
---------
-
-00000000
-01110000
-11011000
-11011000
-01110000
-11111010
-11011110
-11001100
-11011100
-01110110
-00000000
-00000000
-
-//Broken up into 4 8x3 (24 bit) chunks for each component of the vec4.
-//Hexadecimal is being used to reduce clutter in the code but decimal still works.
-
-00000000
-01110000 -> 00000000 01110000 11011000 -> 0x0070D8
-11011000
-
-11011000
-01110000 -> 11011000 01110000 11111010 -> 0xD870FA
-11111010
-
-11011110
-11001100 -> 11011110 11001100 11011100 -> 0xDECCDC
-11011100
-
-01110110
-00000000 -> 01110110 00000000 00000000 -> 0x760000
-00000000
-
-vec4(0x0070D8,0xD870FA,0xDECCDC,0x760000)
-*/
-
-//Automatically generated from the 8x12 font sheet here:
-//http://www.massmind.org/techref/datafile/charset/extractor/charset_extractor.htm
-
-vec4 ch_spc = vec4(0x000000,0x000000,0x000000,0x000000);
-vec4 ch_exc = vec4(0x003078,0x787830,0x300030,0x300000);
-vec4 ch_quo = vec4(0x006666,0x662400,0x000000,0x000000);
-vec4 ch_hsh = vec4(0x006C6C,0xFE6C6C,0x6CFE6C,0x6C0000);
-vec4 ch_dol = vec4(0x30307C,0xC0C078,0x0C0CF8,0x303000);
-vec4 ch_pct = vec4(0x000000,0xC4CC18,0x3060CC,0x8C0000);
-vec4 ch_amp = vec4(0x0070D8,0xD870FA,0xDECCDC,0x760000);
-vec4 ch_apo = vec4(0x003030,0x306000,0x000000,0x000000);
-vec4 ch_lbr = vec4(0x000C18,0x306060,0x603018,0x0C0000);
-vec4 ch_rbr = vec4(0x006030,0x180C0C,0x0C1830,0x600000);
-vec4 ch_ast = vec4(0x000000,0x663CFF,0x3C6600,0x000000);
-vec4 ch_crs = vec4(0x000000,0x18187E,0x181800,0x000000);
-vec4 ch_com = vec4(0x000000,0x000000,0x000038,0x386000);
-vec4 ch_dsh = vec4(0x000000,0x0000FE,0x000000,0x000000);
-vec4 ch_per = vec4(0x000000,0x000000,0x000038,0x380000);
-vec4 ch_lsl = vec4(0x000002,0x060C18,0x3060C0,0x800000);
-vec4 ch_0 = vec4(0x007CC6,0xD6D6D6,0xD6D6C6,0x7C0000);
-vec4 ch_1 = vec4(0x001030,0xF03030,0x303030,0xFC0000);
-vec4 ch_2 = vec4(0x0078CC,0xCC0C18,0x3060CC,0xFC0000);
-vec4 ch_3 = vec4(0x0078CC,0x0C0C38,0x0C0CCC,0x780000);
-vec4 ch_4 = vec4(0x000C1C,0x3C6CCC,0xFE0C0C,0x1E0000);
-vec4 ch_5 = vec4(0x00FCC0,0xC0C0F8,0x0C0CCC,0x780000);
-vec4 ch_6 = vec4(0x003860,0xC0C0F8,0xCCCCCC,0x780000);
-vec4 ch_7 = vec4(0x00FEC6,0xC6060C,0x183030,0x300000);
-vec4 ch_8 = vec4(0x0078CC,0xCCEC78,0xDCCCCC,0x780000);
-vec4 ch_9 = vec4(0x0078CC,0xCCCC7C,0x181830,0x700000);
-vec4 ch_col = vec4(0x000000,0x383800,0x003838,0x000000);
-vec4 ch_scl = vec4(0x000000,0x383800,0x003838,0x183000);
-vec4 ch_les = vec4(0x000C18,0x3060C0,0x603018,0x0C0000);
-vec4 ch_equ = vec4(0x000000,0x007E00,0x7E0000,0x000000);
-vec4 ch_grt = vec4(0x006030,0x180C06,0x0C1830,0x600000);
-vec4 ch_que = vec4(0x0078CC,0x0C1830,0x300030,0x300000);
-vec4 ch_ats = vec4(0x007CC6,0xC6DEDE,0xDEC0C0,0x7C0000);
-vec4 ch_A = vec4(0x003078,0xCCCCCC,0xFCCCCC,0xCC0000);
-vec4 ch_B = vec4(0x00FC66,0x66667C,0x666666,0xFC0000);
-vec4 ch_C = vec4(0x003C66,0xC6C0C0,0xC0C666,0x3C0000);
-vec4 ch_D = vec4(0x00F86C,0x666666,0x66666C,0xF80000);
-vec4 ch_E = vec4(0x00FE62,0x60647C,0x646062,0xFE0000);
-vec4 ch_F = vec4(0x00FE66,0x62647C,0x646060,0xF00000);
-vec4 ch_G = vec4(0x003C66,0xC6C0C0,0xCEC666,0x3E0000);
-vec4 ch_H = vec4(0x00CCCC,0xCCCCFC,0xCCCCCC,0xCC0000);
-vec4 ch_I = vec4(0x007830,0x303030,0x303030,0x780000);
-vec4 ch_J = vec4(0x001E0C,0x0C0C0C,0xCCCCCC,0x780000);
-vec4 ch_K = vec4(0x00E666,0x6C6C78,0x6C6C66,0xE60000);
-vec4 ch_L = vec4(0x00F060,0x606060,0x626666,0xFE0000);
-vec4 ch_M = vec4(0x00C6EE,0xFEFED6,0xC6C6C6,0xC60000);
-vec4 ch_N = vec4(0x00C6C6,0xE6F6FE,0xDECEC6,0xC60000);
-vec4 ch_O = vec4(0x00386C,0xC6C6C6,0xC6C66C,0x380000);
-vec4 ch_P = vec4(0x00FC66,0x66667C,0x606060,0xF00000);
-vec4 ch_Q = vec4(0x00386C,0xC6C6C6,0xCEDE7C,0x0C1E00);
-vec4 ch_R = vec4(0x00FC66,0x66667C,0x6C6666,0xE60000);
-vec4 ch_S = vec4(0x0078CC,0xCCC070,0x18CCCC,0x780000);
-vec4 ch_T = vec4(0x00FCB4,0x303030,0x303030,0x780000);
-vec4 ch_U = vec4(0x00CCCC,0xCCCCCC,0xCCCCCC,0x780000);
-vec4 ch_V = vec4(0x00CCCC,0xCCCCCC,0xCCCC78,0x300000);
-vec4 ch_W = vec4(0x00C6C6,0xC6C6D6,0xD66C6C,0x6C0000);
-vec4 ch_X = vec4(0x00CCCC,0xCC7830,0x78CCCC,0xCC0000);
-vec4 ch_Y = vec4(0x00CCCC,0xCCCC78,0x303030,0x780000);
-vec4 ch_Z = vec4(0x00FECE,0x981830,0x6062C6,0xFE0000);
-vec4 ch_lsb = vec4(0x003C30,0x303030,0x303030,0x3C0000);
-vec4 ch_rsl = vec4(0x000080,0xC06030,0x180C06,0x020000);
-vec4 ch_rsb = vec4(0x003C0C,0x0C0C0C,0x0C0C0C,0x3C0000);
-vec4 ch_pow = vec4(0x10386C,0xC60000,0x000000,0x000000);
-vec4 ch_usc = vec4(0x000000,0x000000,0x000000,0x00FF00);
-vec4 ch_a = vec4(0x000000,0x00780C,0x7CCCCC,0x760000);
-vec4 ch_b = vec4(0x00E060,0x607C66,0x666666,0xDC0000);
-vec4 ch_c = vec4(0x000000,0x0078CC,0xC0C0CC,0x780000);
-vec4 ch_d = vec4(0x001C0C,0x0C7CCC,0xCCCCCC,0x760000);
-vec4 ch_e = vec4(0x000000,0x0078CC,0xFCC0CC,0x780000);
-vec4 ch_f = vec4(0x00386C,0x6060F8,0x606060,0xF00000);
-vec4 ch_g = vec4(0x000000,0x0076CC,0xCCCC7C,0x0CCC78);
-vec4 ch_h = vec4(0x00E060,0x606C76,0x666666,0xE60000);
-vec4 ch_i = vec4(0x001818,0x007818,0x181818,0x7E0000);
-vec4 ch_j = vec4(0x000C0C,0x003C0C,0x0C0C0C,0xCCCC78);
-vec4 ch_k = vec4(0x00E060,0x60666C,0x786C66,0xE60000);
-vec4 ch_l = vec4(0x007818,0x181818,0x181818,0x7E0000);
-vec4 ch_m = vec4(0x000000,0x00FCD6,0xD6D6D6,0xC60000);
-vec4 ch_n = vec4(0x000000,0x00F8CC,0xCCCCCC,0xCC0000);
-vec4 ch_o = vec4(0x000000,0x0078CC,0xCCCCCC,0x780000);
-vec4 ch_p = vec4(0x000000,0x00DC66,0x666666,0x7C60F0);
-vec4 ch_q = vec4(0x000000,0x0076CC,0xCCCCCC,0x7C0C1E);
-vec4 ch_r = vec4(0x000000,0x00EC6E,0x766060,0xF00000);
-vec4 ch_s = vec4(0x000000,0x0078CC,0x6018CC,0x780000);
-vec4 ch_t = vec4(0x000020,0x60FC60,0x60606C,0x380000);
-vec4 ch_u = vec4(0x000000,0x00CCCC,0xCCCCCC,0x760000);
-vec4 ch_v = vec4(0x000000,0x00CCCC,0xCCCC78,0x300000);
-vec4 ch_w = vec4(0x000000,0x00C6C6,0xD6D66C,0x6C0000);
-vec4 ch_x = vec4(0x000000,0x00C66C,0x38386C,0xC60000);
-vec4 ch_y = vec4(0x000000,0x006666,0x66663C,0x0C18F0);
-vec4 ch_z = vec4(0x000000,0x00FC8C,0x1860C4,0xFC0000);
-vec4 ch_lpa = vec4(0x001C30,0x3060C0,0x603030,0x1C0000);
-vec4 ch_bar = vec4(0x001818,0x181800,0x181818,0x180000);
-vec4 ch_rpa = vec4(0x00E030,0x30180C,0x183030,0xE00000);
-vec4 ch_tid = vec4(0x0073DA,0xCE0000,0x000000,0x000000);
-vec4 ch_lar = vec4(0x000000,0x10386C,0xC6C6FE,0x000000);
-
-vec2 textCanvasResolution = vec2(0);
-vec2 printPos = vec2(0);
-
-float epsilon = 0.001;
-
-//Extracts bit b from the given number.
-//Shifts bits right (num / 2^bit) then ANDs the result with 1 (mod(result,2.0)).
-float extract_bit(float n, float b)
-{
- b = clamp(b,-1.0,24.0);
- return floor(mod(floor(n / pow(2.0,floor(b))),2.0));
-}
-
-//Returns the pixel at uv in the given bit-packed sprite.
-float sprite(vec4 spr, vec2 size, vec2 uv)
-{
- uv = floor(uv);
-
- //Calculate the bit to extract (x + y * width) (flipped on x-axis)
- float bit = (size.x-uv.x-1.0) + uv.y * size.x;
-
- //Clipping bound to remove garbage outside the sprite's boundaries.
- bool bounds = all(greaterThanEqual(uv,vec2(0))) && all(lessThan(uv,size));
-
- float pixels = 0.0;
- pixels += extract_bit(spr.x, bit - 72.0);
- pixels += extract_bit(spr.y, bit - 48.0);
- pixels += extract_bit(spr.z, bit - 24.0);
- pixels += extract_bit(spr.w, bit - 00.0);
-
- return bounds ? pixels : 0.0;
-}
-
-//Prints a character and moves the print position forward by 1 character width.
-float GetChar(vec4 ch, vec2 uv)
-{
- if( TEXT_MODE == INVERT )
- {
- //Inverts all of the bits in the character.
- ch = pow(2.0,24.0)-1.0-ch;
- }
- if( TEXT_MODE == UNDERLINE )
- {
- //Makes the bottom 8 bits all 1.
- //Shifts the bottom chunk right 8 bits to drop the lowest 8 bits,
- //then shifts it left 8 bits and adds 255 (binary 11111111).
- ch.w = floor(ch.w/256.0)*256.0 + 255.0;
- }
-
- float px = sprite(ch, CHAR_SIZE, uv - printPos);
- printPos.x += CHAR_SPACING.x;
- return px;
-}
-
-
-//Returns the digit sprite for the given number.
-vec4 get_digit(float d)
-{
- d = floor(d);
-
- if(d == 0.0) return ch_0;
- if(d == 1.0) return ch_1;
- if(d == 2.0) return ch_2;
- if(d == 3.0) return ch_3;
- if(d == 4.0) return ch_4;
- if(d == 5.0) return ch_5;
- if(d == 6.0) return ch_6;
- if(d == 7.0) return ch_7;
- if(d == 8.0) return ch_8;
- if(d == 9.0) return ch_9;
- return vec4(0.0);
-}
-
-//Prints out the given number starting at pos.
-float print_number(float number, vec2 uv, float zeros)
-{
- float result = 0.0;
-
- for(int i = 3;i >= -zeros;i--)
- {
- float digit = mod( number / pow(10.0, float(i)) , 10.0);
-
- if (i > -1 || fract(number) > epsilon)
- {
- if(i == -1 && fract(number) > epsilon) //Add a decimal point.
- {
- result += GetChar(ch_per, uv);
- }
-
- if(abs(number) > pow(10.0, float(i)) || i == 0) //Clip off leading zeros.
- {
- result += GetChar(get_digit(digit), uv);
- }
- }
- }
- return result;
-}
-
-float print_integer(float number, int zeros, vec2 uv)
-{
- float result = 0.0;
-
- for(int i = MAX_INT_DIGITS;i >= 0;i--)
- {
- float digit = mod( number / pow(10.0, float(i)) , 10.0);
-
- if(abs(number) > pow(10.0, float(i)) || zeros > i || i == 0) //Clip off leading zeros.
- {
- result += GetChar(get_digit(digit), uv);
- }
- }
- return result;
-}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-potato.slang b/bezel/Mega_Bezel/shaders/base/text-potato.slang
index 94d8efe..dad5810 100644
--- a/bezel/Mega_Bezel/shaders/base/text-potato.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "common/globals-and-potato-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-resolution.inc b/bezel/Mega_Bezel/shaders/base/text-resolution.inc
deleted file mode 100644
index 7947a83..0000000
--- a/bezel/Mega_Bezel/shaders/base/text-resolution.inc
+++ /dev/null
@@ -1,468 +0,0 @@
-/*
- Text code is from the Shadertoy "96-bit 8x12" Font by Flyguy
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-*/
-
-#include "text-lib.inc"
-
-float DrawResolutions(vec2 uv, vec2 viewport_size, vec2 screen_size, vec2 derezed_size, vec2 negative_crop_added_size, vec2 cropped_original_size, vec2 sampling_res, vec2 int_mult)
-{
- float col = 0.0;
-
- float current_line_index = 0;
- float margin = STRHEIGHT(1);
-
- //Resolution Text
- printPos = vec2(margin, 0);
-
- TEXT_MODE = NORMAL;
-
- // Line 14 Viewport Resolution ----------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- TEXT_MODE = NORMAL;
-
- col += GetChar(ch_V, uv);
- col += GetChar(ch_i, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_w, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(viewport_size.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(viewport_size.y,0, uv);
-
-
- // Line 13 Screen Resolution ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_S, uv);
- col += GetChar(ch_c, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(screen_size.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(screen_size.y,0, uv);
-
-
- // Line 12 Final Aspect Ratio ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_F, uv);
- col += GetChar(ch_i, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_a, uv);
- col += GetChar(ch_l, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_s, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_c, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_number(screen_size.x/screen_size.y > 1 ? screen_size.x/screen_size.y : screen_size.y/screen_size.x, uv, 2);
-
-
- // Line 11 Non-Int Scale Percent ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_N, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_I, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_S, uv);
- col += GetChar(ch_c, uv);
- col += GetChar(ch_l, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_pct, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_number(screen_size.y / viewport_size.y * 100, uv, 3);
-
-
- // Line 10 Int Scale Vertical ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_I, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_S, uv);
- col += GetChar(ch_c, uv);
- col += GetChar(ch_l, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_V, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- if (fract(int_mult.y) < 0.01 || fract(int_mult.y) > 0.99)
- col += print_number(int_mult.y, uv, 0);
- else
- col += print_number(int_mult.y, uv, 3);
-
-
- // Line 09 Int Scale Horizontal ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_I, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_t, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_S, uv);
- col += GetChar(ch_c, uv);
- col += GetChar(ch_l, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_H, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_z, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- if (fract(int_mult.x) < 0.01 || fract(int_mult.x) > 0.99)
- col += print_number(int_mult.x, uv, 0);
- else
- col += print_number(int_mult.x, uv, 3);
-
-
- // Line 08 Sampling Resolution ----------------------------------------------------------
- if (cropped_original_size.x != sampling_res.x || cropped_original_size.y != sampling_res.y)
- {
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_S, uv);
- col += GetChar(ch_a, uv);
- col += GetChar(ch_m, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_l, uv);
- col += GetChar(ch_i, uv);
- col += GetChar(ch_n, uv);
- col += GetChar(ch_g, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_R, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_s, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(sampling_res.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(sampling_res.y,0, uv);
- }
-
-
- // Line 07 CROPPED Resolution ----------------------------------------------------------
- if (cropped_original_size.x != ROTATED_CORE_PREPPED_SIZE.x || cropped_original_size.y != ROTATED_CORE_PREPPED_SIZE.y)
- {
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_C, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_d, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(cropped_original_size.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(cropped_original_size.y,0, uv);
- }
-
-
- // Line 06 Negative Crop Resolution ----------------------------------------------------------
- if (derezed_size.x != ROTATED_CORE_PREPPED_SIZE.x || derezed_size.y != ROTATED_CORE_PREPPED_SIZE.y)
- {
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_N, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_g, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_C, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_p, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_d, uv);
- col += GetChar(ch_d, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(ROTATED_CORE_PREPPED_SIZE.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(ROTATED_CORE_PREPPED_SIZE.y,0, uv);
- }
-
-
- // Line 05 DEREZ Resolution ----------------------------------------------------------
- if (derezed_size.x != ROTATED_CORE_ORIGINAL_SIZE.x || derezed_size.y != ROTATED_CORE_ORIGINAL_SIZE.y)
- {
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_D, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_z, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_d, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(derezed_size.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(derezed_size.y,0, uv);
- }
-
-
- // Line 04 CORE Resolution ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_C, uv);
- col += GetChar(ch_o, uv);
- col += GetChar(ch_r, uv);
- col += GetChar(ch_e, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_dsh, uv);
-
- col += GetChar(ch_spc, uv);
- col += print_integer(ROTATED_CORE_ORIGINAL_SIZE.x,0, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_x, uv);
- col += GetChar(ch_spc, uv);
- col += print_integer(ROTATED_CORE_ORIGINAL_SIZE.y,0, uv);
-
-
- // Line 03 Preset Type ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(2);
-
-#ifdef IS_ADV_PRESET
- col += GetChar(ch_A, uv);
- col += GetChar(ch_D, uv);
- col += GetChar(ch_V, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_N, uv);
- col += GetChar(ch_C, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_D, uv);
-#endif
-
-#ifdef IS_STD_PRESET
- col += GetChar(ch_S, uv);
- col += GetChar(ch_T, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_N, uv);
- col += GetChar(ch_D, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_R, uv);
- col += GetChar(ch_D, uv);
-#endif
-
-#ifdef IS_GLASS_PRESET
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_G, uv);
- col += GetChar(ch_L, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_S, uv);
- col += GetChar(ch_S, uv);
-#endif
-
-#ifdef IS_NO_REFLECT_PRESET
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_N, uv);
- col += GetChar(ch_O, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_R, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_F, uv);
- col += GetChar(ch_L, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_C, uv);
- col += GetChar(ch_T, uv);
-#endif
-
-#ifdef IS_POTATO_PRESET
- col += GetChar(ch_P, uv);
- col += GetChar(ch_0, uv);
- col += GetChar(ch_T, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_T, uv);
- col += GetChar(ch_O, uv);
-#endif
-
-
- // Line 02 Version ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_1, uv);
- col += GetChar(ch_per, uv);
- col += GetChar(ch_4, uv);
- col += GetChar(ch_per, uv);
- col += GetChar(ch_2, uv);
- col += GetChar(ch_spc, uv);
-
- // Date
- col += GetChar(ch_2, uv);
- col += GetChar(ch_0, uv);
- col += GetChar(ch_2, uv);
- col += GetChar(ch_2, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_0, uv);
- col += GetChar(ch_9, uv);
- col += GetChar(ch_dsh, uv);
- col += GetChar(ch_2, uv);
- col += GetChar(ch_7, uv);
-
-
- // Line 01 Title ----------------------------------------------------------
- printPos.x = margin;
- printPos.y += STRHEIGHT(1);
-
- col += GetChar(ch_M, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_G, uv);
- col += GetChar(ch_A, uv);
- col += GetChar(ch_spc, uv);
- col += GetChar(ch_B, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_Z, uv);
- col += GetChar(ch_E, uv);
- col += GetChar(ch_L, uv);
- col += GetChar(ch_spc, uv);
-
-
- TEXT_MODE = NORMAL;
-
- return col;
-}
-
-// Returns a
-float GetTextMask(vec2 in_coord, vec2 viewport_size, vec2 screen_size, vec2 derezed_size, vec2 negative_crop_added_size, vec2 cropped_original_size, vec2 sampling_res, vec2 int_mult, vec2 canvas_size)
-{
- in_coord = (in_coord - 0.5) * vec2(1, -1) + 0.5;
- float downscale = 1;
- if (canvas_size.y > 600) downscale = 2;
- if (canvas_size.y > 1000) downscale = 3;
-
- textCanvasResolution = global.OutputSize.xy / downscale;
- vec2 uv = global.OutputSize.xy * in_coord;
- vec2 downscaled_uv = floor(global.OutputSize.xy * in_coord / downscale);
-
- float pixel = DrawResolutions(downscaled_uv, viewport_size, screen_size, derezed_size, negative_crop_added_size, cropped_original_size, sampling_res, int_mult);
-
- vec3 col = vec3(1);
- pixel *= (1 - distance(mod(uv, vec2(1.0)), vec2(0.65))) * 1.2;
- col *= mix(vec3(0), vec3(1, 1, 1), pixel);
-
- return col.r;
-}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-std-glass.slang b/bezel/Mega_Bezel/shaders/base/text-std-glass.slang
index 578e3a2..0eef4be 100644
--- a/bezel/Mega_Bezel/shaders/base/text-std-glass.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-std-glass.slang
@@ -3,4 +3,5 @@
#define IS_STD_PRESET
#include "common/globals-and-glass-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-std-no-reflect.slang b/bezel/Mega_Bezel/shaders/base/text-std-no-reflect.slang
index 07e8ab6..ed2ff07 100644
--- a/bezel/Mega_Bezel/shaders/base/text-std-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-std-no-reflect.slang
@@ -4,4 +4,5 @@
#define IS_NO_REFLECT_PRESET
#include "common/globals-and-image-layers-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/base/text-std.slang b/bezel/Mega_Bezel/shaders/base/text-std.slang
index 0bacbb5..dfcb412 100644
--- a/bezel/Mega_Bezel/shaders/base/text-std.slang
+++ b/bezel/Mega_Bezel/shaders/base/text-std.slang
@@ -3,5 +3,6 @@
#define IS_STD_PRESET
#include "common/globals-and-all-params.inc"
+#include "common/base-functions.inc"
#include "text.inc"
diff --git a/bezel/Mega_Bezel/shaders/base/text.inc b/bezel/Mega_Bezel/shaders/base/text.inc
index 07df2ca..8ed838c 100644
--- a/bezel/Mega_Bezel/shaders/base/text.inc
+++ b/bezel/Mega_Bezel/shaders/base/text.inc
@@ -22,10 +22,6 @@
along with this program. If not, see .
*/
-// Import so all the mega bezel parameters are the first in the parameter list
-
-#include "text-resolution.inc"
-
#pragma alias TextPass
#pragma stage vertex
@@ -49,8 +45,532 @@ layout(set = 0, binding = 2) uniform sampler2D TextPassFeedback;
layout(set = 0, binding = 8) uniform sampler2D InfoCachePass;
layout(set = 0, binding = 9) uniform sampler2D InfoCachePassFeedback;
+/*
+ Text code is from the Shadertoy "96-bit 8x12" Font by Flyguy
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+*/
+
+#define MAX_INT_DIGITS 4
+
+#define CHAR_SIZE vec2(6, 7)
+#define CHAR_SPACING vec2(6, 11)
+
+#define STRWIDTH(c) (c * CHAR_SPACING.x)
+#define STRHEIGHT(c) (c * CHAR_SPACING.y)
+
+#define DOWN_SCALE 2.0
+
+/*
+Top left pixel is the most significant bit.
+Bottom right pixel is the least significant bit.
+
+ ███ |
+â–ˆ â–ˆ |
+â–ˆ â–ˆ |
+â–ˆ â–ˆ |
+█████ |
+â–ˆ â–ˆ |
+â–ˆ â–ˆ |
+
+011100
+100010
+100010
+100010
+111110
+100010
+100010
+
+011100 (upper 21 bits)
+100010 -> 011100 100010 100010 100 -> 935188
+100010
+100
+ 010 (lower 21 bits)
+111110 -> 010 111110 100010 100010 -> 780450
+100010
+100010
+
+vec2(935188.0,780450.0)
+*/
+
+//Automatically generated from the sprite sheet here: http://uzebox.org/wiki/index.php?title=File:Font6x8.png
+vec2 ch_spc = vec2(0.0,0.0);
+vec2 ch_exc = vec2(276705.0,32776.0);
+vec2 ch_quo = vec2(1797408.0,0.0);
+vec2 ch_hsh = vec2(10738.0,1134484.0);
+vec2 ch_dol = vec2(538883.0,19976.0);
+vec2 ch_pct = vec2(1664033.0,68006.0);
+vec2 ch_amp = vec2(545090.0,174362.0);
+vec2 ch_apo = vec2(798848.0,0.0);
+vec2 ch_lbr = vec2(270466.0,66568.0);
+vec2 ch_rbr = vec2(528449.0,33296.0);
+vec2 ch_ast = vec2(10471.0,1688832.0);
+vec2 ch_crs = vec2(4167.0,1606144.0);
+vec2 ch_per = vec2(0.0,1560.0);
+vec2 ch_dsh = vec2(7.0,1572864.0);
+vec2 ch_com = vec2(0.0,1544.0);
+vec2 ch_lsl = vec2(1057.0,67584.0);
+vec2 ch_0 = vec2(935221.0,731292.0);
+vec2 ch_1 = vec2(274497.0,33308.0);
+vec2 ch_2 = vec2(934929.0,1116222.0);
+vec2 ch_3 = vec2(934931.0,1058972.0);
+vec2 ch_4 = vec2(137380.0,1302788.0);
+vec2 ch_5 = vec2(2048263.0,1058972.0);
+vec2 ch_6 = vec2(401671.0,1190044.0);
+vec2 ch_7 = vec2(2032673.0,66576.0);
+vec2 ch_8 = vec2(935187.0,1190044.0);
+vec2 ch_9 = vec2(935187.0,1581336.0);
+vec2 ch_col = vec2(195.0,1560.0);
+vec2 ch_scl = vec2(195.0,1544.0);
+vec2 ch_les = vec2(135300.0,66052.0);
+vec2 ch_equ = vec2(496.0,3968.0);
+vec2 ch_grt = vec2(528416.0,541200.0);
+vec2 ch_que = vec2(934929.0,1081352.0);
+vec2 ch_ats = vec2(935285.0,714780.0);
+vec2 ch_A = vec2(935188.0,780450.0);
+vec2 ch_B = vec2(1983767.0,1190076.0);
+vec2 ch_C = vec2(935172.0,133276.0);
+vec2 ch_D = vec2(1983764.0,665788.0);
+vec2 ch_E = vec2(2048263.0,1181758.0);
+vec2 ch_F = vec2(2048263.0,1181728.0);
+vec2 ch_G = vec2(935173.0,1714334.0);
+vec2 ch_H = vec2(1131799.0,1714338.0);
+vec2 ch_I = vec2(921665.0,33308.0);
+vec2 ch_J = vec2(66576.0,665756.0);
+vec2 ch_K = vec2(1132870.0,166178.0);
+vec2 ch_L = vec2(1065220.0,133182.0);
+vec2 ch_M = vec2(1142100.0,665762.0);
+vec2 ch_N = vec2(1140052.0,1714338.0);
+vec2 ch_O = vec2(935188.0,665756.0);
+vec2 ch_P = vec2(1983767.0,1181728.0);
+vec2 ch_Q = vec2(935188.0,698650.0);
+vec2 ch_R = vec2(1983767.0,1198242.0);
+vec2 ch_S = vec2(935171.0,1058972.0);
+vec2 ch_T = vec2(2035777.0,33288.0);
+vec2 ch_U = vec2(1131796.0,665756.0);
+vec2 ch_V = vec2(1131796.0,664840.0);
+vec2 ch_W = vec2(1131861.0,699028.0);
+vec2 ch_X = vec2(1131681.0,84130.0);
+vec2 ch_Y = vec2(1131794.0,1081864.0);
+vec2 ch_Z = vec2(1968194.0,133180.0);
+vec2 ch_lsb = vec2(925826.0,66588.0);
+vec2 ch_rsl = vec2(16513.0,16512.0);
+vec2 ch_rsb = vec2(919584.0,1065244.0);
+vec2 ch_pow = vec2(272656.0,0.0);
+vec2 ch_usc = vec2(0.0,62.0);
+vec2 ch_a = vec2(224.0,649374.0);
+vec2 ch_b = vec2(1065444.0,665788.0);
+vec2 ch_c = vec2(228.0,657564.0);
+vec2 ch_d = vec2(66804.0,665758.0);
+vec2 ch_e = vec2(228.0,772124.0);
+vec2 ch_f = vec2(401543.0,1115152.0);
+vec2 ch_g = vec2(244.0,665474.0);
+vec2 ch_h = vec2(1065444.0,665762.0);
+vec2 ch_i = vec2(262209.0,33292.0);
+vec2 ch_j = vec2(131168.0,1066252.0);
+vec2 ch_k = vec2(1065253.0,199204.0);
+vec2 ch_l = vec2(266305.0,33292.0);
+vec2 ch_m = vec2(421.0,698530.0);
+vec2 ch_n = vec2(452.0,1198372.0);
+vec2 ch_o = vec2(228.0,665756.0);
+vec2 ch_p = vec2(484.0,667424.0);
+vec2 ch_q = vec2(244.0,665474.0);
+vec2 ch_r = vec2(354.0,590904.0);
+vec2 ch_s = vec2(228.0,114844.0);
+vec2 ch_t = vec2(8674.0,66824.0);
+vec2 ch_u = vec2(292.0,1198868.0);
+vec2 ch_v = vec2(276.0,664840.0);
+vec2 ch_w = vec2(276.0,700308.0);
+vec2 ch_x = vec2(292.0,1149220.0);
+vec2 ch_y = vec2(292.0,1163824.0);
+vec2 ch_z = vec2(480.0,1148988.0);
+vec2 ch_lpa = vec2(401542.0,66572.0);
+vec2 ch_bar = vec2(266304.0,33288.0);
+vec2 ch_rpa = vec2(788512.0,1589528.0);
+vec2 ch_tid = vec2(675840.0,0.0);
+vec2 ch_lar = vec2(8387.0,1147904.0);
+
+float TEXT_MASK = 0;
+vec2 CUR_UV = vec2(0);
+
+#define _spc TEXT_MASK += char(ch_spc, CUR_UV);
+#define _exc TEXT_MASK += char(ch_exc, CUR_UV);
+#define _quo TEXT_MASK += char(ch_quo, CUR_UV);
+#define _hsh TEXT_MASK += char(ch_hsh, CUR_UV);
+#define _dol TEXT_MASK += char(ch_dol, CUR_UV);
+#define _pct TEXT_MASK += char(ch_pct, CUR_UV);
+#define _amp TEXT_MASK += char(ch_amp, CUR_UV);
+#define _apo TEXT_MASK += char(ch_apo, CUR_UV);
+#define _lbr TEXT_MASK += char(ch_lbr, CUR_UV);
+#define _rbr TEXT_MASK += char(ch_rbr, CUR_UV);
+#define _ast TEXT_MASK += char(ch_ast, CUR_UV);
+#define _crs TEXT_MASK += char(ch_crs, CUR_UV);
+#define _per TEXT_MASK += char(ch_per, CUR_UV);
+#define _dsh TEXT_MASK += char(ch_dsh, CUR_UV);
+#define _com TEXT_MASK += char(ch_com, CUR_UV);
+#define _lsl TEXT_MASK += char(ch_lsl, CUR_UV);
+#define _0 TEXT_MASK += char(ch_0, CUR_UV);
+#define _1 TEXT_MASK += char(ch_1, CUR_UV);
+#define _2 TEXT_MASK += char(ch_2, CUR_UV);
+#define _3 TEXT_MASK += char(ch_3, CUR_UV);
+#define _4 TEXT_MASK += char(ch_4, CUR_UV);
+#define _5 TEXT_MASK += char(ch_5, CUR_UV);
+#define _6 TEXT_MASK += char(ch_6, CUR_UV);
+#define _7 TEXT_MASK += char(ch_7, CUR_UV);
+#define _8 TEXT_MASK += char(ch_8, CUR_UV);
+#define _9 TEXT_MASK += char(ch_9, CUR_UV);
+#define _col TEXT_MASK += char(ch_col, CUR_UV);
+#define _scl TEXT_MASK += char(ch_scl, CUR_UV);
+#define _les TEXT_MASK += char(ch_les, CUR_UV);
+#define _equ TEXT_MASK += char(ch_equ, CUR_UV);
+#define _grt TEXT_MASK += char(ch_grt, CUR_UV);
+#define _que TEXT_MASK += char(ch_que, CUR_UV);
+#define _ats TEXT_MASK += char(ch_ats, CUR_UV);
+#define _A TEXT_MASK += char(ch_A, CUR_UV);
+#define _B TEXT_MASK += char(ch_B, CUR_UV);
+#define _C TEXT_MASK += char(ch_C, CUR_UV);
+#define _D TEXT_MASK += char(ch_D, CUR_UV);
+#define _E TEXT_MASK += char(ch_E, CUR_UV);
+#define _F TEXT_MASK += char(ch_F, CUR_UV);
+#define _G TEXT_MASK += char(ch_G, CUR_UV);
+#define _H TEXT_MASK += char(ch_H, CUR_UV);
+#define _I TEXT_MASK += char(ch_I, CUR_UV);
+#define _J TEXT_MASK += char(ch_J, CUR_UV);
+#define _K TEXT_MASK += char(ch_K, CUR_UV);
+#define _L TEXT_MASK += char(ch_L, CUR_UV);
+#define _M TEXT_MASK += char(ch_M, CUR_UV);
+#define _N TEXT_MASK += char(ch_N, CUR_UV);
+#define _O TEXT_MASK += char(ch_O, CUR_UV);
+#define _P TEXT_MASK += char(ch_P, CUR_UV);
+#define _Q TEXT_MASK += char(ch_Q, CUR_UV);
+#define _R TEXT_MASK += char(ch_R, CUR_UV);
+#define _S TEXT_MASK += char(ch_S, CUR_UV);
+#define _T TEXT_MASK += char(ch_T, CUR_UV);
+#define _U TEXT_MASK += char(ch_U, CUR_UV);
+#define _V TEXT_MASK += char(ch_V, CUR_UV);
+#define _W TEXT_MASK += char(ch_W, CUR_UV);
+#define _X TEXT_MASK += char(ch_X, CUR_UV);
+#define _Y TEXT_MASK += char(ch_Y, CUR_UV);
+#define _Z TEXT_MASK += char(ch_Z, CUR_UV);
+#define _lsb TEXT_MASK += char(ch_lsb, CUR_UV);
+#define _rsl TEXT_MASK += char(ch_rsl, CUR_UV);
+#define _rsb TEXT_MASK += char(ch_rsb, CUR_UV);
+#define _pow TEXT_MASK += char(ch_pow, CUR_UV);
+#define _usc TEXT_MASK += char(ch_usc, CUR_UV);
+#define _a TEXT_MASK += char(ch_a, CUR_UV);
+#define _b TEXT_MASK += char(ch_b, CUR_UV);
+#define _c TEXT_MASK += char(ch_c, CUR_UV);
+#define _d TEXT_MASK += char(ch_d, CUR_UV);
+#define _e TEXT_MASK += char(ch_e, CUR_UV);
+#define _f TEXT_MASK += char(ch_f, CUR_UV);
+#define _g TEXT_MASK += char(ch_g, CUR_UV);
+#define _h TEXT_MASK += char(ch_h, CUR_UV);
+#define _i TEXT_MASK += char(ch_i, CUR_UV);
+#define _j TEXT_MASK += char(ch_j, CUR_UV);
+#define _k TEXT_MASK += char(ch_k, CUR_UV);
+#define _l TEXT_MASK += char(ch_l, CUR_UV);
+#define _m TEXT_MASK += char(ch_m, CUR_UV);
+#define _n TEXT_MASK += char(ch_n, CUR_UV);
+#define _o TEXT_MASK += char(ch_o, CUR_UV);
+#define _p TEXT_MASK += char(ch_p, CUR_UV);
+#define _q TEXT_MASK += char(ch_q, CUR_UV);
+#define _r TEXT_MASK += char(ch_r, CUR_UV);
+#define _s TEXT_MASK += char(ch_s, CUR_UV);
+#define _t TEXT_MASK += char(ch_t, CUR_UV);
+#define _u TEXT_MASK += char(ch_u, CUR_UV);
+#define _v TEXT_MASK += char(ch_v, CUR_UV);
+#define _w TEXT_MASK += char(ch_w, CUR_UV);
+#define _x TEXT_MASK += char(ch_x, CUR_UV);
+#define _y TEXT_MASK += char(ch_y, CUR_UV);
+#define _z TEXT_MASK += char(ch_z, CUR_UV);
+#define _lpa TEXT_MASK += char(ch_lpa, CUR_UV);
+#define _bar TEXT_MASK += char(ch_bar, CUR_UV);
+#define _rpa TEXT_MASK += char(ch_rpa, CUR_UV);
+#define _tid TEXT_MASK += char(ch_tid, CUR_UV);
+#define _lar TEXT_MASK += char(ch_lar, CUR_UV);
+
+vec2 res;
+vec2 print_pos = vec2(0);
+
+//Extracts bit b from the given number.
+//Shifts bits right (num / 2^bit) then ANDs the result with 1 (mod(result,2.0)).
+float extract_bit(float n, float b)
+{
+ b = clamp(b,-1.0,22.0); //Fixes small artefacts on my nexus 7
+ return floor(mod(floor(n / pow(2.0,floor(b))),2.0));
+}
+
+//Returns the pixel at uv in the given bit-packed sprite.
+float sprite(vec2 spr, vec2 size, vec2 uv)
+{
+ uv = floor(uv);
+ //Calculate the bit to extract (x + y * width) (flipped on x-axis)
+ float bit = (size.x-uv.x-1.0) + uv.y * size.x;
+
+ //Clipping bound to remove garbage outside the sprite's boundaries.
+ bool bounds = all(greaterThanEqual(uv,vec2(0)));
+ bounds = bounds && all(lessThan(uv,size));
+
+ return bounds ? extract_bit(spr.x, bit - 21.0)+extract_bit(spr.y, bit) : 0.0;
+
+}
+
+//Prints a character and moves the print position forward by 1 character width.
+float char(vec2 ch, vec2 uv)
+{
+ float px = sprite(ch, CHAR_SIZE, uv - print_pos);
+ print_pos.x += CHAR_SPACING.x;
+ return px;
+}
+
+//Returns the digit sprite for the given number.
+vec2 get_digit(float d)
+{
+ d = floor(d);
+
+ if(d == 0.0) return ch_0;
+ if(d == 1.0) return ch_1;
+ if(d == 2.0) return ch_2;
+ if(d == 3.0) return ch_3;
+ if(d == 4.0) return ch_4;
+ if(d == 5.0) return ch_5;
+ if(d == 6.0) return ch_6;
+ if(d == 7.0) return ch_7;
+ if(d == 8.0) return ch_8;
+ if(d == 9.0) return ch_9;
+ return vec2(0.0);
+}
+
+//Prints out the given number starting at pos.
+float print_number(float number,vec2 pos, vec2 uv)
+{
+ vec2 dec_pos = pos;
+ float result = 0.0;
+
+ for(int i = 3;i >= -2;i--)
+ {
+ float clip = float(abs(number) > pow(10.0, float(i)) || i == 0); //Clip off leading zeros.
+
+ float digit = mod(number / pow(10.0, float(i)),10.0);
+
+ if(i == -1)
+ {
+ result += sprite(ch_per,CHAR_SIZE, uv - dec_pos) * clip;
+ dec_pos.x += CHAR_SPACING.x * clip;
+ }
+ result += sprite(get_digit(digit),CHAR_SIZE, uv - dec_pos) * clip;
+
+
+ dec_pos.x += CHAR_SPACING.x * clip;
+ }
+
+ return result;
+}
+
+float print_integer(float number, int zeros, vec2 uv)
+{
+ float result = 0.0;
+
+ for(int i = MAX_INT_DIGITS;i >= 0;i--)
+ {
+ float digit = mod( number / pow(10.0, float(i)) , 10.0);
+
+ if(abs(number) > pow(10.0, float(i)) || zeros > i || i == 0) //Clip off leading zeros.
+ {
+ result += char(get_digit(digit), uv);
+ }
+ }
+ return result;
+}
+
#define eps 1e-3
+float DrawResolutions(vec2 uv, vec2 viewport_size, vec2 screen_size, vec2 derezed_size, vec2 negative_crop_added_size, vec2 cropped_original_size, vec2 sampling_res, vec2 int_mult)
+{
+ float col = 0.0;
+
+ float current_line_index = 0;
+ float margin = STRHEIGHT(1);
+
+ //Resolution Text
+ print_pos = vec2(margin, 0);
+
+ // Line 14 Viewport Resolution ----------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ TEXT_MASK = 0;
+ CUR_UV = uv;
+ _V _i _e _w _p _o _r _t _spc _dsh _dsh _dsh _dsh _dsh _dsh _spc
+ TEXT_MASK += print_integer(viewport_size.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(viewport_size.y, 0, uv);
+
+ // Line 13 Screen Resolution ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _S _c _r _e _e _n _spc _dsh _dsh _dsh _dsh _dsh _dsh _dsh _dsh _spc
+ TEXT_MASK += print_integer(screen_size.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(screen_size.y, 0, uv);
+
+ // Line 12 Final Aspect Ratio ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _F _i _n _a _l _spc _A _s _p _e _c _t _spc _dsh _dsh _spc
+ TEXT_MASK += print_number(screen_size.x/screen_size.y > 1 ? screen_size.x/screen_size.y : screen_size.y/screen_size.x, print_pos, uv);
+
+ // Line 11 Non-Int Scale Percent ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _N _o _n _spc _I _n _t _spc _S _c _l _spc _pct _dsh _dsh _spc
+ TEXT_MASK += print_number(screen_size.y / viewport_size.y * 100, print_pos, uv);
+
+ // Line 10 Int Scale Vertical ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _I _n _t _spc _S _c _l _spc _V _e _r _t _spc _dsh _dsh _spc
+
+ if (fract(int_mult.y) < 0.01 || fract(int_mult.y) > 0.99)
+ TEXT_MASK += print_number(int_mult.y, print_pos, uv);
+ else
+ TEXT_MASK += print_number(int_mult.y, print_pos, uv);
+
+ // Line 09 Int Scale Horizontal ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _I _n _t _spc _S _c _l _spc _H _o _r _z _spc _dsh _dsh _spc
+
+ if (fract(int_mult.x) < 0.01 || fract(int_mult.x) > 0.99)
+ TEXT_MASK += print_number(int_mult.x, print_pos, uv);
+ else
+ TEXT_MASK += print_number(int_mult.x, print_pos, uv);
+
+ // Line 08 Sampling Resolution ----------------------------------------------------------
+ if (cropped_original_size.x != sampling_res.x || cropped_original_size.y != sampling_res.y)
+ {
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _S _a _m _p _l _i _n _g _spc _R _e _s _spc _dsh _dsh _spc
+
+ TEXT_MASK += print_integer(sampling_res.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(sampling_res.y, 0, uv);
+ }
+
+
+ // Line 07 CROPPED Resolution ----------------------------------------------------------
+ if (cropped_original_size.x != ROTATED_CORE_PREPPED_SIZE.x || cropped_original_size.y != ROTATED_CORE_PREPPED_SIZE.y)
+ {
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _C _r _o _p _p _e _d _spc _dsh _dsh _dsh _dsh _dsh _dsh _dsh _spc
+
+ TEXT_MASK += print_integer(cropped_original_size.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(cropped_original_size.y, 0, uv);
+ }
+
+
+ // Line 06 Negative Crop Resolution ----------------------------------------------------------
+ if (derezed_size.x != ROTATED_CORE_PREPPED_SIZE.x || derezed_size.y != ROTATED_CORE_PREPPED_SIZE.y)
+ {
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _N _e _g _dsh _C _r _o _p _spc _A _d _d _spc _dsh _dsh _spc
+
+ TEXT_MASK += print_integer(ROTATED_CORE_PREPPED_SIZE.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(ROTATED_CORE_PREPPED_SIZE.y, 0, uv);
+ }
+
+
+ // Line 05 DEREZ Resolution ----------------------------------------------------------
+ if (derezed_size.x != ROTATED_CORE_ORIGINAL_SIZE.x || derezed_size.y != ROTATED_CORE_ORIGINAL_SIZE.y)
+ {
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _D _e _r _e _z _e _d _spc _dsh _dsh _dsh _dsh _dsh _dsh _dsh _spc
+
+ TEXT_MASK += print_integer(derezed_size.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(derezed_size.y, 0, uv);
+ }
+
+
+ // Line 04 CORE Resolution ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _C _o _r _e _spc _dsh _dsh _dsh _dsh _dsh _dsh _dsh _dsh _dsh _dsh _spc
+
+ TEXT_MASK += print_integer(ROTATED_CORE_ORIGINAL_SIZE.x, 0, uv);
+ _spc _x _spc
+ TEXT_MASK += print_integer(ROTATED_CORE_ORIGINAL_SIZE.y, 0, uv);
+
+ // Line 03 Preset Type ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(2);
+
+#ifdef IS_ADV_PRESET
+ _A _D _V _A _N _C _E _D
+#endif
+
+#ifdef IS_STD_PRESET
+ _S _T _A _N _D _A _R _D
+#endif
+
+#ifdef IS_GLASS_PRESET
+ _spc _G _L _A _S _S
+#endif
+
+#ifdef IS_NO_REFLECT_PRESET
+ _spc _N _O _spc _R _E _F _L _E _C _T
+#endif
+
+#ifdef IS_POTATO_PRESET
+ _P _O _T _A _T _O
+#endif
+
+
+ // Line 02 Version ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ // Version
+ _1 _per _4 _per _3 _spc
+ // Date
+ _2 _0 _2 _2 _dsh _1 _0 _dsh _0 _9
+
+ // Line 01 Title ----------------------------------------------------------
+ print_pos.x = margin;
+ print_pos.y += STRHEIGHT(1);
+
+ _M _E _G _A _spc _B _E _Z _E _L _spc
+
+ return TEXT_MASK;
+}
+
vec2 GetScreenSize(vec2 screen_scale)
{
vec2 screen_size = global.FinalViewportSize.xy * screen_scale;
@@ -68,34 +588,40 @@ vec2 GetIntegerScaleMult(vec2 screen_size, vec2 cropped_size)
return integer_scale;
}
-vec4 AddText(vec2 in_coord, vec4 in_color)
+float GetText(vec2 in_coord)
{
in_coord.x = HSM_FLIP_VIEWPORT_HORIZONTAL * HSM_FLIP_CORE_HORIZONTAL * (in_coord.x - 0.5) + 0.5;
in_coord.y = HSM_FLIP_VIEWPORT_VERTICAL * HSM_FLIP_CORE_VERTICAL * (in_coord.y - 0.5) + 0.5;
vec2 screen_size = GetScreenSize(SCREEN_SCALE);
- vec2 int_scale_mult = GetIntegerScaleMult(screen_size, CROPPED_ROTATED_SIZE);
+ vec2 int_mult = GetIntegerScaleMult(screen_size, CROPPED_ROTATED_SIZE);
vec2 canvas_size = global.DerezedPassSize.xy;
- vec4 out_color = in_color;
- out_color = mix(out_color, vec4(0, 0, 0, 1), GetTextMask(in_coord + 2 * vec2(1/global.OutputSize.x, 0), global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_scale_mult, canvas_size));
- out_color = mix(out_color, vec4(0, 0, 0, 1), GetTextMask(in_coord - 2 * vec2(1/global.OutputSize.x, 0), global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_scale_mult, canvas_size));
- out_color = mix(out_color, vec4(0, 0, 0, 1), GetTextMask(in_coord + 1 * vec2(0, 1/global.OutputSize.y), global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_scale_mult, canvas_size));
- out_color = mix(out_color, vec4(0, 0, 0, 1), GetTextMask(in_coord - 1 * vec2(0, 1/global.OutputSize.y), global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_scale_mult, canvas_size));
- out_color = mix(out_color, vec4(1, 1, 0, 1), GetTextMask(in_coord, global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_scale_mult, canvas_size));
- return clamp(out_color, 0, 1);
+ in_coord = (in_coord - 0.5) * vec2(1, -1) + 0.5;
+ float downscale = 1;
+ if (canvas_size.y > 460) downscale = 2;
+ if (canvas_size.y > 1000) downscale = 3;
+
+ vec2 uv = global.OutputSize.xy * in_coord;
+ vec2 downscaled_uv = floor(global.OutputSize.xy * in_coord / downscale);
+
+ float pixel = DrawResolutions(downscaled_uv, global.FinalViewportSize.xy, screen_size, ROTATED_DEREZED_SIZE, ROTATED_CORE_PREPPED_SIZE, CROPPED_ROTATED_SIZE, CROPPED_ROTATED_SIZE_WITH_RES_MULT, int_mult);
+
+ vec3 col = vec3(1);
+ pixel *= (1 - distance(mod(uv, vec2(1.0)), vec2(0.65))) * 1.2;
+ col *= mix(vec3(0), vec3(1, 1, 1), pixel);
+
+ return col.r;
}
void main()
{
vec2 UNFLIPPED_VIEWPORT_COORD = vTexCoord;
vec2 VIEWPORT_COORD = vTexCoord;
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
- FragColor = vec4(0);
-
- vec4 feedback_color_test = texture(PassFeedback, vec2(0,0));
- if (feedback_color_test.a < 0 && !CACHE_INFO_CHANGED)
+ // vec4 feedback_color_test = texture(PassFeedback, vec2(0,0));
+ if (!CACHE_INFO_CHANGED)
{
FragColor = texture(PassFeedback, UNFLIPPED_VIEWPORT_COORD);
return;
@@ -106,8 +632,5 @@ void main()
VIEWPORT_COORD.x = HSM_FLIP_VIEWPORT_HORIZONTAL * HSM_FLIP_CORE_HORIZONTAL * (VIEWPORT_COORD.x - 0.5) + 0.5;
//////// Draw text to show resolutions //////////
- FragColor = AddText(VIEWPORT_COORD - vec2(MAX_NEGATIVE_CROP, -MAX_NEGATIVE_CROP), FragColor);
-
- if (UNFLIPPED_VIEWPORT_COORD.x < (2 / global.OutputSize.x) && UNFLIPPED_VIEWPORT_COORD.y < (2 / global.OutputSize.y))
- FragColor = vec4(0.01, 0.01, 0.01, -1);
+ FragColor = vec4(GetText(VIEWPORT_COORD - vec2(MAX_NEGATIVE_CROP, -MAX_NEGATIVE_CROP)));
}
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-1-before.slang b/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-1-before.slang
index b820d71..f9460bc 100644
--- a/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-1-before.slang
+++ b/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-1-before.slang
@@ -24,7 +24,7 @@
along with this program. If not, see .
*/
-#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/helper-functions.inc"
layout(push_constant) uniform Push
{
@@ -36,6 +36,11 @@ layout(push_constant) uniform Push
float HSM_DEDITHER_BRIGHTNESS_BIAS;
} params;
+layout(std140, set = 0, binding = 0) uniform UBO
+{
+ mat4 MVP;
+} global;
+
#pragma parameter HSM_DEDITHERING_TITLE "[ --- MDAPT & HYLLIAN DE-DITHERING --- ]:" 0 0 0.01 0.01
#pragma parameter HSM_DEDITHER_MODE "Mode: OFF| STRICT | RELAXED | HYLLIAN | HYL + STRIPES | STRIPES" 0 0 5 1
diff --git a/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-2-after.slang b/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-2-after.slang
index 9a50ac5..f47ee7f 100644
--- a/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-2-after.slang
+++ b/bezel/Mega_Bezel/shaders/dedither/dedither-gamma-prep-2-after.slang
@@ -24,7 +24,7 @@
along with this program. If not, see .
*/
-#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/helper-functions.inc"
layout(push_constant) uniform Push
{
@@ -36,6 +36,11 @@ layout(push_constant) uniform Push
float HSM_DEDITHER_BRIGHTNESS_BIAS;
} params;
+layout(std140, set = 0, binding = 0) uniform UBO
+{
+ mat4 MVP;
+} global;
+
#pragma parameter HSM_DEDITHERING_TITLE "[ --- MDAPT & HYLLIAN DE-DITHERING --- ]:" 0 0 0.01 0.01
#pragma parameter HSM_DEDITHER_MODE "Mode: OFF| STRICT | RELAXED | HYLLIAN | HYL + STRIPES | STRIPES" 0 0 5 1
diff --git a/bezel/Mega_Bezel/shaders/dogway/hsm-grade.slang b/bezel/Mega_Bezel/shaders/dogway/hsm-grade.slang
index 04e2605..615b211 100644
--- a/bezel/Mega_Bezel/shaders/dogway/hsm-grade.slang
+++ b/bezel/Mega_Bezel/shaders/dogway/hsm-grade.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
layout(push_constant) uniform Push
{
@@ -222,7 +223,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D Source;
// HSM Removed
@@ -881,7 +881,7 @@ vec3 vcolor = adj;
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 derezed_size = HSM_GetNegativeCropAddedSize();
vec2 cur_pixel_pos = vTexCoord * derezed_size;
vec2 cropped_size = HSM_ROTATE_CORE_IMAGE > 0.5 ? vec2(CROPPED_ROTATED_SIZE.y, CROPPED_ROTATED_SIZE.x) : CROPPED_ROTATED_SIZE;
diff --git a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation-basic-border.slang b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation-basic-border.slang
index 7e14018..efddcf3 100644
--- a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation-basic-border.slang
+++ b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation-basic-border.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-basic-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-easymode-halation.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.inc b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.inc
index 57e433a..11248f4 100644
--- a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.inc
+++ b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.inc
@@ -164,7 +164,6 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 3) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 4) uniform sampler2D LinearizePass;
@@ -177,7 +176,7 @@ void main()
// TODO implement Cropping
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 tex_size = CROPPED_ROTATED_SIZE_WITH_RES_MULT;
// End Addition
diff --git a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.slang b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.slang
index 5d31c16..de5ffec 100644
--- a/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.slang
+++ b/bezel/Mega_Bezel/shaders/easymode/hsm-crt-easymode-halation.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-easymode-halation.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/grade/hsm-pre-shaders-afterglow-grade.slang b/bezel/Mega_Bezel/shaders/guest/grade/hsm-pre-shaders-afterglow-grade.slang
index c338911..da9dfdd 100644
--- a/bezel/Mega_Bezel/shaders/guest/grade/hsm-pre-shaders-afterglow-grade.slang
+++ b/bezel/Mega_Bezel/shaders/guest/grade/hsm-pre-shaders-afterglow-grade.slang
@@ -228,7 +228,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D Source;
layout(set = 0, binding = 4) uniform sampler2D PreCRTPass;
@@ -898,7 +897,7 @@ vec3 vcolor = adj;
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 derezed_size = HSM_GetNegativeCropAddedSize();
vec2 cur_pixel_pos = vTexCoord * derezed_size;
vec2 cropped_size = HSM_ROTATE_CORE_IMAGE > 0.5 ? vec2(CROPPED_ROTATED_SIZE.y, CROPPED_ROTATED_SIZE.x) : CROPPED_ROTATED_SIZE;
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini-potato.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini-potato.slang
index 2601902..c5c0597 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini-potato.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-potato-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-dariusg-gdv-mini.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.inc b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.inc
index 42e0bd6..7fffa0a 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.inc
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.inc
@@ -98,7 +98,6 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D Source;
layout(set = 0, binding = 2) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 3) uniform sampler2D InfoCachePassFeedback;
float sw(float x, float l)
{
@@ -253,7 +252,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.slang
index 431324d..1daf4e3 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-dariusg-gdv-mini.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-crt-dariusg-gdv-mini.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-no-reflect.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
index c93f3c8..74ab3bd 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-no-reflect.slang
@@ -2,4 +2,5 @@
#define IS_NO_REFLECT_PRESET
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-guest-advanced.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.inc b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.inc
index 2aedb01..73e9cae 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.inc
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.inc
@@ -85,7 +85,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D LinearizePass;
layout(set = 0, binding = 3) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 4) uniform sampler2D InfoCachePassFeedback;
float invsqrsigma = 1.0/(2.0*SIGMA_HOR*SIGMA_HOR);
@@ -98,7 +97,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// If it's the potato preset render the whole frame
#ifndef IS_POTATO_PRESET
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
index 3b108a5..e4db21f 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass1.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-crt-guest-advanced-ntsc-pass1.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
index e8da457..e8367c4 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-no-reflect.slang
@@ -2,4 +2,5 @@
#define IS_NO_REFLECT_PRESET
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-guest-advanced-ntsc-pass2.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-potato.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-potato.slang
index 8db2d56..47d9e26 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-potato.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-potato-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-guest-advanced-ntsc-pass2.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.inc b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.inc
index 6cb3fe5..6c5830d 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.inc
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.inc
@@ -177,7 +177,6 @@ layout(set = 0, binding = 2) uniform sampler2D LinearizePass;
layout(set = 0, binding = 3) uniform sampler2D AvgLumPass;
layout(set = 0, binding = 4) uniform sampler2D Pass1;
layout(set = 0, binding = 6) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 7) uniform sampler2D InfoCachePassFeedback;
#define eps 1e-8
@@ -242,7 +241,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.slang
index 6b61dff..ed40644 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc-pass2.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-crt-guest-advanced-ntsc-pass2.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc.slang
index 8795dc7..a4d86e9 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-ntsc.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-crt-guest-advanced.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-potato.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-potato.slang
index 17e6265..9111884 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-potato.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-potato-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-crt-guest-advanced.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.inc b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.inc
index cb7ac5a..269537d 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.inc
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.inc
@@ -176,7 +176,6 @@ layout(set = 0, binding = 4) uniform sampler2D PrePass;
// HSM Added
layout(set = 0, binding = 6) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 7) uniform sampler2D InfoCachePassFeedback;
#define eps 1e-10
@@ -240,7 +239,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
bool ntsc_processing_on = false;
#ifdef IS_NTSC
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.slang b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.slang
index 8795dc7..a4d86e9 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-crt-guest-advanced.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-crt-guest-advanced.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-no-reflect.slang b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-no-reflect.slang
index 567ee2a..769b90f 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-no-reflect.slang
@@ -2,4 +2,5 @@
#define IS_NO_REFLECT_PRESET
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-deconvergence.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-potato.slang b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-potato.slang
index 61a02c6..b36040e 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-potato.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence-potato.slang
@@ -2,4 +2,5 @@
#define IS_POTATO_PRESET
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-deconvergence.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.inc b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.inc
index ccf105b..ecc42ba 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.inc
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.inc
@@ -221,7 +221,6 @@ layout(set = 0, binding = 7) uniform sampler2D Source;
// HSM Added
layout(set = 0, binding = 8) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 9) uniform sampler2D InfoCachePassFeedback;
#define eps 1e-10
@@ -596,7 +595,7 @@ void main()
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 SourceSize = CROPPED_ROTATED_SIZE_WITH_RES_MULT;
float TATE = USE_VERTICAL_SCANLINES;
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.slang b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.slang
index 6d5a299..27e51fc 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-deconvergence.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "hsm-deconvergence.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/guest/hsm-interlace-and-linearize.slang b/bezel/Mega_Bezel/shaders/guest/hsm-interlace-and-linearize.slang
index cef5134..11119af 100644
--- a/bezel/Mega_Bezel/shaders/guest/hsm-interlace-and-linearize.slang
+++ b/bezel/Mega_Bezel/shaders/guest/hsm-interlace-and-linearize.slang
@@ -22,6 +22,7 @@
*/
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
layout(push_constant) uniform Push
{
@@ -106,7 +107,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 1) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 2) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 3) uniform sampler2D PrePass;
layout(set = 0, binding = 4) uniform sampler2D NegativeCropAddedPass;
@@ -162,7 +162,7 @@ void main()
vec3 c2 = vec3(0);
// HSM Added
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
use_vert_scanlines_bool = (USE_VERTICAL_SCANLINES > 0.5);
diff --git a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/crt-hyllian-sinc-curvature.slang b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/crt-hyllian-sinc-curvature.slang
index 2cad8da..bc03af5 100644
--- a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/crt-hyllian-sinc-curvature.slang
+++ b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/crt-hyllian-sinc-curvature.slang
@@ -70,7 +70,6 @@ layout(location = 1) in vec2 FragCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source;
layout(set = 0, binding = 3) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 4) uniform sampler2D InfoCachePassFeedback;
/*
Hyllian's CRT Shader - Sinc/Spline16 version
@@ -185,7 +184,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-x.slang b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-x.slang
index e67633f..47d49d9 100644
--- a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-x.slang
+++ b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-x.slang
@@ -85,7 +85,7 @@ void main()
{
// // HSM Added
// vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
-// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
index a722ff8..7e32762 100644
--- a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
+++ b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-bicubic-y.slang
@@ -85,7 +85,7 @@ void main()
{
// // HSM Added
// vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
-// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-resolve.slang b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-resolve.slang
index 0d77bf7..96c612b 100644
--- a/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-resolve.slang
+++ b/bezel/Mega_Bezel/shaders/hyllian/crt-super-xbr/custom-resolve.slang
@@ -52,7 +52,7 @@ void main()
{
// // HSM Added
// vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
-// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+// HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2-basic-border.slang b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2-basic-border.slang
index be489b8..f87b534 100644
--- a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2-basic-border.slang
+++ b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2-basic-border.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-basic-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-lcd-grid-v2.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.inc b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.inc
index 25e943c..b732f74 100644
--- a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.inc
+++ b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.inc
@@ -57,7 +57,6 @@ layout(set = 0, binding = 1) uniform sampler2D IntroPass;
layout(set = 0, binding = 2) uniform sampler2D Source;
layout(set = 0, binding = 3) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 4) uniform sampler2D InfoCachePassFeedback;
layout(location = 0) out vec4 FragColor;
@@ -103,7 +102,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.slang b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.slang
index 3243442..be8f107 100644
--- a/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.slang
+++ b/bezel/Mega_Bezel/shaders/lcd-cgwg/hsm-lcd-grid-v2.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "hsm-lcd-grid-v2.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-no-reflect.slang b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-no-reflect.slang
index 1017c3f..13c1bc1 100644
--- a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-no-reflect.slang
+++ b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-no-reflect.slang
@@ -2,4 +2,5 @@
#define IS_NO_REFLECT_PRESET
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "crt-sony-megatron.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-potato.slang b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-potato.slang
index 6822803..a1c64a6 100644
--- a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-potato.slang
+++ b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron-potato.slang
@@ -1,4 +1,5 @@
#version 450
#include "../base/common/globals-and-potato-params.inc"
+#include "../base/common/common-functions.inc"
#include "crt-sony-megatron.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.inc b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.inc
index a56d4a7..f67e7ab 100644
--- a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.inc
+++ b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.inc
@@ -160,7 +160,6 @@ layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D SourceSDR;
layout(set = 0, binding = 3) uniform sampler2D SourceHDR;
layout(set = 0, binding = 4) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 5) uniform sampler2D InfoCachePassFeedback;
#define kChannelMask 3
@@ -1149,7 +1148,7 @@ void main()
{
// HSM Added
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
vec2 cache_bounds_coord = SCREEN_COORD;
diff --git a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.slang b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.slang
index b5e2509..8bff444 100644
--- a/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.slang
+++ b/bezel/Mega_Bezel/shaders/megatron/crt-sony-megatron.slang
@@ -1,6 +1,7 @@
#version 450
#include "../base/common/globals-and-screen-scale-params.inc"
+#include "../base/common/common-functions.inc"
#include "../base/common/params-2-bezel.inc"
#include "../base/common/common-functions-bezel.inc"
#include "crt-sony-megatron.inc"
\ No newline at end of file
diff --git a/bezel/Mega_Bezel/shaders/newpixie/hsm-newpixie-crt.slang b/bezel/Mega_Bezel/shaders/newpixie/hsm-newpixie-crt.slang
index 9c0399a..75b6a3a 100644
--- a/bezel/Mega_Bezel/shaders/newpixie/hsm-newpixie-crt.slang
+++ b/bezel/Mega_Bezel/shaders/newpixie/hsm-newpixie-crt.slang
@@ -95,7 +95,6 @@ layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D InfoCachePass;
-layout(set = 0, binding = 3) uniform sampler2D InfoCachePassFeedback;
layout(set = 0, binding = 4) uniform sampler2D accum1;
layout(set = 0, binding = 5) uniform sampler2D blur2;
@@ -147,7 +146,7 @@ float rand(vec2 co)
void main()
{
vec2 viewportCoordTransformed = HSM_GetViewportCoordWithZoomAndPan(vTexCoord);
- HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, InfoCachePassFeedback, vTexCoord);
+ HSM_UpdateGlobalScreenValuesFromCache(InfoCachePass, vTexCoord);
// stop time variable so the screen doesn't wiggle
float time = 1.0;