shaders = 45

shader0 = ../../../shaders/guest/extras/hsm-drez-none.slang
filter_linear0 = false
srgb_framebuffer0 = true
scale_type0 = source
scale_x0 = 1
scale_y0 = 1
alias0 = "DerezedPass"

shader1 = ../../../shaders/base/cache-info-glass-params.slang
filter_linear1 = false
scale_type1 = source
scale1 = 1.0
alias1 = "InfoCachePass"

shader2 = ../../../shaders/base/text-adv-glass.slang
filter_linear2 = false
float_framebuffer2 = true
scale_type2 = source
scale2 = 1.0
alias2 = "TextPass"

shader3 = ../../../shaders/guest/extras/hsm-fetch-drez-output.slang
filter_linear3 = false
srgb_framebuffer3 = true
scale_type3 = source
scale_x3 = 1
scale_y3 = 1

shader4 = ../../../shaders/dedither/dedither-gamma-prep-1-before.slang
alias4 = LinearGamma

shader5 = ../../../shaders/hyllian/sgenpt-mix/sgenpt-mix-pass1.slang
filter_linear5 = false
scale_type5 = source
scale5 = 1.0

shader6 = ../../../shaders/hyllian/sgenpt-mix/sgenpt-mix-pass2.slang
filter_linear6 = false
scale_type6 = source
scale6 = 1.0

shader7 = ../../../shaders/hyllian/sgenpt-mix/sgenpt-mix-pass3.slang
filter_linear7 = false
scale_type7 = source
scale7 = 1.0
alias7 = CB_Output

shader8 = ../../../shaders/hyllian/sgenpt-mix/sgenpt-mix-pass4.slang
filter_linear8 = false
scale_type8 = source
scale8 = 1.0

shader9 = ../../../shaders/hyllian/sgenpt-mix/sgenpt-mix-pass5.slang
filter_linear9 = false

shader10 = ../../../shaders/dedither/dedither-gamma-prep-2-after.slang

shader11 = ../../../shaders/ps1dither/hsm-PS1-Undither-BoxBlur.slang

shader12 = ../../../shaders/fxaa/fxaa.slang
float_framebuffer12 = "true"

shader13 = ../../../shaders/guest/extras/hsm-g-sharp_resampler.slang

shader14 = ../../../shaders/guest/extras/hsm-sharpsmoother.slang
alias14 = "DeditherPass"

shader15 = ../../../shaders/base/stock.slang
alias15 = refpass

shader16 = ../../../shaders/scalefx/hsm-scalefx-pass0.slang
filter_linear16 = false
scale_type16 = source
scale16 = 1.0
float_framebuffer16 = true
alias16 = scalefx_pass0

shader17 = ../../../shaders/scalefx/hsm-scalefx-pass1.slang
filter_linear17 = false
scale_type17 = source
scale17 = 1.0
float_framebuffer12 = true

shader18 = ../../../shaders/scalefx/hsm-scalefx-pass2.slang
filter_linear18 = false
scale_type18 = source
scale18 = 1.0

shader19 = ../../../shaders/scalefx/hsm-scalefx-pass3.slang
filter_linear19 = false
scale_type19 = source
scale19 = 1.0

shader20 = ../../../shaders/scalefx/hsm-scalefx-pass4.slang
filter_linear20 = false
scale_type20 = source
scale20 = 3

shader21 = ../../../shaders/base/intro.slang
filter_linear21 = false
float_framebuffer21 = true
scale_type21 = source
scale21 = 1.0
alias21 = "IntroPass"

# GTU TV Processing
shader22 = ../../../shaders/gtu/hsm-gtu-pass1.slang
scale_type22 = source
scale22 = 1.0
float_framebuffer22 = true

shader23 = ../../../shaders/gtu/hsm-gtu-pass2.slang
scale_type_x23 = source
scale_x23 = 1.0
scale_type_y23 = source
scale_y23 = 1.0
filter_linear23 = false
float_framebuffer23 = true

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 = false
scale_type27 = source
scale27 = 1.0
alias27 = "ColorCorrectPass"

shader28 =  ../../../shaders/guest/hsm-custom-fast-sharpen.slang
filter_linear28 = true
scale_type28 = source
scale_x28 = 1.0
scale_y28 = 1.0

shader29 = ../../../shaders/base/stock.slang
filter_linear29 = true
scale_type29 = source
scale_x29 = 1.0
scale_y29 = 1.0
alias29 = "PrePass"
mipmap_input29 = true

