mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-08-31 06:35:40 +02:00
Update to v095r02 release.
byuu says: Aspect correction is fixed now. Works way better than in v095 official. It's still force-enabled in fullscreen mode. The idea of disabling it is that it looks bad at 2x scale. But when you're fullscreen with a minimum of 4x scale, there's no reason not to enable it. It won't turn on at all for GB/C/A anymore. And I dropped the cute attempt at making the aspect prettier on 2560x1600 monitors, so it'll be the stock 8:7 across the board now for S/NES. Also, the aspect correction will affect the window even when a game's not loaded now, so the size won't bounce around as you change games in windowed mode between GB/C/A and S/NES. ... I also enhanced the ruby/glx driver. It won't crash if OpenGL 3.2 isn't available anymore (fails safely ... had to capture the Xlib error handler to suppress that), and it defaults to the MESA glXSwapInterval before the SGI version. Because apparently the MESA version defines the SGI version, but makes it a no-op. What. The. Fuck. right? But whatever, reordering the enumerations fixes the ability to toggle Vsync on AMD GPUs now. ... Video shaders are back again. If you are using the OpenGL driver, you'll see a "Video Shaders" menu beneath the "Video Filters" menu (couldn't merge it with the filters due to hiro now constructing menu ordering inside the header files. This works fine though.) You want either "higan.exe" + "Video Shaders/" or "~/.local/bin/tomoko" + "~/.local/tomoko/Video Shaders/"
This commit is contained in:
21
shaders/Curvature.shader/curvature.fs
Normal file
21
shaders/Curvature.shader/curvature.fs
Normal file
@@ -0,0 +1,21 @@
|
||||
#version 150
|
||||
#define distortion 0.2
|
||||
|
||||
uniform sampler2D source[];
|
||||
uniform vec4 sourceSize[];
|
||||
|
||||
in Vertex {
|
||||
vec2 texCoord;
|
||||
};
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
vec2 radialDistortion(vec2 coord) {
|
||||
vec2 cc = coord - vec2(0.5);
|
||||
float dist = dot(cc, cc) * distortion;
|
||||
return coord + cc * (1.0 - dist) * dist;
|
||||
}
|
||||
|
||||
void main() {
|
||||
fragColor = texture(source[0], radialDistortion(texCoord));
|
||||
}
|
4
shaders/Curvature.shader/manifest.bml
Normal file
4
shaders/Curvature.shader/manifest.bml
Normal file
@@ -0,0 +1,4 @@
|
||||
program
|
||||
filter: linear
|
||||
wrap: border
|
||||
fragment: curvature.fs
|
25
shaders/Edge Detection.shader/edge-detection.fs
Normal file
25
shaders/Edge Detection.shader/edge-detection.fs
Normal file
@@ -0,0 +1,25 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D source[];
|
||||
uniform vec4 sourceSize[];
|
||||
|
||||
in Vertex {
|
||||
vec2 texCoord;
|
||||
};
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
vec3 grayscale(vec3 color) {
|
||||
return vec3(dot(color, vec3(0.3, 0.59, 0.11)));
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec2 offset = fract(texCoord * sourceSize[0].xy) - 0.5;
|
||||
offset /= sourceSize[0].xy;
|
||||
|
||||
vec3 cx = texture(source[0], texCoord - offset).xyz;
|
||||
vec3 cy = texture(source[0], texCoord).xyz;
|
||||
vec3 cz = vec3(5.0 * grayscale(abs(cx - cy)));
|
||||
|
||||
fragColor = vec4(clamp(cz, 0.0, 1.0), 1.0);
|
||||
}
|
4
shaders/Edge Detection.shader/manifest.bml
Normal file
4
shaders/Edge Detection.shader/manifest.bml
Normal file
@@ -0,0 +1,4 @@
|
||||
program
|
||||
filter: linear
|
||||
wrap: edge
|
||||
fragment: edge-detection.fs
|
5
shaders/Makefile
Normal file
5
shaders/Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
install:
|
||||
if [ -d /usr/share/higan/Video\ Shaders ]; then sudo rm -r /usr/share/higan/Video\ Shaders; fi
|
||||
sudo mkdir -p /usr/share/higan/Video\ Shaders
|
||||
sudo cp -r *.shader /usr/share/higan/Video\ Shaders
|
||||
sudo chmod -R 777 /usr/share/higan/Video\ Shaders
|
4
shaders/Scanline.shader/manifest.bml
Normal file
4
shaders/Scanline.shader/manifest.bml
Normal file
@@ -0,0 +1,4 @@
|
||||
program
|
||||
filter: linear
|
||||
wrap: border
|
||||
fragment: scanline.fs
|
20
shaders/Scanline.shader/scanline.fs
Normal file
20
shaders/Scanline.shader/scanline.fs
Normal file
@@ -0,0 +1,20 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D source[];
|
||||
|
||||
in Vertex {
|
||||
vec2 texCoord;
|
||||
};
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
void main() {
|
||||
vec4 rgba = texture(source[0], texCoord);
|
||||
vec4 intensity;
|
||||
if(fract(gl_FragCoord.y * (0.5 * 4.0 / 3.0)) > 0.5) {
|
||||
intensity = vec4(0);
|
||||
} else {
|
||||
intensity = smoothstep(0.2, 0.8, rgba) + normalize(rgba);
|
||||
}
|
||||
fragColor = intensity * -0.25 + rgba * 1.1;
|
||||
}
|
Reference in New Issue
Block a user