Mask in CRT Hyllian Glow is really low pitch for some reason

The mask in CRT Hyllian Glow is really low pitch for some reason. It’s two pixels magenta, two pixels green, two pixels magenta, two pixels green, etc, which doesn’t look right at all. In every other shader, including the regular version of CRT-Hyllian, the magenta/green mask is one pixel magenta, one pixel green, which works perfectly.

Can someone please fix this if it isn’t intentional? Otherwise, it’d be awesome if someone could add an option for adjusting the mask size. :smiley:

Looks okay here. Have you updated to the latest shaders? There was some stuff changed lately that messed up a lot of mask effects temporarily but it should all be fixed now.

1 Like

Just updated my shaders; still getting the same result. Here’s what it looks like, default settings:

The magenta-green mask effect looks fine in CRT-Geom, CRT-Aperture, CRT-Easymode and regular CRT-Hyllian. It’s just Hyllian-Glow that looks low pitch for some reason.

Looks like Hyllian put the mask code in the CRT pass, which has scaling occurring after it. The way to fix it would be to put the mask code in the last pass, where it scales to the actual pixels.

Does it fix it if you replace the two shaders in the crt-hyllian-glow directory with these shaders:

#version 130

/*
   Hyllian's CRT Shader
  
   Copyright (C) 2011-2015 Hyllian - [email protected]

   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
   in the Software without restriction, including without limitation the rights
   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   copies of the Software, and to permit persons to whom the Software is
   furnished to do so, subject to the following conditions:

   The above copyright notice and this permission notice shall be included in
   all copies or substantial portions of the Software.

   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   THE SOFTWARE.

*/

#pragma parameter PHOSPHOR "CRT - Phosphor ON/OFF" 0.0 0.0 1.0 1.0
#pragma parameter VSCANLINES "CRT - Scanlines Direction" 0.0 0.0 1.0 1.0
#pragma parameter InputGamma "CRT - Input gamma" 2.2 0.0 5.0 0.1
#pragma parameter OutputGamma "CRT - Output Gamma" 2.2 0.0 5.0 0.1
#pragma parameter SHARPNESS "CRT - Sharpness Hack" 2.0 1.0 5.0 1.0
#pragma parameter COLOR_BOOST "CRT - Color Boost" 1.3 1.0 2.0 0.05
#pragma parameter RED_BOOST "CRT - Red Boost" 1.0 1.0 2.0 0.01
#pragma parameter GREEN_BOOST "CRT - Green Boost" 1.0 1.0 2.0 0.01
#pragma parameter BLUE_BOOST "CRT - Blue Boost" 1.0 1.0 2.0 0.01
#pragma parameter SCANLINES_STRENGTH "CRT - Scanline Strength" 1.0 0.0 1.0 0.02
#pragma parameter BEAM_MIN_WIDTH "CRT - Min Beam Width" 0.60 0.0 1.0 0.02
#pragma parameter BEAM_MAX_WIDTH "CRT - Max Beam Width" 0.80 0.0 1.0 0.02
#pragma parameter CRT_ANTI_RINGING "CRT - Anti-Ringing" 0.8 0.0 1.0 0.1

#define GAMMA_IN(color)     pow(color, vec3(InputGamma, InputGamma, InputGamma))
#define GAMMA_OUT(color)    pow(color, vec3(1.0 / OutputGamma, 1.0 / OutputGamma, 1.0 / OutputGamma))

// Horizontal cubic filter.

// Some known filters use these values:

//    B = 0.0, C = 0.0  =>  Hermite cubic filter.
//    B = 1.0, C = 0.0  =>  Cubic B-Spline filter.
//    B = 0.0, C = 0.5  =>  Catmull-Rom Spline filter. This is the default used in this shader.
//    B = C = 1.0/3.0   =>  Mitchell-Netravali cubic filter.
//    B = 0.3782, C = 0.3109  =>  Robidoux filter.
//    B = 0.2620, C = 0.3690  =>  Robidoux Sharp filter.
//    B = 0.36, C = 0.28  =>  My best config for ringing elimination in pixel art (Hyllian).