shader30 = ../../../shaders/guest/hsm-avg-lum.slang
filter_linear30 = true
scale_type30 = source
scale30 = 1.0
mipmap_input30 = true
alias30 = "AvgLumPass"

# Pass referenced by subsequent blurring passes and crt pass
shader31 = ../../../shaders/guest/hsm-interlace-and-linearize.slang
filter_linear31 = true
scale_type31 = source
scale31 = 1.0
float_framebuffer31 = true
alias31 = "LinearizePass"

shader32 = ../../../shaders/guest/hsm-gaussian_horizontal.slang
filter_linear32 = true
scale_type_x32 = absolute
scale_x32 = 800.0
scale_type_y32 = source
scale_y32 = 1.0 
float_framebuffer32 = true

shader33 = ../../../shaders/guest/hsm-gaussian_vertical.slang
filter_linear33 = true
scale_type_x33 = absolute
scale_x33 = 800.0
scale_type_y33 = absolute
scale_y33 = 600.0
float_framebuffer33 = true
alias33 = GlowPass

shader34 = ../../../shaders/guest/hsm-bloom_horizontal.slang
filter_linear34 = true
scale_type_x34 = absolute
scale_x34 = 800.0
scale_type_y34 = absolute
scale_y34 = 600.0 
float_framebuffer34 = true

shader35 = ../../../shaders/guest/hsm-bloom_vertical.slang
filter_linear35 = true
scale_type_x35 = source
scale_x35 = 1.0
scale_type_y35 = source
scale_y35 = 1.0
float_framebuffer35 = true
alias35 = BloomPass

shader36 = ../../../shaders/guest/hsm-crt-guest-advanced.slang
filter_linear36 = true
scale_type36 = viewport
scale_x36 = 1.0
scale_y36 = 1.0
float_framebuffer36 = true

shader37 = ../../../shaders/guest/hsm-deconvergence.slang
filter_linear37 = true
scale_type37 = viewport
scale_x37 = 1.0
scale_y37 = 1.0
float_framebuffer37 = true
alias37 = "CRTPass"

shader38 = ../../../shaders/base/post-crt-prep-glass.slang
mipmap_input38 = true
scale_type38 = viewport
float_framebuffer38 = true
alias38 = "PostCRTPass"

# Reduce Resolution  ----------------------------------------------------------------
#      Reduce the resolution to a small static size regardless of final resolution
#      Allows consistent look and faster at different final resolutions for blur
#      Mipmap option allows downscaling without artifacts
shader39 = ../../../shaders/base/linearize-crt.slang
mipmap_input39 = true
filter_linear39 = true
scale_type39 = absolute
# scale_x39 = 480
# scale_y39 = 270
# scale_x39 = 960
# scale_y39 = 540
scale_x39 = 800
scale_y39 = 600
float_framebuffer39 = true
alias39 = "BR_MirrorLowResPass"

# Add Blur for the Reflection (Horizontal) ----------------------------------------------------------------
shader40 = ../../../shaders/base/blur-outside-screen-horiz.slang
mipmap_input40 = true
filter_linear40 = true
float_framebuffer40 = true

# Add Blur for the Reflection (Vertical) ----------------------------------------------------------------
shader41 = ../../../shaders/base/blur-outside-screen-vert.slang
filter_linear41 = true
float_framebuffer41 = true
alias41 = "BR_MirrorBlurredPass"

# Reduce resolution ----------------------------------------------------------------
# Reduced to a very small amount so we can create a blur which will create a glow from the screen
#      Mipmap option allows smoother downscaling
shader42 = ../../../../../blurs/shaders/royale/blur9x9.slang
mipmap_input42 = true
filter_linear42 = true
scale_type42 = absolute
scale_x42 = 128
scale_y42 = 128
float_framebuffer42 = true
alias42 = "BR_MirrorReflectionDiffusedPass"

# Add Diffused glow all around the screen ----------------------------------------------------------------
#      Blurred so much that it's non directional
#      Mipmap option allows downscaling without artifacts
shader43 = ../../../../../blurs/shaders/royale/blur9x9.slang
mipmap_input43 = true
filter_linear43 = true
scale_type43 = absolute
scale_x43 = 12
scale_y43 = 12
float_framebuffer43 = true
alias43 = "BR_MirrorFullscreenGlowPass"

