diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-bgr.glsl b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-bgr.glsl new file mode 100644 index 00000000..c719bbec --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-bgr.glsl @@ -0,0 +1,126 @@ +/* + * sharp-shimmerless-bgr + * Author: zadpos + * License: Public domain + * + * Sharp-Shimmerless shader for BGR subpixels + */ + +#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; + +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; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#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 + +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; + +void main() +{ + vec2 pixel_xy = TEX0.xy * OutputSize * TextureSize / InputSize; + vec4 pixel_floored, pixel_ceiled; + pixel_floored = floor(pixel_xy).xxxy; + pixel_floored.x -= 0.33; + pixel_floored.z += 0.33; + pixel_ceiled = ceil(pixel_xy).xxxy; + pixel_ceiled.x -= 0.33; + pixel_ceiled.z += 0.33; + + vec4 scale = OutputSize.xxxy / InputSize.xxxy; + vec4 invscale = InputSize.xxxy / OutputSize.xxxy; + + vec4 texel_floored = floor(invscale * pixel_floored); + vec4 texel_ceiled = floor(invscale * pixel_ceiled); + + vec4 mod_texel; + + if (texel_floored.x == texel_ceiled.x) { + mod_texel.x = texel_ceiled.x + 0.5; + } else { + mod_texel.x = texel_ceiled.x + 0.5 - (scale.x * texel_ceiled.x - pixel_floored.x); + } + + if (texel_floored.y == texel_ceiled.y) { + mod_texel.y = texel_ceiled.y + 0.5; + } else { + mod_texel.y = texel_ceiled.y + 0.5 - (scale.y * texel_ceiled.y - pixel_floored.y); + } + + if (texel_floored.z == texel_ceiled.z) { + mod_texel.z = texel_ceiled.z + 0.5; + } else { + mod_texel.z = texel_ceiled.z + 0.5 - (scale.z * texel_ceiled.z - pixel_floored.z); + } + + if (texel_floored.w == texel_ceiled.w) { + mod_texel.w = texel_ceiled.w + 0.5; + } else { + mod_texel.w = texel_ceiled.w + 0.5 - (scale.w * texel_ceiled.w - pixel_floored.w); + } + + FragColor.b = COMPAT_TEXTURE(Texture, mod_texel.xw / TextureSize).b; + FragColor.g = COMPAT_TEXTURE(Texture, mod_texel.yw / TextureSize).g; + FragColor.r = COMPAT_TEXTURE(Texture, mod_texel.zw / TextureSize).r; + FragColor.a = 1.0; +} +#endif diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-rgb.glsl b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-rgb.glsl new file mode 100644 index 00000000..0ea7b6dd --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-rgb.glsl @@ -0,0 +1,126 @@ +/* + * sharp-shimmerless-rgb + * Author: zadpos + * License: Public domain + * + * Sharp-Shimmerless shader for RGB subpixels + */ + +#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; + +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; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#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 + +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; + +void main() +{ + vec2 pixel_xy = TEX0.xy * OutputSize * TextureSize / InputSize; + vec4 pixel_floored, pixel_ceiled; + pixel_floored = floor(pixel_xy).xxxy; + pixel_floored.x -= 0.33; + pixel_floored.z += 0.33; + pixel_ceiled = ceil(pixel_xy).xxxy; + pixel_ceiled.x -= 0.33; + pixel_ceiled.z += 0.33; + + vec4 scale = OutputSize.xxxy / InputSize.xxxy; + vec4 invscale = InputSize.xxxy / OutputSize.xxxy; + + vec4 texel_floored = floor(invscale * pixel_floored); + vec4 texel_ceiled = floor(invscale * pixel_ceiled); + + vec4 mod_texel; + + if (texel_floored.x == texel_ceiled.x) { + mod_texel.x = texel_ceiled.x + 0.5; + } else { + mod_texel.x = texel_ceiled.x + 0.5 - (scale.x * texel_ceiled.x - pixel_floored.x); + } + + if (texel_floored.y == texel_ceiled.y) { + mod_texel.y = texel_ceiled.y + 0.5; + } else { + mod_texel.y = texel_ceiled.y + 0.5 - (scale.y * texel_ceiled.y - pixel_floored.y); + } + + if (texel_floored.z == texel_ceiled.z) { + mod_texel.z = texel_ceiled.z + 0.5; + } else { + mod_texel.z = texel_ceiled.z + 0.5 - (scale.z * texel_ceiled.z - pixel_floored.z); + } + + if (texel_floored.w == texel_ceiled.w) { + mod_texel.w = texel_ceiled.w + 0.5; + } else { + mod_texel.w = texel_ceiled.w + 0.5 - (scale.w * texel_ceiled.w - pixel_floored.w); + } + + FragColor.r = COMPAT_TEXTURE(Texture, mod_texel.xw / TextureSize).r; + FragColor.g = COMPAT_TEXTURE(Texture, mod_texel.yw / TextureSize).g; + FragColor.b = COMPAT_TEXTURE(Texture, mod_texel.zw / TextureSize).b; + FragColor.a = 1.0; +} +#endif diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vbgr.glsl b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vbgr.glsl new file mode 100644 index 00000000..88206fa9 --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vbgr.glsl @@ -0,0 +1,125 @@ +/* + * sharp-shimmerless-vbgr + * Author: zadpos + * License: Public domain + * + * Sharp-Shimmerless shader for v-BGR subpixels + */ + +#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; + +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; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#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 + +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; + +void main() +{ + vec2 pixel_xy = TEX0.xy * OutputSize * TextureSize / InputSize; + vec4 pixel_floored = floor(pixel_xy).xyyy; + pixel_floored.y -= 0.33; + pixel_floored.w += 0.33; + vec4 pixel_ceiled = ceil(pixel_xy).xyyy; + pixel_ceiled.y -= 0.33; + pixel_ceiled.w += 0.33; + + vec4 scale = OutputSize.xyyy / InputSize.xyyy; + vec4 invscale = InputSize.xyyy / OutputSize.xyyy; + + vec4 texel_floored = floor(invscale * pixel_floored); + vec4 texel_ceiled = floor(invscale * pixel_ceiled); + + vec4 mod_texel; + + if (texel_floored.x == texel_ceiled.x) { + mod_texel.x = texel_ceiled.x + 0.5; + } else { + mod_texel.x = texel_ceiled.x + 0.5 - (scale.x * texel_ceiled.x - pixel_floored.x); + } + + if (texel_floored.y == texel_ceiled.y) { + mod_texel.y = texel_ceiled.y + 0.5; + } else { + mod_texel.y = texel_ceiled.y + 0.5 - (scale.y * texel_ceiled.y - pixel_floored.y); + } + + if (texel_floored.z == texel_ceiled.z) { + mod_texel.z = texel_ceiled.z + 0.5; + } else { + mod_texel.z = texel_ceiled.z + 0.5 - (scale.z * texel_ceiled.z - pixel_floored.z); + } + + if (texel_floored.w == texel_ceiled.w) { + mod_texel.w = texel_ceiled.w + 0.5; + } else { + mod_texel.w = texel_ceiled.w + 0.5 - (scale.w * texel_ceiled.w - pixel_floored.w); + } + + FragColor.b = COMPAT_TEXTURE(Texture, mod_texel.xy / TextureSize).b; + FragColor.g = COMPAT_TEXTURE(Texture, mod_texel.xz / TextureSize).g; + FragColor.r = COMPAT_TEXTURE(Texture, mod_texel.xw / TextureSize).r; + FragColor.a = 1.0; +} +#endif diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vrgb.glsl b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vrgb.glsl new file mode 100644 index 00000000..724f4c69 --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless-vrgb.glsl @@ -0,0 +1,125 @@ +/* + * sharp-shimmerless-vrgb + * Author: zadpos + * License: Public domain + * + * Sharp-Shimmerless shader for v-RGB subpixels + */ + +#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; + +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; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#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 + +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; + +void main() +{ + vec2 pixel_xy = TEX0.xy * OutputSize * TextureSize / InputSize; + vec4 pixel_floored = floor(pixel_xy).xyyy; + pixel_floored.y -= 0.33; + pixel_floored.w += 0.33; + vec4 pixel_ceiled = ceil(pixel_xy).xyyy; + pixel_ceiled.y -= 0.33; + pixel_ceiled.w += 0.33; + + vec4 scale = OutputSize.xyyy / InputSize.xyyy; + vec4 invscale = InputSize.xyyy / OutputSize.xyyy; + + vec4 texel_floored = floor(invscale * pixel_floored); + vec4 texel_ceiled = floor(invscale * pixel_ceiled); + + vec4 mod_texel; + + if (texel_floored.x == texel_ceiled.x) { + mod_texel.x = texel_ceiled.x + 0.5; + } else { + mod_texel.x = texel_ceiled.x + 0.5 - (scale.x * texel_ceiled.x - pixel_floored.x); + } + + if (texel_floored.y == texel_ceiled.y) { + mod_texel.y = texel_ceiled.y + 0.5; + } else { + mod_texel.y = texel_ceiled.y + 0.5 - (scale.y * texel_ceiled.y - pixel_floored.y); + } + + if (texel_floored.z == texel_ceiled.z) { + mod_texel.z = texel_ceiled.z + 0.5; + } else { + mod_texel.z = texel_ceiled.z + 0.5 - (scale.z * texel_ceiled.z - pixel_floored.z); + } + + if (texel_floored.w == texel_ceiled.w) { + mod_texel.w = texel_ceiled.w + 0.5; + } else { + mod_texel.w = texel_ceiled.w + 0.5 - (scale.w * texel_ceiled.w - pixel_floored.w); + } + + FragColor.r = COMPAT_TEXTURE(Texture, mod_texel.xy / TextureSize).r; + FragColor.g = COMPAT_TEXTURE(Texture, mod_texel.xz / TextureSize).g; + FragColor.b = COMPAT_TEXTURE(Texture, mod_texel.xw / TextureSize).b; + FragColor.a = 1.0; +} +#endif diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless.glsl b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless.glsl new file mode 100644 index 00000000..695350b3 --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/shaders/sharp-shimmerless.glsl @@ -0,0 +1,111 @@ +/* + * sharp-shimmerless + * Author: zadpos + * License: Public domain + * + * A retro gaming shader for sharpest pixels with no aliasing/shimmering. + * Instead of pixels as point samples, this shader considers pixels as + * ideal rectangles forming a grid, and interpolates pixel by calculating + * the surface area an input pixel would occupy on an output pixel. + */ + +#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; + +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; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#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 + +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; + +void main() +{ + vec2 pixel = TEX0.xy * OutputSize * TextureSize / InputSize; + vec2 pixel_floored = floor(pixel); + vec2 pixel_ceiled = ceil(pixel); + vec2 scale = OutputSize / InputSize.xy; + vec2 invscale = InputSize.xy / OutputSize; + vec2 texel_floored = floor(invscale * pixel_floored); + vec2 texel_ceiled = floor(invscale * pixel_ceiled); + + vec2 mod_texel; + + if (texel_floored.x == texel_ceiled.x) { + // The square-pixel lies "completely in" a single column of square-texel + mod_texel.x = texel_ceiled.x + 0.5; + } else { + // The square-pixel lies across two neighboring columns and must be interpolated + mod_texel.x = texel_ceiled.x + 0.5 - (scale.x * texel_ceiled.x - pixel_floored.x); + } + + if (texel_floored.y == texel_ceiled.y) { + // The square-pixel lies "completely in" a single row of square-texel + mod_texel.y = texel_ceiled.y + 0.5; + } else { + // The square-pixel lies across two neighboring rows and must be interpolated + mod_texel.y = texel_ceiled.y + 0.5 - (scale.y * texel_ceiled.y - pixel_floored.y); + } + + FragColor = vec4(COMPAT_TEXTURE(Texture, mod_texel / TextureSize).rgb, 1.0); +} +#endif diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-bgr.glslp b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-bgr.glslp new file mode 100644 index 00000000..8dd6ebcc --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-bgr.glslp @@ -0,0 +1,4 @@ +shaders = 1 + +shader0 = shaders/sharp-shimmerless-bgr.glsl +filter_linear0 = true \ No newline at end of file diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-rgb.glslp b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-rgb.glslp new file mode 100644 index 00000000..f8f00146 --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-rgb.glslp @@ -0,0 +1,4 @@ +shaders = 1 + +shader0 = shaders/sharp-shimmerless-rgb.glsl +filter_linear0 = true \ No newline at end of file diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vbgr.glslp b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vbgr.glslp new file mode 100644 index 00000000..ca04e2bb --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vbgr.glslp @@ -0,0 +1,4 @@ +shaders = 1 + +shader0 = shaders/sharp-shimmerless-vbgr.glsl +filter_linear0 = true \ No newline at end of file diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vrgb.glslp b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vrgb.glslp new file mode 100644 index 00000000..2f3437de --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless-vrgb.glslp @@ -0,0 +1,4 @@ +shaders = 1 + +shader0 = shaders/sharp-shimmerless-vrgb.glsl +filter_linear0 = true \ No newline at end of file diff --git a/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless.glslp b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless.glslp new file mode 100644 index 00000000..8f9b7626 --- /dev/null +++ b/RetroArch/.retroarch/shaders/shaders_glsl/sharp-shimmerless/sharp-shimmerless.glslp @@ -0,0 +1,4 @@ +shaders = 1 + +shader0 = shaders/sharp-shimmerless.glsl +filter_linear0 = true \ No newline at end of file