// For more info, see: http://www.imagemagick.org/Usage/img_diagrams/cubic_survey.gif

#if defined(VERTEX)

#if __VERSION__ >= 130
#define COMPAT_VARYING out
#define COMPAT_ATTRIBUTE in
#define COMPAT_TEXTURE texture
#else
#define COMPAT_VARYING varying 
#define COMPAT_ATTRIBUTE attribute 
#define COMPAT_TEXTURE texture2D
#endif

#ifdef GL_ES
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif

COMPAT_ATTRIBUTE vec4 VertexCoord;
COMPAT_ATTRIBUTE vec4 COLOR;
COMPAT_ATTRIBUTE vec4 TexCoord;
COMPAT_VARYING vec4 COL0;
COMPAT_VARYING vec4 TEX0;

vec4 _oPosition1; 
uniform mat4 MVPMatrix;
uniform COMPAT_PRECISION int FrameDirection;
uniform COMPAT_PRECISION int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;

// compatibility #defines
#define vTexCoord TEX0.xy
#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
#define OutSize vec4(OutputSize, 1.0 / OutputSize)

#ifdef PARAMETER_UNIFORM
uniform COMPAT_PRECISION float PHOSPHOR;
uniform COMPAT_PRECISION float VSCANLINES;
uniform COMPAT_PRECISION float InputGamma;
uniform COMPAT_PRECISION float OutputGamma;
uniform COMPAT_PRECISION float SHARPNESS;
uniform COMPAT_PRECISION float COLOR_BOOST;
uniform COMPAT_PRECISION float RED_BOOST;
uniform COMPAT_PRECISION float GREEN_BOOST;
uniform COMPAT_PRECISION float BLUE_BOOST;
uniform COMPAT_PRECISION float SCANLINES_STRENGTH;
uniform COMPAT_PRECISION float BEAM_MIN_WIDTH;
uniform COMPAT_PRECISION float BEAM_MAX_WIDTH;
uniform COMPAT_PRECISION float CRT_ANTI_RINGING;
#else
#define PHOSPHOR 0.0
#define VSCANLINES 0.0
#define InputGamma 2.2
#define OutputGamma 2.2
#define SHARPNESS 2.0
#define COLOR_BOOST 1.3
#define RED_BOOST 1.0
#define GREEN_BOOST 1.0
#define BLUE_BOOST 1.0
#define SCANLINES_STRENGTH 1.0
#define BEAM_MIN_WIDTH 0.60
#define BEAM_MAX_WIDTH 0.80
#define CRT_ANTI_RINGING 0.8
#endif

void main()
{
    gl_Position = MVPMatrix * VertexCoord;
    TEX0.xy = TexCoord.xy;
}

#elif defined(FRAGMENT)

#ifdef GL_ES
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif

#if __VERSION__ >= 130
#define COMPAT_VARYING in
#define COMPAT_TEXTURE texture
out COMPAT_PRECISION vec4 FragColor;
#else
#define COMPAT_VARYING varying
#define FragColor gl_FragColor
#define COMPAT_TEXTURE texture2D
#endif

uniform COMPAT_PRECISION int FrameDirection;
uniform COMPAT_PRECISION int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;
uniform sampler2D Texture;
COMPAT_VARYING vec4 TEX0;

// compatibility #defines
#define Source Texture
#define vTexCoord TEX0.xy

#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
#define OutSize vec4(OutputSize, 1.0 / OutputSize)

