diff --git a/handheld/console-border/dmg-2x.slangp b/handheld/console-border/dmg-2x.slangp index 74b6beb..b29f090 100644 --- a/handheld/console-border/dmg-2x.slangp +++ b/handheld/console-border/dmg-2x.slangp @@ -35,26 +35,14 @@ filter_linear5 = true scale_type5 = source scale5 = 1.0 -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y;adjacent_texel_alpha_blending;pixel_opacity;shadow_opacity" video_scale = "3.0" SCALE = "0.6667" OUT_X = "1600.0" OUT_Y = "800.0" -baseline_alpha = "0.05" -response_time = "0.333" -grey_balance = "2.6" -blending_mode = "0.0" adjacent_texel_alpha_blending = "0.38" -contrast = "0.7" -screen_light = "0.85" -pixel_opacity = "0.9" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" +pixel_opacity = "0.90" +shadow_opacity = "0.90" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/dmg-palette.png diff --git a/handheld/console-border/dmg-3x.slangp b/handheld/console-border/dmg-3x.slangp index 845ef0d..659eb01 100644 --- a/handheld/console-border/dmg-3x.slangp +++ b/handheld/console-border/dmg-3x.slangp @@ -33,26 +33,14 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y;adjacent_texel_alpha_blending;pixel_opacity;shadow_opacity" video_scale = "3.0" SCALE = "1.0" OUT_X = "2400.0" OUT_Y = "1200.0" -baseline_alpha = "0.05" -response_time = "0.333" -grey_balance = "2.6" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.7" -screen_light = "0.85" -pixel_opacity = "0.9" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" +adjacent_texel_alpha_blending = "0.42" +pixel_opacity = "0.80" +shadow_opacity = "0.80" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/dmg-palette.png diff --git a/handheld/console-border/dmg-4x.slangp b/handheld/console-border/dmg-4x.slangp index 15e8b9b..5d05ee8 100644 --- a/handheld/console-border/dmg-4x.slangp +++ b/handheld/console-border/dmg-4x.slangp @@ -33,26 +33,14 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y;adjacent_texel_alpha_blending;pixel_opacity;shadow_opacity" video_scale = "4.0" SCALE = "1.0" OUT_X = "3200.0" OUT_Y = "1600.0" -baseline_alpha = "0.05" -response_time = "0.333" -grey_balance = "2.6" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.7" -screen_light = "0.85" -pixel_opacity = "0.9" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" +adjacent_texel_alpha_blending = "0.34" +pixel_opacity = "0.80" +shadow_opacity = "0.80" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/dmg-palette.png diff --git a/handheld/console-border/dmg-5x.slangp b/handheld/console-border/dmg-5x.slangp index a6de547..baa57ff 100644 --- a/handheld/console-border/dmg-5x.slangp +++ b/handheld/console-border/dmg-5x.slangp @@ -33,26 +33,14 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y;adjacent_texel_alpha_blending;pixel_opacity;shadow_opacity" video_scale = "4.0" SCALE = "1.25" OUT_X = "4000.0" OUT_Y = "2000.0" -baseline_alpha = "0.05" -response_time = "0.333" -grey_balance = "2.6" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.7" -screen_light = "0.85" -pixel_opacity = "0.9" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" +adjacent_texel_alpha_blending = "0.34" +pixel_opacity = "0.80" +shadow_opacity = "0.80" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/dmg-palette.png diff --git a/handheld/console-border/dmg-6x.slangp b/handheld/console-border/dmg-6x.slangp index 8d276f2..beab23d 100644 --- a/handheld/console-border/dmg-6x.slangp +++ b/handheld/console-border/dmg-6x.slangp @@ -33,26 +33,14 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y;adjacent_texel_alpha_blending;pixel_opacity;shadow_opacity" video_scale = "4.0" SCALE = "1.5" OUT_X = "4800.0" OUT_Y = "2400.0" -baseline_alpha = "0.05" -response_time = "0.333" -grey_balance = "2.6" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.7" -screen_light = "0.85" -pixel_opacity = "0.9" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" +adjacent_texel_alpha_blending = "0.34" +pixel_opacity = "0.80" +shadow_opacity = "0.80" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/dmg-palette.png diff --git a/handheld/console-border/gb-pocket-2x.slangp b/handheld/console-border/gb-pocket-2x.slangp index 25140f7..bc84ec5 100644 --- a/handheld/console-border/gb-pocket-2x.slangp +++ b/handheld/console-border/gb-pocket-2x.slangp @@ -35,26 +35,11 @@ filter_linear5 = true scale_type5 = source scale5 = 1.0 -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y" video_scale = "3.0" SCALE = "0.6667" OUT_X = "1600.0" OUT_Y = "800.0" -baseline_alpha = "0.03" -response_time = "0.333" -grey_balance = "3.5" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.8" -screen_light = "0.9" -pixel_opacity = "0.95" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/pocket-palette.png diff --git a/handheld/console-border/gb-pocket-3x.slangp b/handheld/console-border/gb-pocket-3x.slangp index 67e60e2..0572ce9 100644 --- a/handheld/console-border/gb-pocket-3x.slangp +++ b/handheld/console-border/gb-pocket-3x.slangp @@ -33,26 +33,11 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y" video_scale = "3.0" SCALE = "1.0" OUT_X = "2400.0" OUT_Y = "1200.0" -baseline_alpha = "0.03" -response_time = "0.333" -grey_balance = "3.5" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.8" -screen_light = "0.9" -pixel_opacity = "0.95" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/pocket-palette.png diff --git a/handheld/console-border/gb-pocket-4x.slangp b/handheld/console-border/gb-pocket-4x.slangp index 8a232e5..73e1d12 100644 --- a/handheld/console-border/gb-pocket-4x.slangp +++ b/handheld/console-border/gb-pocket-4x.slangp @@ -33,26 +33,11 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y" video_scale = "4.0" SCALE = "1.0" OUT_X = "3200.0" OUT_Y = "1600.0" -baseline_alpha = "0.03" -response_time = "0.333" -grey_balance = "3.5" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.8" -screen_light = "0.9" -pixel_opacity = "0.95" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/pocket-palette.png diff --git a/handheld/console-border/gb-pocket-5x.slangp b/handheld/console-border/gb-pocket-5x.slangp index d6d327c..437d5eb 100644 --- a/handheld/console-border/gb-pocket-5x.slangp +++ b/handheld/console-border/gb-pocket-5x.slangp @@ -33,26 +33,11 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y" video_scale = "4.0" SCALE = "1.25" OUT_X = "4000.0" OUT_Y = "2000.0" -baseline_alpha = "0.03" -response_time = "0.333" -grey_balance = "3.5" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.8" -screen_light = "0.9" -pixel_opacity = "0.95" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/pocket-palette.png diff --git a/handheld/console-border/gb-pocket-6x.slangp b/handheld/console-border/gb-pocket-6x.slangp index f8dbc1d..955c842 100644 --- a/handheld/console-border/gb-pocket-6x.slangp +++ b/handheld/console-border/gb-pocket-6x.slangp @@ -33,26 +33,11 @@ alias4 = "PASS4" shader5 = shader-files/gb-pass-5.slang filter_linear5 = true -parameters = "video_scale;baseline_alpha;response_time;grey_balance;blending_mode;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;bg_smoothing;shadow_opacity;shadow_offset_x;shadow_offset_y;screen_offset_x;screen_offset_y;console_border_enable;SCALE;OUT_X;OUT_Y" +parameters = "video_scale;SCALE;OUT_X;OUT_Y" video_scale = "4.0" SCALE = "1.5" OUT_X = "4800.0" OUT_Y = "2400.0" -baseline_alpha = "0.03" -response_time = "0.333" -grey_balance = "3.5" -blending_mode = "0.0" -adjacent_texel_alpha_blending = "0.38" -contrast = "0.8" -screen_light = "0.9" -pixel_opacity = "0.95" -bg_smoothing = "0.0" -shadow_opacity = "0.9" -shadow_offset_x = "-2.0" -shadow_offset_y = "1.5" -screen_offset_x = "0.0" -screen_offset_y = "0.0" -console_border_enable = "1.0" textures = COLOR_PALETTE;BACKGROUND;BORDER COLOR_PALETTE = resources/pocket-palette.png diff --git a/handheld/console-border/shader-files/gb-pass0.slang b/handheld/console-border/shader-files/gb-pass0.slang index ee903bc..aea5c1f 100644 --- a/handheld/console-border/shader-files/gb-pass0.slang +++ b/handheld/console-border/shader-files/gb-pass0.slang @@ -9,7 +9,6 @@ layout(push_constant) uniform Push float baseline_alpha; float grey_balance; float response_time; - float console_border_enable; float video_scale; } registers; @@ -24,17 +23,14 @@ layout(std140, set = 0, binding = 0) uniform UBO // The alpha value of dots in their "off" state // Does not affect the border region of the screen - [0, 1] -#pragma parameter baseline_alpha "Baseline Alpha" 0.10 0.0 1.0 0.01 +#pragma parameter baseline_alpha "Baseline Alpha" 0.05 0.0 1.0 0.01 // Fine-tune the balance between the different shades of grey -#pragma parameter grey_balance "Grey Balance" 3.0 2.0 4.0 0.1 +#pragma parameter grey_balance "Grey Balance" 2.6 2.0 4.0 0.1 // Simulate response time // Higher values result in longer color transition periods - [0, 1] -#pragma parameter response_time "LCD Response Time" 0.333 0.0 0.777 0.111 - -// Change scaling to enable use in console-border shaders -#pragma parameter console_border_enable "Console-Border Enable" 0.0 0.0 1.0 1.0 +#pragma parameter response_time "LCD Response Time" 0.20 0.0 0.777 0.111 // Set video scale when used in console-border shaders #pragma parameter video_scale "Video Scale" 3.0 3.0 5.0 1.0 @@ -87,14 +83,12 @@ layout(location = 3) out vec2 one_texel; void main() { - float video_scale_factor = floor(registers.OutputSize.y * registers.SourceSize.w); - if (registers.console_border_enable > 0.5) video_scale_factor = registers.video_scale; - vec2 scaled_video_out = (registers.SourceSize.xy * vec2(video_scale_factor)); + vec2 scaled_video_out = (registers.SourceSize.xy * vec2(registers.video_scale)); // Remaps position to integer scaled output gl_Position = global.MVP * Position / vec4( vec2(registers.OutputSize.xy / scaled_video_out), 1.0, 1.0 ); - vTexCoord = TexCoord + half_pixel; + vTexCoord = TexCoord;// + half_pixel; dot_size = registers.SourceSize.zw; - one_texel = 1.0 / (registers.SourceSize.xy * video_scale_factor); + one_texel = 1.0 / (registers.SourceSize.xy * registers.video_scale); } //////////////////////////////////////////////////////////////////////////////// diff --git a/handheld/console-border/shader-files/gb-pass1.slang b/handheld/console-border/shader-files/gb-pass1.slang index 5a49c56..cfe3758 100644 --- a/handheld/console-border/shader-files/gb-pass1.slang +++ b/handheld/console-border/shader-files/gb-pass1.slang @@ -20,10 +20,10 @@ layout(std140, set = 0, binding = 0) uniform UBO // 0 - only the space between dots is blending // 1 - all texels are blended -#pragma parameter blending_mode "Blending Mode" 1.0 0.0 1.0 1.0 +#pragma parameter blending_mode "Blending Mode" 0.0 0.0 1.0 1.0 // The amount of alpha swapped between neighboring texels -#pragma parameter adjacent_texel_alpha_blending "Neighbor Blending" 0.1755 0.0 1.0 0.05 +#pragma parameter adjacent_texel_alpha_blending "Neighbor Blending" 0.38 0.0 1.0 0.05 /////////////////////////////////////////////////////////////////////////// // // diff --git a/handheld/console-border/shader-files/gb-pass4.slang b/handheld/console-border/shader-files/gb-pass4.slang index 6e2eecf..b900973 100644 --- a/handheld/console-border/shader-files/gb-pass4.slang +++ b/handheld/console-border/shader-files/gb-pass4.slang @@ -28,37 +28,37 @@ layout(std140, set = 0, binding = 0) uniform UBO // Useful to fine-tune the colors. // Higher values make the "black" color closer to black - [0, 1] [DEFAULT: 0.95] -#pragma parameter contrast "Contrast" 0.95 0.0 1.0 0.05 +#pragma parameter contrast "Contrast" 0.70 0.0 1.0 0.05 // Controls the ambient light of the screen. // Lower values darken the screen - [0, 2] [DEFAULT: 1.00] -#pragma parameter screen_light "Ambient Screen Light" 1.0 0.0 2.0 0.05 +#pragma parameter screen_light "Ambient Screen Light" 0.85 0.0 2.0 0.05 // Controls the opacity of the dot-matrix pixels. // Lower values make pixels more transparent - [0, 1] [DEFAULT: 1.00] -#pragma parameter pixel_opacity "Pixel Opacity" 1.0 0.01 1.0 0.01 +#pragma parameter pixel_opacity "Pixel Opacity" 0.9 0.01 1.0 0.01 // Higher values suppress changes in background color directly beneath // the foreground to improve image clarity - [0, 1] [DEFAULT: 0.75] -#pragma parameter bg_smoothing "Background Smooth" 0.75 0.0 1.0 0.05 +#pragma parameter bg_smoothing "Background Smooth" 0.0 0.0 1.0 0.05 // How strongly shadows affect the background // Higher values darken the shadows - [0, 1] [DEFAULT: 0.55] -#pragma parameter shadow_opacity "Shadow Opacity" 0.55 0.01 1.0 0.01 +#pragma parameter shadow_opacity "Shadow Opacity" 0.90 0.01 1.0 0.01 // How far the shadow should be shifted to the // right in pixels - [-infinity, infinity] [DEFAULT: 1.0] -#pragma parameter shadow_offset_x "Shadow Offset Horiz" 1.0 -5.0 5.0 0.5 +#pragma parameter shadow_offset_x "Shadow Offset Horiz" -1.5 -5.0 5.0 0.5 // How far the shadow should be shifted // down in pixels - [-infinity, infinity] [DEFAULT: 1.5] -#pragma parameter shadow_offset_y "Shadow Offset Vert" 1.0 -5.0 5.0 0.5 +#pragma parameter shadow_offset_y "Shadow Offset Vert" 1.5 -5.0 5.0 0.5 // Screen offset - [-infinity, infinity] [DEFAULT: 0] #pragma parameter screen_offset_x "Screen Offset Horiz" 0.0 -5.0 5.0 0.5 // Screen offset - [-infinity, infinity] [DEFAULT: 0] -#pragma parameter screen_offset_y "Screen Offset Vert" 0.0 -5.0 5.0 0.5 +#pragma parameter screen_offset_y "Screen Offset Vert" 0.0 -5.0 5.0 0.5 /////////////////////////////////////////////////////////////////////////// // // @@ -126,7 +126,7 @@ layout(set = 0, binding = 4) uniform sampler2D COLOR_PALETTE; void main() { vec2 tex = floor(registers.PassOutputSize1.xy * vTexCoord); - tex = (tex + 0.5) * registers.PassOutputSize1.zw; + tex = (tex ) * registers.PassOutputSize1.zw; // Sample all the relevant textures vec4 foreground = texture(PassOutput1, tex - screen_offset); @@ -136,6 +136,7 @@ void main() // Foreground and background are blended with the background color foreground *= 1.0; + background -= (background - 0.5) * registers.bg_smoothing * float(foreground.a > 0.0); //suppress drastic background color changes under the foreground to improve clarity // Allows for highlights,