# Bezel Reflection ----------------------------------------------------------------
shader44 = ../../../shaders/base/reflection-glass.slang
scale_type44 = viewport
srgb_framebuffer44 = true
alias44 = "ReflectionPass"

# Textures Glass
# 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

TubeStaticReflectionImage = ../../../shaders/textures/TubeGlassOverlayImageCropped_1440x1080.png
TubeStaticReflectionImage_linear = true
TubeStaticReflectionImage_mipmap = 1

TubeDiffuseImage = ../../../shaders/textures/Tube_Diffuse_2390x1792.png
TubeDiffuseImage_linear = true
TubeDiffuseImage_mipmap = 1

TubeShadowImage = ../../../shaders/textures/Tube_Shadow_1600x1200.png
TubeShadowImage_linear = true
TubeShadowImage_mipmap = 1

TubeColoredGelImage = ../../../shaders/textures/Colored_Gel_Rainbow.png
TubeColoredGelImage_linear = true
TubeColoredGelImage_mipmap = 1

ReflectionMaskImage = ../../../shaders/textures/Placeholder_White_16x16.png
ReflectionMaskImage_linear = true
ReflectionMaskImage_mipmap = 1

FrameTextureImage = ../../../shaders/textures/Placeholder_Transparent_16x16.png
FrameTextureImage_linear = true
FrameTextureImage_mipmap = 1

BackgroundImage = ../../../shaders/textures/TopLayerImageGradient_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/Placeholder_Transparent_16x16.png
NightLightingImage_linear = true
NightLightingImage_mipmap = 1

NightLighting2Image = ../../../shaders/textures/Placeholder_Transparent_16x16.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

# Parameters
HSM_TUBE_BLACK_EDGE_SHARPNESS = "90.0000"
HSM_TUBE_BLACK_EDGE_THICKNESS = -7
HSM_BG_OPACITY = "1.000000"
HSM_GLASS_BORDER_ON = "1.000000"
HSM_BZL_WIDTH = 3000
HSM_BZL_HEIGHT = 3000
HSM_BZL_INNER_EDGE_THICKNESS = 350
HSM_BZL_INNER_EDGE_SHARPNESS = 30
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "100.000000"
HSM_BZL_INNER_EDGE_SHADOW = "0.000000"
HSM_FRM_OPACITY = "100.000000"
HSM_REFLECT_GLOBAL_AMOUNT = "35.00000"
HSM_REFLECT_GLOBAL_GAMMA_ADJUST = "0.900000"
HSM_REFLECT_BEZEL_INNER_EDGE_AMOUNT = "60.0000"
HSM_REFLECT_BEZEL_INNER_EDGE_FULLSCREEN_GLOW = "40.0000"
HSM_REFLECT_FULLSCREEN_GLOW = "30.000000"
HSM_REFLECT_FULLSCREEN_GLOW_GAMMA = "1.500000"
HSM_REFLECT_FADE_AMOUNT = "20.0000"
HSM_REFLECT_RADIAL_FADE_WIDTH = "500.000000"
HSM_REFLECT_RADIAL_FADE_HEIGHT = "300.000000"
HSM_REFLECT_LATERAL_OUTER_FADE_POSITION = "500.000000"
HSM_REFLECT_CORNER_FADE = "0.000000"
HSM_REFLECT_BLUR_MIN = "30.0000"
HSM_REFLECT_BLUR_MAX = "60.0000"
HSM_REFLECT_NOISE_AMOUNT = "100.000000"
HSM_REFLECT_NOISE_SAMPLES = "4.000000"
HSM_REFLECT_NOISE_SAMPLE_DISTANCE = "15.0000"
HSM_REFLECT_NOISE_SAMPLE_DISTANCE = "15.0000"
HSM_BG_BRIGHTNESS = "0.000000"
HSM_SCREEN_VIGNETTE_STRENGTH = "20.000000"
HSM_SCREEN_VIGNETTE_POWER = "4.000000"
HSM_SCREEN_VIGNETTE_IN_REFLECTION = "0.000000"

g_vignette = "0.0"

# SMOOTH-ADV Parameters
SGPT_BLEND_OPTION = 1

HSM_SCALEFX_ON = 1

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 = 30

# Lottes mask, a bit like a slot mask effect
shadowMask = 1
mask_bloom = 0.3

# Mask Size is Auto, so it will look the same at 1080p and 4K
masksize = 0