#ifdef PARAMETER_UNIFORM
uniform COMPAT_PRECISION float PHOSPHOR;
uniform COMPAT_PRECISION float VSCANLINES;
uniform COMPAT_PRECISION float InputGamma;
uniform COMPAT_PRECISION float OutputGamma;
uniform COMPAT_PRECISION float SHARPNESS;
uniform COMPAT_PRECISION float COLOR_BOOST;
uniform COMPAT_PRECISION float RED_BOOST;
uniform COMPAT_PRECISION float GREEN_BOOST;
uniform COMPAT_PRECISION float BLUE_BOOST;
uniform COMPAT_PRECISION float SCANLINES_STRENGTH;
uniform COMPAT_PRECISION float BEAM_MIN_WIDTH;
uniform COMPAT_PRECISION float BEAM_MAX_WIDTH;
uniform COMPAT_PRECISION float CRT_ANTI_RINGING;
#else
#define PHOSPHOR 0.0
#define VSCANLINES 0.0
#define InputGamma 2.2
#define OutputGamma 2.2
#define SHARPNESS 2.0
#define COLOR_BOOST 1.3
#define RED_BOOST 1.0
#define GREEN_BOOST 1.0
#define BLUE_BOOST 1.0
#define SCANLINES_STRENGTH 1.0
#define BEAM_MIN_WIDTH 0.60
#define BEAM_MAX_WIDTH 0.80
#define CRT_ANTI_RINGING 0.8
#endif

// Change these params to configure the horizontal filter.
float  B =  0.0; 
float  C =  0.5;  

mat4 invX = mat4(
	(-B - 6.0*C)/6.0, (3.0*B + 12.0*C)/6.0, (-3.0*B - 6.0*C)/6.0, B/6.0,
	(12.0 - 9.0*B - 6.0*C)/6.0, (-18.0 + 12.0*B + 6.0*C)/6.0, 0.0, (6.0 - 2.0*B)/6.0,
   -(12.0 - 9.0*B - 6.0*C)/6.0, (18.0 - 15.0*B - 12.0*C)/6.0, (3.0*B + 6.0*C)/6.0, B/6.0,
	(B + 6.0*C)/6.0, -C, 0.0, 0.0
);

void main()
{
    vec3 color;

    vec2 TexSize = vec2(SHARPNESS*SourceSize.x, SourceSize.y);

    vec2 dx = mix(vec2(1.0/TexSize.x, 0.0), vec2(0.0, 1.0/TexSize.y), VSCANLINES);
    vec2 dy = mix(vec2(0.0, 1.0/TexSize.y), vec2(1.0/TexSize.x, 0.0), VSCANLINES);

    vec2 pix_coord = vTexCoord*TexSize + vec2(-0.5, 0.5);

    vec2 tc = mix((floor(pix_coord) + vec2(0.5, 0.5))/TexSize, (floor(pix_coord) + vec2(1.0, -0.5))/TexSize, VSCANLINES);

    vec2 fp = mix(fract(pix_coord), fract(pix_coord.yx), VSCANLINES);

    vec3 c00 = GAMMA_IN(COMPAT_TEXTURE(Source, tc     - dx - dy).xyz);
    vec3 c01 = GAMMA_IN(COMPAT_TEXTURE(Source, tc          - dy).xyz);
    vec3 c02 = GAMMA_IN(COMPAT_TEXTURE(Source, tc     + dx - dy).xyz);
    vec3 c03 = GAMMA_IN(COMPAT_TEXTURE(Source, tc + 2.0*dx - dy).xyz);
    vec3 c10 = GAMMA_IN(COMPAT_TEXTURE(Source, tc     - dx     ).xyz);
    vec3 c11 = GAMMA_IN(COMPAT_TEXTURE(Source, tc              ).xyz);
    vec3 c12 = GAMMA_IN(COMPAT_TEXTURE(Source, tc     + dx     ).xyz);
    vec3 c13 = GAMMA_IN(COMPAT_TEXTURE(Source, tc + 2.0*dx     ).xyz);

    // Get min/max samples
    vec3 min_sample = min(min(c01, c11), min(c02, c12));
    vec3 max_sample = max(max(c01, c11), max(c02, c12));

    mat4x3 color_matrix0 = mat4x3(c00, c01, c02, c03);
    mat4x3 color_matrix1 = mat4x3(c10, c11, c12, c13);
    
    vec4 invX_Px    = vec4(fp.x*fp.x*fp.x, fp.x*fp.x, fp.x, 1.0) * invX;
    vec3 color0     = color_matrix0 * invX_Px;
    vec3 color1     = color_matrix1 * invX_Px;

    // Anti-ringing
    vec3 aux    = color0;
    color0      = clamp(color0, min_sample, max_sample);
    color0      = mix(aux, color0, CRT_ANTI_RINGING);
    aux         = color1;
    color1      = clamp(color1, min_sample, max_sample);
    color1      = mix(aux, color1, CRT_ANTI_RINGING);

    float pos0 = fp.y;
    float pos1 = 1 - fp.y;

    vec3 lum0 = mix(vec3(BEAM_MIN_WIDTH), vec3(BEAM_MAX_WIDTH), color0);
    vec3 lum1 = mix(vec3(BEAM_MIN_WIDTH), vec3(BEAM_MAX_WIDTH), color1);

    vec3 d0 = clamp(pos0/(lum0 + 0.0000001), 0.0, 1.0);
    vec3 d1 = clamp(pos1/(lum1 + 0.0000001), 0.0, 1.0);

    d0 = exp(-10.0*SCANLINES_STRENGTH*d0*d0);
    d1 = exp(-10.0*SCANLINES_STRENGTH*d1*d1);

    color = clamp(color0*d0 + color1*d1, 0.0, 1.0);            

    color *= COLOR_BOOST*vec3(RED_BOOST, GREEN_BOOST, BLUE_BOOST);

    color  = GAMMA_OUT(color);

FragColor = vec4(color, 1.0);
} 
#endif

