Open 0wwafa opened 2 weeks ago
you can prepend the 'glow trails' shader (put this into a text file in your 'shaders_slang' directory and name it 'royale-glow-trails.slangp':
shaders = "17"
feedback_pass = "0"
shader0 = "stock.slang"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "glow_trails_refpass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "crt/shaders/glow-trails/glow-trails0.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "Trails0"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "blurs/shaders/royale/blur9fast-vertical.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "blurs/shaders/royale/blur9fast-horizontal.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "TRAIL_BLUR"
float_framebuffer3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "crt/shaders/glow-trails/glow-trails1.slang"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
shader5 = "crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
filter_linear5 = "false"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "ORIG_LINEARIZED"
float_framebuffer5 = "false"
srgb_framebuffer5 = "true"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = "VERTICAL_SCANLINES"
float_framebuffer6 = "false"
srgb_framebuffer6 = "true"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "viewport"
scale_y6 = "1.000000"
shader7 = "crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "BLOOM_APPROX"
float_framebuffer7 = "false"
srgb_framebuffer7 = "true"
scale_type_x7 = "absolute"
scale_x7 = "320"
scale_type_y7 = "absolute"
scale_y7 = "240"
shader8 = "blurs/shaders/royale/blur9fast-vertical.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "true"
scale_type_x8 = "source"
scale_x8 = "1.000000"
scale_type_y8 = "source"
scale_y8 = "1.000000"
shader9 = "blurs/shaders/royale/blur9fast-horizontal.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = "HALATION_BLUR"
float_framebuffer9 = "false"
srgb_framebuffer9 = "true"
scale_type_x9 = "source"
scale_x9 = "1.000000"
scale_type_y9 = "source"
scale_y9 = "1.000000"
shader10 = "crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "absolute"
scale_x10 = "64"
scale_type_y10 = "viewport"
scale_y10 = "0.062500"
shader11 = "crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
filter_linear11 = "false"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = "MASK_RESIZE"
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "viewport"
scale_x11 = "0.062500"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = "MASKED_SCANLINES"
float_framebuffer12 = "false"
srgb_framebuffer12 = "true"
scale_type_x12 = "viewport"
scale_x12 = "1.000000"
scale_type_y12 = "viewport"
scale_y12 = "1.000000"
shader13 = "crt/shaders/crt-royale/src/crt-royale-brightpass.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "BRIGHTPASS"
float_framebuffer13 = "false"
srgb_framebuffer13 = "true"
scale_type_x13 = "viewport"
scale_x13 = "1.000000"
scale_type_y13 = "viewport"
scale_y13 = "1.000000"
shader14 = "crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
filter_linear14 = "true"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = ""
float_framebuffer14 = "false"
srgb_framebuffer14 = "true"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
filter_linear15 = "true"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "false"
srgb_framebuffer15 = "true"
scale_type_x15 = "source"
scale_x15 = "1.000000"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
filter_linear16 = "true"
wrap_mode16 = "clamp_to_edge"
mipmap_input16 = "true"
alias16 = ""
float_framebuffer16 = "false"
srgb_framebuffer16 = "false"
scale_type_x16 = "viewport"
scale_x16 = "1.000000"
scale_type_y16 = "viewport"
scale_y16 = "1.000000"
trail_bright = "0.150000"
textures = "mask_grille_texture_small;mask_grille_texture_large;mask_slot_texture_small;mask_slot_texture_large;mask_shadow_texture_small;mask_shadow_texture_large"
mask_grille_texture_small = "crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5SpacingResizeTo64.png"
mask_grille_texture_small_wrap_mode = "clamp_to_border"
mask_grille_texture_small_mipmap = "false"
mask_grille_texture_large = "crt/shaders/crt-royale/TileableLinearApertureGrille15Wide8And5d5Spacing.png"
mask_grille_texture_large_wrap_mode = "clamp_to_border"
mask_grille_texture_large_mipmap = "false"
mask_slot_texture_small = "crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacingResizeTo64.png"
mask_slot_texture_small_wrap_mode = "clamp_to_border"
mask_slot_texture_small_mipmap = "false"
mask_slot_texture_large = "crt/shaders/crt-royale/TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing.png"
mask_slot_texture_large_wrap_mode = "clamp_to_border"
mask_slot_texture_large_mipmap = "false"
mask_shadow_texture_small = "crt/shaders/crt-royale/TileableLinearShadowMaskEDPResizeTo64.png"
mask_shadow_texture_small_wrap_mode = "clamp_to_border"
mask_shadow_texture_small_mipmap = "false"
mask_shadow_texture_large = "crt/shaders/crt-royale/TileableLinearShadowMaskEDP.png"
mask_shadow_texture_large_wrap_mode = "clamp_to_border"
mask_shadow_texture_large_mipmap = "false"
I think these are the two best shaders for CRT emulation. But There is a small problem.
CRT GEOM DELUXE supports the phosphor persistence while the royale does not.
It would be nice to add it to the ROYALE.