and

// version directive if necessary

// good place for credits/license

#pragma parameter BLOOM_STRENGTH "Bloom Strength" 0.45 0.0 1.0 0.01
#pragma parameter SOURCE_BOOST "Bloom Color Boost" 1.15 1.0 1.3 0.01

#define INV_OUTPUT_GAMMA (1.0 / 2.2)
#define saturate(c) clamp(c, 0.0, 1.0)

#if defined(VERTEX)

#if __VERSION__ >= 130
#define COMPAT_VARYING out
#define COMPAT_ATTRIBUTE in
#define COMPAT_TEXTURE texture
#else
#define COMPAT_VARYING varying 
#define COMPAT_ATTRIBUTE attribute 
#define COMPAT_TEXTURE texture2D
#endif

#ifdef GL_ES
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif

COMPAT_ATTRIBUTE vec4 VertexCoord;
COMPAT_ATTRIBUTE vec4 COLOR;
COMPAT_ATTRIBUTE vec4 TexCoord;
COMPAT_VARYING vec4 COL0;
COMPAT_VARYING vec4 TEX0;

vec4 _oPosition1; 
uniform mat4 MVPMatrix;
uniform COMPAT_PRECISION int FrameDirection;
uniform COMPAT_PRECISION int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;

// compatibility #defines
#define vTexCoord TEX0.xy
#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
#define OutSize vec4(OutputSize, 1.0 / OutputSize)

#ifdef PARAMETER_UNIFORM
uniform COMPAT_PRECISION float BLOOM_STRENGTH;
uniform COMPAT_PRECISION float SOURCE_BOOST;
#else
#define BLOOM_STRENGTH 0.45
#define SOURCE_BOOST 1.15
#endif

void main()
{
    gl_Position = MVPMatrix * VertexCoord;
    TEX0.xy = TexCoord.xy;
}

#elif defined(FRAGMENT)

#ifdef GL_ES
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif

#if __VERSION__ >= 130
#define COMPAT_VARYING in
#define COMPAT_TEXTURE texture
out COMPAT_PRECISION vec4 FragColor;
#else
#define COMPAT_VARYING varying
#define FragColor gl_FragColor
#define COMPAT_TEXTURE texture2D
#endif

uniform COMPAT_PRECISION int FrameDirection;
uniform COMPAT_PRECISION int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;
uniform sampler2D Texture;
uniform sampler2D Pass2Texture;
#define CRT_PASS Pass2Texture
COMPAT_VARYING vec4 TEX0;

// compatibility #defines
#define Source Texture
#define vTexCoord TEX0.xy

#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
#define OutSize vec4(OutputSize, 1.0 / OutputSize)

#ifdef PARAMETER_UNIFORM
uniform COMPAT_PRECISION float BLOOM_STRENGTH;
uniform COMPAT_PRECISION float SOURCE_BOOST, VSCANLINES, PHOSPHOR;
#else
#define BLOOM_STRENGTH 0.45
#define SOURCE_BOOST 1.15
#define VSCANLINES 0.0
#define PHOSPHOR 0.0
#endif

void main()
{
	vec3 source = SOURCE_BOOST * COMPAT_TEXTURE(CRT_PASS, vTexCoord).rgb;
	vec3 bloom = COMPAT_TEXTURE(Source, vTexCoord).rgb;
	source += BLOOM_STRENGTH * bloom;
   vec2 fragcoord = (vTexCoord.xy * TextureSize / InputSize) * OutputSize.xy;
       float mod_factor = mix(fragcoord.x, fragcoord.y, VSCANLINES);

    vec3 dotMaskWeights = mix(
        vec3(1.0, 0.7, 1.0),
        vec3(0.7, 1.0, 0.7),
        floor(mod(mod_factor, 2.0))
    );
FragColor = vec4(pow(saturate(source), vec3(INV_OUTPUT_GAMMA,INV_OUTPUT_GAMMA,INV_OUTPUT_GAMMA)), 1.0);
FragColor.rgb *= mix(vec3(1.0), dotMaskWeights, PHOSPHOR);
} 
#endif
2 Likes

Hmm, I can’t get the preset to load. Here’s the log:

[INFO] RetroArch 1.7.6 (Git 9750719074)
[INFO] === Build =======================================
[INFO] Version: 1.7.6
[INFO] Git: 9750719074
[INFO] =================================================
[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[INFO] Redirecting save file to "C:\Program Files\RetroArch\saves\.srm".
[INFO] Redirecting savestate to "C:\Program Files\RetroArch\states\.state".
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 30000.00 Hz.
[INFO] [Video]: Video @ fullscreen
[INFO] [GL]: Found GL context: wgl
[INFO] [GL]: Detecting screen resolution 1920x1080.
[INFO] Setting fullscreen to 1920x1080 @ 120Hz on device \\.\DISPLAY1.
[INFO] [WGL] extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_no_error WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_context_flush_control WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_colorspace WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_copy_image WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle 
[INFO] [WGL]: Adaptive VSync supported.
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: Vendor: NVIDIA Corporation, Renderer: GeForce GTX 1050/PCIe/SSE2.
[INFO] [GL]: Version: 4.6.0 NVIDIA 430.39.
[INFO] [GL]: Using ARB_sync to reduce latency.
[INFO] [GL]: Using resolution 1920x1080
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ... 
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Resetting shader to defaults ... 
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [GL]: Using GL_RGB565 for texture uploads.
[INFO] [XInput]: Found XInput v1.3.
[INFO] [XInput]: Found controller, user #0
[INFO] [XInput]: Pads connected: 1
[INFO] [DINPUT]: Enumerating joypads ...
[INFO] [DINPUT]: Device #0 PID: {028E} VID:{045E}
[INFO] [DINPUT]: Done enumerating joypads ...
[INFO] [XInput]: Attempting autoconf for "XInput Controller (User 1)", user #0
[INFO] [DINPUT]: Found XInput pad at index 0 (DINPUT index 0)
[INFO] [XInput]: Found VID/PID (045E/028E) from DINPUT index 0 for "XInput Controller (User 1)", user #0
[INFO] [XInput]: Attempting autoconf for user #1
[INFO] [XInput]: Attempting autoconf for user #2
[INFO] [XInput]: Attempting autoconf for user #3
[INFO] [XInput]: Attempting autoconf for user #4
[INFO] [XInput]: Attempting autoconf for user #5
[INFO] [XInput]: Attempting autoconf for user #6
[INFO] [XInput]: Attempting autoconf for user #7
[INFO] [XInput]: Attempting autoconf for user #8
[INFO] [XInput]: Attempting autoconf for user #9
[INFO] [XInput]: Attempting autoconf for user #10
[INFO] [XInput]: Attempting autoconf for user #11
[INFO] [XInput]: Attempting autoconf for user #12
[INFO] [XInput]: Attempting autoconf for user #13
[INFO] [XInput]: Attempting autoconf for user #14
[INFO] [XInput]: Attempting autoconf for user #15
[INFO] [Joypad]: Found joypad driver: "xinput".
[INFO] [Autoconf]: 124 profiles found.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Video]: Found display server: win32
[INFO] Found shader "C:\Program Files\RetroArch\shaders\aperture.glslp"
[INFO] Found shader "C:\Program Files\RetroArch\shaders\geom.glslp"
[INFO] Found shader "C:\Program Files\RetroArch\shaders\retroarch.glslp"
[INFO] XAudio2: Requesting 64 ms latency, using 64 ms latency.
[INFO] [autoconf]: selected configuration: C:\Program Files\RetroArch\autoconfig\xinput\XInput_Controller_User_1.cfg
[INFO] [Menu]: Found menu display driver: "gl".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [LED]: LED driver = 'null' 0000000000A299E0
[INFO] [MIDI]: Initializing ...
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "winmm" driver.
[INFO] SRAM will not be saved.
[INFO] Loading history file: [C:\Program Files\RetroArch\content_history.lpl].
[INFO] Loading history file: [C:\Program Files\RetroArch\content_favorites.lpl].
[INFO] Loading history file: [C:\Program Files\RetroArch\content_music_history.lpl].
[INFO] Loading history file: [C:\Program Files\RetroArch\content_video_history.lpl].
[INFO] Loading history file: [C:\Program Files\RetroArch\content_image_history.lpl].
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [GL]: VSync => on
[INFO] [WGL]: wglSwapInterval(1)
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] Using content: C:\Program Files\RetroArch\roms\snes\240pSuite.sfc.
[INFO] arg #0: retroarch
[INFO] arg #1: C:\Program Files\RetroArch\roms\snes\240pSuite.sfc
[INFO] arg #2: -s
[INFO] arg #3: C:\Program Files\RetroArch\saves
[INFO] arg #4: -S
[INFO] arg #5: C:\Program Files\RetroArch\states
[INFO] arg #6: -c
[INFO] arg #7: C:\Program Files\RetroArch\retroarch.cfg
[INFO] arg #8: -L
[INFO] arg #9: C:\Program Files\RetroArch\cores\snes9x2010_libretro.dll
[INFO] Unloading game..
[INFO] Unloading core..
[INFO] Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] Set config file to : C:\Program Files\RetroArch\retroarch.cfg
[INFO] RetroArch 1.7.6 (Git 9750719074)
[INFO] Redirecting save file to "C:\Program Files\RetroArch\saves\240pSuite.srm".
[INFO] Redirecting savestate to "C:\Program Files\RetroArch\states\240pSuite.state".
[INFO] === Build =======================================
[INFO] Version: 1.7.6
[INFO] Git: 9750719074
[INFO] =================================================
[INFO] Loading dynamic libretro core from: "C:\Program Files\RetroArch\cores\snes9x2010_libretro.dll"
[INFO] [overrides] core-specific overrides found at C:\Program Files\RetroArch\config\Snes9x 2010\Snes9x 2010.cfg.
[INFO] [overrides] no content-dir-specific overrides found at C:\Program Files\RetroArch\config\Snes9x 2010\snes.cfg.
[INFO] [overrides] no game-specific overrides found at C:\Program Files\RetroArch\config\Snes9x 2010\240pSuite.cfg.
[INFO] Config: appending config "C:\Program Files\RetroArch\config\Snes9x 2010\Snes9x 2010.cfg"
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[INFO] Found #pragma parameter Input Gamma (INPUT_GAMMA) 2.400000 2.000000 2.600000 0.020000 in pass 0
[INFO] Found #pragma parameter CRT - Phosphor ON/OFF (PHOSPHOR) 0.000000 0.000000 1.000000 1.000000 in pass 1
[INFO] Found #pragma parameter CRT - Scanlines Direction (VSCANLINES) 0.000000 0.000000 1.000000 1.000000 in pass 1
[INFO] Found #pragma parameter CRT - Input gamma (InputGamma) 2.200000 0.000000 5.000000 0.100000 in pass 1
[INFO] Found #pragma parameter CRT - Output Gamma (OutputGamma) 2.200000 0.000000 5.000000 0.100000 in pass 1
[INFO] Found #pragma parameter CRT - Sharpness Hack (SHARPNESS) 2.000000 1.000000 5.000000 1.000000 in pass 1
[INFO] Found #pragma parameter CRT - Color Boost (COLOR_BOOST) 1.300000 1.000000 2.000000 0.050000 in pass 1
[INFO] Found #pragma parameter CRT - Red Boost (RED_BOOST) 1.000000 1.000000 2.000000 0.010000 in pass 1
[INFO] Found #pragma parameter CRT - Green Boost (GREEN_BOOST) 1.000000 1.000000 2.000000 0.010000 in pass 1
[INFO] Found #pragma parameter CRT - Blue Boost (BLUE_BOOST) 1.000000 1.000000 2.000000 0.010000 in pass 1
[INFO] Found #pragma parameter CRT - Scanline Strength (SCANLINES_STRENGTH) 1.000000 0.000000 1.000000 0.020000 in pass 1
[INFO] Found #pragma parameter CRT - Min Beam Width (BEAM_MIN_WIDTH) 0.600000 0.000000 1.000000 0.020000 in pass 1
[INFO] Found #pragma parameter CRT - Max Beam Width (BEAM_MAX_WIDTH) 0.800000 0.000000 1.000000 0.020000 in pass 1
[INFO] Found #pragma parameter CRT - Anti-Ringing (CRT_ANTI_RINGING) 0.800000 0.000000 1.000000 0.100000 in pass 1
[INFO] Found #pragma parameter Glow Whitepoint (GLOW_WHITEPOINT) 1.000000 0.500000 1.100000 0.020000 in pass 2
[INFO] Found #pragma parameter Glow Rolloff (GLOW_ROLLOFF) 3.000000 1.200000 6.000000 0.100000 in pass 2
[INFO] Found #pragma parameter Bloom Strength (BLOOM_STRENGTH) 0.450000 0.000000 1.000000 0.010000 in pass 5
[INFO] Found #pragma parameter Bloom Color Boost (SOURCE_BOOST) 1.150000 1.000000 1.300000 0.010000 in pass 5
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Using GLSL version 130.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Using GLSL version 130.
[INFO] Shader log: 0(274) : error C1503: undefined variable "dotMaskWeights"

[ERROR] Failed to compile fragment shader #1
[ERROR] Failed to link program #1.
[ERROR] Failed to create GL program #1.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ... 
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Resetting shader to defaults ... 
[WARN] [GL]: Failed to set multipass shader. Falling back to stock.

Sorry, my mistake. I edited them so they should work now.

1 Like

Yep, that did it! Looks great now :smiley: I think this is what Hyllian actually intended.

Phosphor enabled, everything else default:

3 Likes

Oh wow, that phosphor looks amazing!