diff --git a/bezel/koko-aio/FXAA-bloom.slangp b/bezel/koko-aio/FXAA-bloom.slangp index 620e536..71e3451 100644 --- a/bezel/koko-aio/FXAA-bloom.slangp +++ b/bezel/koko-aio/FXAA-bloom.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -211,27 +211,26 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.800000" DARKLINES_PERIOD = "4.000000" -HALO_POWER = "0.990000" -HALO_W = "3.000000" -HALO_H = "3.000000" -HALO_GAMMA = "1.400000" SCANLINE_DARK = "0.700000" SCANLINES_BLEEDING = "1.000000" SCANLINE_FLICKERING = "0.000000" SCANLINE_FLICKERING_POWER = "0.170000" +HALO_POWER = "0.990000" +HALO_W = "3.000000" +HALO_H = "3.000000" +HALO_GAMMA = "1.400000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.018000" BEZEL_FRAME_ZOOM = "0.170000" AMBI_FALLOFF = "0.400000" AMBI_POWER = "5.000000" AMBI_OVER_BEZEL = "0.200000" -DO_DYNZOOM = "0.000000" V_SIZE = "2.700000" V_POWER = "1.050000" S_POSITION = "194.000000" diff --git a/bezel/koko-aio/README.md b/bezel/koko-aio/README.md new file mode 100644 index 0000000..1e5dc45 --- /dev/null +++ b/bezel/koko-aio/README.md @@ -0,0 +1,64 @@ +# Koko-aio + +Koko-aio shader is meant to be an all-in one crt shader.
+It can be configured with many parameters, so that can be +scaled to run on even on modest gpus while still developed to +run with heavier presets on at least Haswell+ iGpus.
+On that gpu, as in version 3.5, it reaches about 85fps with all features enabled
+When dealing with lowres content on 1920x1080 resolution.
+While it is not meant to simulate the internal behaviour of CRT displays,
+it aims to give users "visual" parameters to make their monitors look similar.
+Several presets are included.
+ +***Additional documentation:*** +* [See here](docs.md) + +***Additional artwork:*** +* https://github.com/kokoko3k/koko-aio-slang-presets-and-overlays + +***Actually, it provides emulation for:*** +* Scanlines +* Screenlines +* RGB phosphors +* RGB deconvergence +* NTSC/PAL CVBS color bleeding +* NTSC color artifacting (early stage) +* Aperture grille and slot mask. +* Input signal glowing +* Output signal glowing +* Blooming +* Gamma, contrast, saturation, luminance, color temperature adjustments +* Black frame insertions through alternate blanking +* Interlace flickering, forcing and emulation +* Antialiasing +* Curvature +* Ambient lights +* Vignette and Spotlight +* Bezel (Thank you HyperspaceMadness for allowing me to rip his automagically generated bezel!) + https://github.com/HyperspaceMadness/ +* Background images +* Full screen glowing + +***External code by:*** +* Nvidia (FXAA) +* EasyMode (curvature related code) + +# Examples + +***monitor-slotmask-bloom-bezelwider - Arcade - Final fight*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/monitor-slotmask-bloom-bezelwider.mame.ffight.png?raw=true) + +***monitor-Commodore_1084S-wider - Amiga - ProjectX SE*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/monitor-Commodore_1084S-wider.puae.projectx.png?raw=true) + +***tv-PAL-my-old - Master System - Trans Bot*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-PAL-my-old,mastersystem.transbot.png?raw=true) + +***tv-NTSC-1 - Genesis - Sonic 2*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-NTSC-1.md.sonic2.png?raw=true) + +***tv-NTSC-2 - Snes - Aladdin*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-NTSC-2.snes.aladdin.png?raw=true) + +***tv-aperturegrille-bloom-bezel - Amiga - Leander*** +![alt text](https://github.com/kokoko3k/koko-aio-slang/blob/main/screenshots/screenshots.3.5/tv-aperturegrille-bloom-bezel.puae.leander.png?raw=true) diff --git a/bezel/koko-aio/clean-scanlines-classic_take.slangp b/bezel/koko-aio/clean-scanlines-classic_take.slangp index 9871e63..9f72d47 100644 --- a/bezel/koko-aio/clean-scanlines-classic_take.slangp +++ b/bezel/koko-aio/clean-scanlines-classic_take.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,21 +205,21 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_MAX = "0.800000" +SCANLINE_MINMAX_GAMMA = "0.700000" DO_HALO = "1.000000" HALO_POWER = "0.400000" HALO_W = "3.000001" HALO_H = "3.000001" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "1.000000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_MAX = "0.800000" -SCANLINE_MINMAX_GAMMA = "0.700000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "400.000000" BEZEL_INNER_ZOOM = "-0.215000" diff --git a/bezel/koko-aio/docs.md b/bezel/koko-aio/docs.md index 8d9f8d3..720b706 100644 --- a/bezel/koko-aio/docs.md +++ b/bezel/koko-aio/docs.md @@ -1,40 +1,48 @@ **koko-aio-slang parameters documentation** -**Color corrections:** - Modify luminance, saturation, contrast, brightness and color temperature of the - signal, at "input" stage. - Gamma correction is applied to the final processed picture. +**Color corrections:**
+ Modify luminance, saturation, contrast, brightness and color temperature + of the signal, at "input" stage.
+ Gamma correction is applied to the final processed picture.
+ It is also possible to emulate a monochrome display with custom colors: -**FXAA:** - Apply the well known antialiasing effect by Nvidia. - Use it if you don't want to blur the image and you still don't like - jagged or too much pixelated images. + Monochrome screen colorization: + The amount of (de) colorization applied. + Hue bright, Hue dark: + Set the hue for bright and dark colors. + Hue bright-dark bias: + Controls the distribution of dark and bright hues. + +**FXAA:**
+ Apply the well known antialiasing effect by Nvidia.
+ Use it if you don't want to blur the image and you still don't like
+ jagged or too much pixelated images.
-**CVBS: NTSC color artifacts: ** - Tries to emulate typical NTSC color artifacting without emulating - full NTSC coding/decoding pipeline. - While it improves the look of NTSC content, don't expect it to be - an accurate emulation (yet?) - As today, it is enough to emulate rainbowing effects on genesis. +**CVBS: NTSC color artifacts: **
+ Tries to emulate typical NTSC color artifacting without emulating
+ full NTSC coding/decoding pipeline.
+ While it improves the look of NTSC content, don't expect it to be
+ an accurate emulation (yet?)
+ As today, it is enough to emulate rainbowing effects on genesis.
-** RF Noise: ** - Emulates radio frequency noise with a given strength +** RF Noise: **
+ Emulates radio frequency noise with a given strength
-**CVBS: Bandwidth limited chroma:** - Will cause an horizontal chroma bleed which cheaply mimics the effect of - poor composite video signals. - It can be used with RGB shifting and image blurring to give the picture - an ntsc look without dealing with specific encoding/decoding stuffs. +**CVBS: Bandwidth limited chroma:**
+ Will cause an horizontal chroma bleed which cheaply mimics the effect of
+ poor composite video signals.
+ It can be used with RGB shifting and image blurring to give the picture
+ an ntsc look without dealing with specific encoding/decoding stuffs.
-**Deconvergence:** - Shift R,G,B components separately to mimic channel deconvergence. - By varying Red, Green and Blue offsets, the relative component will be - shifted column by column, row by row. +**Deconvergence:**
+ Shift R,G,B components separately to mimic channel deconvergence.
+ By varying Red, Green and Blue offsets, the relative component will be
+ shifted column by column, row by row.
-**Glow/Blur:** - Emulate the CRT glowing "feature", so that the brighter areas of - the image will light their surroundings, - with options to switch to classic blur. +**Glow/Blur:**
+ Emulate the CRT glowing "feature", so that the brighter areas of
+ the image will light their surroundings,
+ with options to switch to classic blur.
Input signal strength: The input signal gain @@ -63,8 +71,8 @@ This will help you to set the previous 2 values as it will show only the artifacts that will modify the blur. -**Masks and/or Darklines:** - Emulates CRT RGB phosphors (RGB Mask), +**Masks and/or Darklines:**
+ Emulates CRT RGB phosphors (RGB Mask),
slotmasks and aperturegrille (Darklines). (HiDPI) Vmask and Darklines multiplier: @@ -104,26 +112,11 @@ Darklines: affect bright colors: See "RGB Mask: affect bright colors" -**Halo:** - Emulates the effect of the brighter pixels reflected by the CRT glass - that lights nearby zones (a sort of tight bloom). - The light is meant to be spreaded in a way that it nulls the effect of the - dark scanline parts, darklines and the RGB masks. - So you can use this to restore the brightness and color saturation - loss when using features like scanlines, darklines or RGB masks. +**Tate mode:**
+ Rotates mask and scanlines by 90°
- Light up scanlines too: - Theoretically Halo have to be applied - "over" everything, because that is the way it works in nature. - But you can choose to cheat and instead apply scanlines over the halo - instead. - Do this if you like much more pronunced scanlines, even at the - price of some graphical artifacts visible on high contrasted areas. - - Refer to "Glowing Input/power" for other parameters meaning. - -**Scanlines:** - Emulate CRT scanlines. +**Scanlines:**
+ Emulate CRT scanlines.
Scanlines gap brightness: controls how "little" they will look pronunced. @@ -164,11 +157,57 @@ . Offset This is the slotmask offset/stagger, (available on type 1 only) Keep it around 79 or all the way to max + +**Dot matrix emulation:**
+ Emulates low refresh "boxed" screens used in old handheld consoles.
+ + Grid strength: + How much the grid is visible. + Grid sharpness: + Modulates the thickness of the grid around cells. + Strength on background: + How much should the grid be visible on background? + More positive values -> more grid on bright + More negative values -> more grid on dark + Gap brightness: + You may want to use a white grid eg: for gameboy mono emulation. + RGB strength: + Emulate rgb subpixels (Set 0.0 for BW display) + RGB sharpness: + Low values will gradually blend subpixels.
+ You may want to lower this value to cancel vertical artifacts.
+ Green gain correction: + R and B cnahhels could be partially cancelled by the grid around.
+ Lower this if the image looks green.
+ Refresh inertia: + Emulates a low refresh screen, set the power of the effect.
+ Inertia on: + 0: display is always slow to refresh + 1: display is slow to refresh bright pixels + 2: display is slow to refresh dark pixels -**Bloom:** - Acts like Halo, but affects a much wider area and is more configurable. - By using this effect and playing with its parameters, you can achieve funny - or even artistic results. +**Halo:**
+ Emulates the effect of the brighter pixels reflected by the CRT glass
+ that lights nearby zones (a sort of tight bloom).
+ The light is meant to be spreaded in a way that it nulls the effect of the
+ dark scanline parts, darklines and the RGB masks.
+ So you can use this to restore the brightness and color saturation
+ loss when using features like scanlines, darklines or RGB masks.
+ + Light up scanlines too: + Theoretically Halo have to be applied + "over" everything, because that is the way it works in nature. + But you can choose to cheat and instead apply scanlines over the halo + instead. + Do this if you like much more pronunced scanlines, even at the + price of some graphical artifacts visible on high contrasted areas. + + Refer to "Glowing Input/power" for other parameters meaning. + +**Bloom:**
+ Acts like Halo, but affects a much wider area and is more configurable.
+ By using this effect and playing with its parameters, you can achieve funny
+ or even artistic results.
Final mix: Modulates between the original images and the bloomed one. @@ -196,8 +235,8 @@ Use 1.0 to see naked bloom without any modulation applied Use 2.0 to see naked bloom with modulation applied -**Curvature:** - Emulates a curved CRT display. +**Curvature:**
+ Emulates a curved CRT display.
WARP X, WARP Y: control how much the display is curved along its axes. @@ -206,17 +245,17 @@ Cut curvature ears; If you see weird image repetition try this. -**Bezel:** - Draws a monitor frame with simulated reflections from the game content. - The monitor frame is an image loaded by the shader and is shipped - in the "textures" shader subdirectory, named "monitor\_body.png" - It has been made with the following rules that may come handy - only if you want to edit it; otherwise go on. - - The red channel represents the luminance information - - The green channel represents the highlights - - The alpha channel in the inner frame represents the part of the bezel - that will be filled by the game content - - The blue channel represents the part of the bezel that will be filled by the game reflection. +**Bezel:**
+ Draws a monitor frame with simulated reflections from the game content.
+ The monitor frame is an image loaded by the shader and is shipped
+ in the "textures" shader subdirectory, named "monitor\_body.png"
+ It has been made with the following rules that may come handy
+ only if you want to edit it; otherwise go on.
+ - The red channel represents the luminance information
+ - The green channel represents the highlights
+ - The alpha channel in the inner frame represents the part of the bezel
+ that will be filled by the game content
+ - The blue channel represents the part of the bezel that will be filled by the game reflection.
Straight Use a straight bezel instead of a curved one. @@ -241,13 +280,13 @@ How much the bezel corners should be darkened -**Backgound image:** - Draws an image on screen picked from the "textures" shader subdirectory, - named: background.png
- **-> It is needed that you set retroarch aspect to "Full" <-** - ( Settings, Video, Scaling, Aspect Ratio = Full ) - The image is painted "under" the game content and under the monitor frame by - default, and his alpha channel will let you see ambient lighs (see next). +**Backgound image:**
+ Draws an image on screen picked from the "textures" shader subdirectory,
+ named: background.png

+ **-> It is needed that you set retroarch aspect to "Full" <-**
+ ( Settings, Video, Scaling, Aspect Ratio = Full )
+ The image is painted "under" the game content and under the monitor frame by
+ default, and his alpha channel will let you see ambient lighs (see next).
Image over content (alpha channel driven)?: ...however you can paint the image over the game content and over the @@ -271,20 +310,21 @@ 3 Plain repeat without mirroring. -**Backdrop support:** - Some old arcades used a mirror trick to overlay the +**Backdrop support:**
+ Some old arcades used a mirror trick to overlay the
game content over an high definition printed image.
- The image used by default, picked from the "textures" shader subdirectory, + The image used by default, picked from the "textures" shader subdirectory,
is named: boothill.jpg
+ Shift(Zoom) Backdrop over X(Y) axis: move or zoom the whole background image. -**Ambient light leds:** - Emulates the presence of led strips under the monitor that lights the - surroundings according to the edges of the game content. - **-> It is needed that you set retroarch aspect to "Full" <-** - ( Settings, Video, Scaling, Aspect Ratio = Full ) +**Ambient light leds:**
+ Emulates the presence of led strips under the monitor that lights the
+ surroundings according to the edges of the game content.
+ **-> It is needed that you set retroarch aspect to "Full" <-**
+ ( Settings, Video, Scaling, Aspect Ratio = Full )
Slowness: How much will the leds will take to reflect the game content. @@ -315,23 +355,23 @@ This internally works by adding the amount of your choice to the alpha channel of the foreground image. -**Luminosity dependant zoom:** - On older CRT monitors, the picture gets bigger when the image was brighter. +**Luminosity dependant zoom:**
+ On older CRT monitors, the picture gets bigger when the image was brighter.
-**Vignette:** - Will cause uneven brightness of the image, more at the center, - less at the edges. +**Vignette:**
+ Will cause uneven brightness of the image, more at the center,
+ less at the edges.
-**Spot:** - Simulates external light reflected by the monitor glass. +**Spot:**
+ Simulates external light reflected by the monitor glass.
-**Aspect Ratio:** - When using effects that need Retroarch aspect ratio option - to be set to "full", you have to provide the source aspect - ratio to the shader. - Use -6 for MAME cores that pre-rotates the game (TATE mode) - With Mame 2003 plus and fbneo cores, koko-aio detects if the - game is rotated or not without any user intervention. +**Aspect Ratio:**
+ When using effects that need Retroarch aspect ratio option
+ to be set to "full", you have to provide the source aspect
+ ratio to the shader.
+ Use -6 for MAME cores that pre-rotates the game (TATE mode)
+ With Mame 2003 plus and fbneo cores, koko-aio detects if the
+ game is rotated or not without any user intervention.
Aspect Ratio Numerator: Setting non positive value here will switch to a predefined @@ -347,12 +387,12 @@ As long as Aspect Ratio Numerator is positive, this will be used as the denominator of the fraction. -**Global shift/zoom image:** - Zoom and shift everything on screen, but background pictures. +**Global shift/zoom image:**
+ Zoom and shift everything on screen, but background pictures.
-**Override content geometry:** - Contrary to the global aspect ratio control, this changes only the game geometry. - Bezel stays the same. +**Override content geometry:**
+ Contrary to the global aspect ratio control, this changes only the game geometry.
+ Bezel stays the same.
Integer scale: Game content zoom height is rounded to nearest integer. Maximum integer scale: Dont allow integer scaling more than this @@ -362,8 +402,11 @@ Vertical/Horizontal position: Shifts the game position Zoom: Change the size -**Tilt:** - Put the bezel and the game content into perspective. +**Tilt:**
+ Put the bezel and the game content into perspective.
+ The implementation is basic, you can expect correct
+ results when tilting alongside a single axis or when
+ using both, but with small values.
Tilt along X(Y) axis: Rotate the image in space @@ -373,11 +416,11 @@ in relation to the game tilt amount -**Alternate line blanking:** - CRT monitors \*real\* refresh was amazing, today is just "meh" in most cases. - This emulates the low pixel persistance of CRT monitors - and reduces the motion blur, typical of LCD displays, by blanking even/odd - screen lines on even/odd frames, by sacrificing image brightness, ofc. +**Alternate line blanking:**
+ CRT monitors \*real\* refresh was amazing, today is just "meh" in most cases.
+ This emulates the low pixel persistance of CRT monitors
+ and reduces the motion blur, typical of LCD displays, by blanking even/odd
+ screen lines on even/odd frames, by sacrificing image brightness, ofc.
This feature is static, to use it you have to manually enable it by removing the leading: "//" diff --git a/bezel/koko-aio/gameboy_mono_colorized.slangp b/bezel/koko-aio/gameboy_mono_colorized.slangp new file mode 100644 index 0000000..43cd38b --- /dev/null +++ b/bezel/koko-aio/gameboy_mono_colorized.slangp @@ -0,0 +1,248 @@ +shaders = "17" +shader0 = "shaders/colortools_and_ntsc_pass.slang" +filter_linear0 = "false" +wrap_mode0 = "mirrored_repeat" +mipmap_input0 = "false" +alias0 = "colortools_and_ntsc_pass" +float_framebuffer0 = "false" +srgb_framebuffer0 = "false" +scale_type_x0 = "source" +scale_x0 = "1.000000" +scale_type_y0 = "source" +scale_y0 = "1.000000" +shader1 = "shaders/flick_and_noise.slang" +filter_linear1 = "false" +wrap_mode1 = "mirrored_repeat" +mipmap_input1 = "false" +alias1 = "flick_and_noise_pass" +float_framebuffer1 = "false" +srgb_framebuffer1 = "false" +scale_type_x1 = "source" +scale_x1 = "2.000000" +scale_type_y1 = "source" +scale_y1 = "2.000000" +shader2 = "shaders/fxaa.slang" +filter_linear2 = "true" +wrap_mode2 = "mirrored_repeat" +mipmap_input2 = "true" +alias2 = "FXAA_pass" +float_framebuffer2 = "false" +srgb_framebuffer2 = "false" +scale_type_x2 = "source" +scale_x2 = "1.000000" +scale_type_y2 = "source" +scale_y2 = "1.000000" +shader3 = "shaders/shift_and_bleed.slang" +filter_linear3 = "true" +wrap_mode3 = "mirrored_repeat" +mipmap_input3 = "false" +alias3 = "shift_and_bleed_pass" +float_framebuffer3 = "true" +srgb_framebuffer3 = "false" +scale_type_x3 = "source" +scale_x3 = "1.000000" +scale_type_y3 = "source" +scale_y3 = "1.000000" +shader4 = "shaders/in_glow_x.slang" +filter_linear4 = "true" +wrap_mode4 = "mirrored_repeat" +mipmap_input4 = "false" +alias4 = "in_glow_pass_x" +float_framebuffer4 = "true" +srgb_framebuffer4 = "false" +scale_type_x4 = "source" +scale_x4 = "1.000000" +scale_type_y4 = "source" +scale_y4 = "1.000000" +shader5 = "shaders/in_glow_y.slang" +filter_linear5 = "true" +wrap_mode5 = "mirrored_repeat" +mipmap_input5 = "false" +alias5 = "in_glow_pass" +float_framebuffer5 = "true" +srgb_framebuffer5 = "false" +scale_type_x5 = "source" +scale_x5 = "1.000000" +scale_type_y5 = "source" +scale_y5 = "1.000000" +shader6 = "shaders/halo_x.slang" +filter_linear6 = "true" +wrap_mode6 = "clamp_to_edge" +mipmap_input6 = "false" +alias6 = "halo_pass_x" +float_framebuffer6 = "true" +srgb_framebuffer6 = "false" +scale_type_x6 = "source" +scale_x6 = "1.000000" +scale_type_y6 = "source" +scale_y6 = "1.000000" +shader7 = "shaders/halo_y.slang" +filter_linear7 = "true" +wrap_mode7 = "clamp_to_edge" +mipmap_input7 = "false" +alias7 = "halo_pass" +float_framebuffer7 = "true" +srgb_framebuffer7 = "false" +scale_type_x7 = "source" +scale_x7 = "1.000000" +scale_type_y7 = "source" +scale_y7 = "1.000000" +shader8 = "shaders/avglum_pass.slang" +filter_linear8 = "true" +wrap_mode8 = "mirrored_repeat" +mipmap_input8 = "false" +alias8 = "avglum_pass" +float_framebuffer8 = "false" +srgb_framebuffer8 = "false" +scale_type_x8 = "source" +scale_x8 = "0.500000" +scale_type_y8 = "source" +scale_y8 = "0.500000" +shader9 = "shaders/reflection_blur_pre.slang" +filter_linear9 = "true" +wrap_mode9 = "clamp_to_border" +mipmap_input9 = "false" +alias9 = "reflected_blurred_pass_pre" +float_framebuffer9 = "false" +srgb_framebuffer9 = "false" +scale_type_x9 = "source" +scale_x9 = "1.000000" +scale_type_y9 = "source" +scale_y9 = "1.000000" +shader10 = "shaders/reflection_blur.slang" +filter_linear10 = "true" +wrap_mode10 = "mirrored_repeat" +mipmap_input10 = "true" +alias10 = "reflected_blurred_pass" +float_framebuffer10 = "false" +srgb_framebuffer10 = "false" +scale_type_x10 = "source" +scale_x10 = "1.000000" +scale_type_y10 = "source" +scale_y10 = "1.000000" +shader11 = "shaders/bloom_pass_1.slang" +filter_linear11 = "true" +wrap_mode11 = "mirrored_repeat" +mipmap_input11 = "false" +alias11 = "bloom_pass_1" +float_framebuffer11 = "false" +srgb_framebuffer11 = "false" +scale_type_x11 = "source" +scale_x11 = "1.000000" +scale_type_y11 = "source" +scale_y11 = "1.000000" +shader12 = "shaders/bloom_pass_2.slang" +filter_linear12 = "true" +wrap_mode12 = "clamp_to_edge" +mipmap_input12 = "false" +alias12 = "bloom_pass_2" +float_framebuffer12 = "false" +srgb_framebuffer12 = "false" +scale_type_x12 = "source" +scale_x12 = "0.500000" +scale_type_y12 = "source" +scale_y12 = "0.500000" +shader13 = "shaders/bloom_pass_3.slang" +filter_linear13 = "true" +wrap_mode13 = "clamp_to_edge" +mipmap_input13 = "false" +alias13 = "bloom_pass_3" +float_framebuffer13 = "false" +srgb_framebuffer13 = "false" +scale_type_x13 = "source" +scale_x13 = "1.000000" +scale_type_y13 = "source" +scale_y13 = "1.000000" +shader14 = "shaders/bloom_pass_4.slang" +filter_linear14 = "true" +wrap_mode14 = "mirrored_repeat" +mipmap_input14 = "false" +alias14 = "bloom_pass_final" +float_framebuffer14 = "true" +srgb_framebuffer14 = "false" +scale_type_x14 = "source" +scale_x14 = "1.000000" +scale_type_y14 = "source" +scale_y14 = "1.000000" +shader15 = "shaders/ambi_temporal_pass.slang" +filter_linear15 = "true" +wrap_mode15 = "clamp_to_border" +mipmap_input15 = "false" +alias15 = "ambi_temporal_pass" +float_framebuffer15 = "true" +srgb_framebuffer15 = "false" +scale_type_x15 = "viewport" +scale_x15 = "0.050000" +scale_type_y15 = "viewport" +scale_y15 = "0.050000" +shader16 = "shaders/final_pass.slang" +filter_linear16 = "true" +wrap_mode16 = "mirrored_repeat" +mipmap_input16 = "false" +alias16 = "final_pass" +float_framebuffer16 = "false" +srgb_framebuffer16 = "false" +scale_type_x16 = "viewport" +scale_x16 = "1.000000" +scale_type_y16 = "viewport" +scale_y16 = "1.000000" +DO_CCORRECTION = "1.000000" +BRIGHTNESS = "0.060000" +CONTRAST = "-0.270000" +GAMMA_OUT = "0.500000" +COLOR_MONO_COLORIZE = "1.000000" +COLOR_MONO_HUE1 = "0.180000" +COLOR_MONO_HUE2 = "0.380000" +SATURATION = "0.850000" +DO_SHIFT_RGB = "1.000000" +OFFSET_STRENGTH = "0.250000" +SHIFT_R = "42.000000" +SHIFT_G = "42.000000" +SHIFT_B = "42.000000" +DO_IN_GLOW = "1.000000" +IN_GLOW_GAMMA = "2.000000" +IN_GLOW_W = "7.000000" +IN_GLOW_H = "7.000000" +DO_DOT_MATRIX = "1.000000" +DOT_M_G_STR = "0.110000" +DOT_M_G_TRESH = "0.120001" +DOT_M_G_BRT = "0.849999" +DOT_M_G_SHARP = "20.000000" +DOT_M_RGB_STR = "0.000000" +DOT_M_MBLUR_MODE = "1.000000" +DOT_M_SHADOW_STR = "0.750000" +DOT_M_SHADOW_OFF = "1.000000" +AMBI_FALLOFF = "0.400000" +AMBI_POWER = "1.000000" +DO_DYNZOOM = "0.000000" +DO_VIGNETTE = "1.000000" +V_SIZE = "1.350001" +V_POWER = "1.170000" +DO_SPOT = "1.000000" +S_POSITION = "195.000000" +S_SIZE = "1.000000" +ASPECT_X = "1.000000" +ASPECT_Y = "1.000000" +DO_GAME_GEOM_OVERRIDE = "1.000000" +GAME_GEOM_INT_SCALE = "2.000000" +textures = "monitor_body_curved;monitor_body_straight;bg_under;bg_over;backdrop" +monitor_body_curved = "textures/monitor_body_curved.png" +monitor_body_curved_linear = "true" +monitor_body_curved_wrap_mode = "clamp_to_edge" +monitor_body_curved_mipmap = "true" +monitor_body_straight = "textures/monitor_body_straight.png" +monitor_body_straight_linear = "true" +monitor_body_straight_wrap_mode = "clamp_to_edge" +monitor_body_straight_mipmap = "true" +bg_under = "textures/background_under.png" +bg_under_linear = "true" +bg_under_wrap_mode = "mirrored_repeat" +bg_under_mipmap = "true" +bg_over = "textures/background_over.png" +bg_over_linear = "true" +bg_over_wrap_mode = "mirrored_repeat" +bg_over_mipmap = "true" +backdrop = "textures/boothill.jpg" +backdrop_linear = "true" +backdrop_wrap_mode = "mirrored_repeat" +backdrop_mipmap = "true" diff --git a/bezel/koko-aio/monitor-BASE.slangp b/bezel/koko-aio/monitor-BASE.slangp index c568bc9..5936a89 100644 --- a/bezel/koko-aio/monitor-BASE.slangp +++ b/bezel/koko-aio/monitor-BASE.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,19 +205,19 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_DARK = "0.050000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_DARK = "0.050000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "400.000000" BEZEL_INNER_ZOOM = "-0.215000" diff --git a/bezel/koko-aio/monitor-Commodore_1084S-Night.slangp b/bezel/koko-aio/monitor-Commodore_1084S-Night.slangp index 62f8b0a..0330b83 100644 --- a/bezel/koko-aio/monitor-Commodore_1084S-Night.slangp +++ b/bezel/koko-aio/monitor-Commodore_1084S-Night.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.300000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "60.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "1.000000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.300000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "60.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" -GEOM_CORNER_SMOOTH = "700.000000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" +GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.600000" +BEZEL_INNER_ZOOM = "-0.522000" BEZEL_FRAME_ZOOM = "-0.247000" BEZEL_R = "0.030000" BEZEL_G = "0.015000" diff --git a/bezel/koko-aio/monitor-Commodore_1084S-wider.slangp b/bezel/koko-aio/monitor-Commodore_1084S-wider.slangp index 1c942c5..5a1ece5 100644 --- a/bezel/koko-aio/monitor-Commodore_1084S-wider.slangp +++ b/bezel/koko-aio/monitor-Commodore_1084S-wider.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.300000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "60.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "1.000000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.300000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "60.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" -GEOM_CORNER_SMOOTH = "700.000000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" +GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.440000" +BEZEL_INNER_ZOOM = "-0.391000" BEZEL_FRAME_ZOOM = "-0.140000" BEZEL_R = "0.030000" BEZEL_G = "0.015000" diff --git a/bezel/koko-aio/monitor-Commodore_1084S.slangp b/bezel/koko-aio/monitor-Commodore_1084S.slangp index 0d2a74d..464dd18 100644 --- a/bezel/koko-aio/monitor-Commodore_1084S.slangp +++ b/bezel/koko-aio/monitor-Commodore_1084S.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -204,24 +204,24 @@ DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.300000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "60.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "1.000000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.300000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "60.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" -GEOM_CORNER_SMOOTH = "700.000000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" +GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.600000" +BEZEL_INNER_ZOOM = "-0.522000" BEZEL_FRAME_ZOOM = "-0.247000" BEZEL_R = "0.030000" BEZEL_G = "0.015000" diff --git a/bezel/koko-aio/monitor-bloom-bezel.slangp b/bezel/koko-aio/monitor-bloom-bezel.slangp index c1ab793..ed6a5fd 100644 --- a/bezel/koko-aio/monitor-bloom-bezel.slangp +++ b/bezel/koko-aio/monitor-bloom-bezel.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,23 +205,23 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_MAX = "0.700000" DO_HALO = "1.000000" HALO_POWER = "0.380000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_MAX = "0.700000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.175000" BEZEL_FRAME_ZOOM = "0.040000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-bloom-bezelwider.slangp b/bezel/koko-aio/monitor-bloom-bezelwider.slangp index b635aa8..5707478 100644 --- a/bezel/koko-aio/monitor-bloom-bezelwider.slangp +++ b/bezel/koko-aio/monitor-bloom-bezelwider.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,23 +205,23 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_MAX = "0.700000" DO_HALO = "1.000000" HALO_POWER = "0.380000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_MAX = "0.700000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.014000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-bloom.slangp b/bezel/koko-aio/monitor-bloom.slangp index 75e432b..e54c5f2 100644 --- a/bezel/koko-aio/monitor-bloom.slangp +++ b/bezel/koko-aio/monitor-bloom.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,20 +205,20 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_DARK = "0.050000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_DARK = "0.050000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "400.000000" BEZEL_INNER_ZOOM = "-0.215000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom-ShinyBezel.slangp b/bezel/koko-aio/monitor-slotmask-bloom-ShinyBezel.slangp index 55d7f32..e465d00 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom-ShinyBezel.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom-ShinyBezel.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.173000" BEZEL_FRAME_ZOOM = "0.040000" BEZEL_R = "-0.115000" BEZEL_G = "-0.115000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp b/bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp index 5ec274b..df87e40 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom-bezel-backimage.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.173000" BEZEL_FRAME_ZOOM = "0.040000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp b/bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp index 84123aa..cbb1ed4 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.173000" BEZEL_FRAME_ZOOM = "0.040000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom-bezelwider-classic_take.slangp b/bezel/koko-aio/monitor-slotmask-bloom-bezelwider-classic_take.slangp index 1cf7dcb..9d4d5f2 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom-bezelwider-classic_take.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom-bezelwider-classic_take.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -204,23 +204,23 @@ IN_GLOW_BIAS = "0.000000" DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp b/bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp index e42b3a4..4cf76b0 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom-bezelwider.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,24 +205,24 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/monitor-slotmask-bloom.slangp b/bezel/koko-aio/monitor-slotmask-bloom.slangp index 1bda49c..4b9b104 100644 --- a/bezel/koko-aio/monitor-slotmask-bloom.slangp +++ b/bezel/koko-aio/monitor-slotmask-bloom.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,21 +205,21 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "400.000000" BEZEL_INNER_ZOOM = "-0.215000" diff --git a/bezel/koko-aio/monitor-slotmask.slangp b/bezel/koko-aio/monitor-slotmask.slangp index 112ea04..d9f172e 100644 --- a/bezel/koko-aio/monitor-slotmask.slangp +++ b/bezel/koko-aio/monitor-slotmask.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -205,20 +205,20 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.250000" +SCANLINE_SM_TYPE = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.430000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.250000" -SCANLINE_SM_TYPE = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "400.000000" BEZEL_INNER_ZOOM = "-0.215000" diff --git a/bezel/koko-aio/shaders/ambi_temporal_pass.slang b/bezel/koko-aio/shaders/ambi_temporal_pass.slang index e7df0e3..d9e0499 100644 --- a/bezel/koko-aio/shaders/ambi_temporal_pass.slang +++ b/bezel/koko-aio/shaders/ambi_temporal_pass.slang @@ -31,7 +31,7 @@ void main() { fstep = (border_max - border_min) / (leds_per_strip-1); //Calc a lod for a texture sized led_strip x led_strip - lod = log2(global.first_passSize.y / leds_per_strip); + lod = log2(global.flick_and_noise_passSize.y / leds_per_strip); //Scale to the original aspect @@ -40,10 +40,10 @@ void main() { bool isrotated = is_rotated(); vIs_rotated = float(isrotated); - if ( !do_integer_scale() ) + if ( need_NO_integer_scale() ) pre_pass_coords = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, in_aspect, isrotated) + vec2(0.00001); else - pre_pass_coords = integer_scale(TexCoord, in_aspect, isrotated) ; + pre_pass_coords = integer_scale(TexCoord, in_aspect, isrotated, GAME_GEOM_INT_SCALE-1.0 ) ; if (DO_GLOBAL_SHZO >0.5) @@ -73,13 +73,13 @@ layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 1) uniform sampler2D PastSampler; layout(set = 0, binding = 2) uniform sampler2D avglum_pass; layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback; -layout(set = 0, binding = 4) uniform sampler2D first_pass; +layout(set = 0, binding = 4) uniform sampler2D flick_and_noise_pass; vec3 ambi_push_pass(vec2 coords, float f_lod) { - vec3 pixel_out = textureLod(first_pass, coords, f_lod).rgb; + vec3 pixel_out = textureLod(flick_and_noise_pass, coords, f_lod).rgb; pixel_out = apply_fuzzy_main_pass(pixel_out); pixel_out = pixel_push_luminance(pixel_out, AMBI_POWER-1); return pixel_out; diff --git a/bezel/koko-aio/shaders/avglum_pass.slang b/bezel/koko-aio/shaders/avglum_pass.slang index 827489c..8db583d 100644 --- a/bezel/koko-aio/shaders/avglum_pass.slang +++ b/bezel/koko-aio/shaders/avglum_pass.slang @@ -31,7 +31,7 @@ void main() { layout(location = 0) in vec2 vTexCoord; layout(location = 1) in float lod; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 2) uniform sampler2D first_pass; +layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass; layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback; /* The following will allow to sample at reduced interval @@ -45,7 +45,7 @@ layout(set = 0, binding = 3) uniform sampler2D avglum_passFeedback; #define RGB_TO_GRAYSCALE = vec3(0.299, 0.587, 0.114) float get_avg_lum_from_mip() { - vec3 mip = textureLod(first_pass, vec2(0.5,0.5),20.0).rgb; + vec3 mip = textureLod(flick_and_noise_pass, vec2(0.5,0.5),20.0).rgb; mip = apply_fuzzy_main_pass(mip); //return (mip.r+mip.g+mip.b)/3.0; return rgb_to_gray(mip); @@ -92,7 +92,7 @@ float get_avglum() { } void main() { - /*Grab a mipmap from the first pass. + /*Grab a mipmap from the flick_and_noise_pass. Calculate the average luminance from the smallest mipmap and put into the alpha channel So that can be used: 1 - continuously at coordinate 0.5,0.5 @@ -109,11 +109,11 @@ void main() { if (DO_BEZEL + DO_BLOOM > 0.0) { //Create a small mipmap to be used to light the bezel corners //and by the bloom pass to identify bright areas. - pixel_out.rgb = textureLod(first_pass, vTexCoord, mip_lod).rgb; + pixel_out.rgb = textureLod(flick_and_noise_pass, vTexCoord, mip_lod).rgb; } FragColor = pixel_out; - //FragColor = texture(first_pass, vTexCoord); + //FragColor = texture(flick_and_noise_pass, vTexCoord); } diff --git a/bezel/koko-aio/shaders/bloom_pass_1.slang b/bezel/koko-aio/shaders/bloom_pass_1.slang index 53100dc..eba32db 100644 --- a/bezel/koko-aio/shaders/bloom_pass_1.slang +++ b/bezel/koko-aio/shaders/bloom_pass_1.slang @@ -18,7 +18,7 @@ void main() { layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 1) uniform sampler2D ntsc_pass; +layout(set = 0, binding = 1) uniform sampler2D colortools_and_ntsc_pass; #include "includes/functions.include.slang" #include "includes/blooms.include.slang" @@ -28,7 +28,7 @@ void main() { vec3 bloomed = bloom_gamma_power( - ntsc_pass, + colortools_and_ntsc_pass, vTexCoord, params.OriginalSize, vec2(BLOOM_SIZE), diff --git a/bezel/koko-aio/shaders/bloom_pass_4.slang b/bezel/koko-aio/shaders/bloom_pass_4.slang index 14ebe76..29c0f98 100644 --- a/bezel/koko-aio/shaders/bloom_pass_4.slang +++ b/bezel/koko-aio/shaders/bloom_pass_4.slang @@ -20,7 +20,7 @@ layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 1) uniform sampler2D Source; layout(set = 0, binding = 2) uniform sampler2D avglum_pass; -layout(set = 0, binding = 3) uniform sampler2D first_pass; +layout(set = 0, binding = 3) uniform sampler2D flick_and_noise_pass; layout(set = 0, binding = 4) uniform sampler2D bloom_pass_finalFeedback; @@ -40,7 +40,7 @@ layout(set = 0, binding = 4) uniform sampler2D bloom_pass_finalFeedback; float get_avg_lum_from_mip(sampler2D tex, vec2 co, float lod) { - vec3 mip = textureLod(first_pass, co, lod).rgb; + vec3 mip = textureLod(flick_and_noise_pass, co, lod).rgb; mip = apply_fuzzy_main_pass(mip); //return (mip.r+mip.g+mip.b)/3.0; float luminance_from_feedback = rgb_to_gray(mip); @@ -105,7 +105,7 @@ void main() { // (Branching with (if BLOOM_EYE_ADPT_SRT == 0.0) does not gain anything.) // Modulate exposure over time too. //Smooth luminance with specified lod in this alpha channel - float zone_luminance = get_avg_lum_from_mip(first_pass, vTexCoord, BLOOM_PUPIL_LUM_ZONE_W); + float zone_luminance = get_avg_lum_from_mip(flick_and_noise_pass, vTexCoord, BLOOM_PUPIL_LUM_ZONE_W); float smoothed_avglum = zone_luminance * BLOOM_EYE_ADPT_SRT; bloom_mix_adapted = max(0.0, BLOOM_MIX - smoothed_avglum); diff --git a/bezel/koko-aio/shaders/ntsc_pass.slang b/bezel/koko-aio/shaders/colortools_and_ntsc_pass.slang similarity index 78% rename from bezel/koko-aio/shaders/ntsc_pass.slang rename to bezel/koko-aio/shaders/colortools_and_ntsc_pass.slang index d359625..03e51a1 100644 --- a/bezel/koko-aio/shaders/ntsc_pass.slang +++ b/bezel/koko-aio/shaders/colortools_and_ntsc_pass.slang @@ -17,30 +17,6 @@ layout(location = 4) out float vNTSC_weights[NTSC_FILTER_WIDTH_MAX]; #include "includes/functions.include.slang" -vec3 kelvin2rgb(float k) { - //Convert kelvin temperature to rgb factors - k = clamp(k,1000,40000); - k=k/100.0; - float tmpCalc; - vec3 pixel_out; - if (k<=66) { - pixel_out.r = 255; - pixel_out.g = 99.47080258612 * log(k) - 161.11956816610; - } else { - pixel_out.r = 329.6987274461 * pow(k - 60 ,-0.13320475922); - pixel_out.g = 288.12216952833 * pow(k-60, -0.07551484921); - } - - if (k >= 66) - pixel_out.b = 255; - else if (k<=19) - pixel_out.b = 0; - else - pixel_out.b = 138.51773122311 * log(k - 10) - 305.04479273072; - - return pixel_out/255.0; -} - /* hann() sinc() functions by xot: * copyright (c) 2017-2018, John Leffingwell * license CC BY-SA Attribution-ShareAlike @@ -98,7 +74,7 @@ layout(location = 4) in float vNTSC_weights[NTSC_FILTER_WIDTH_MAX]; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 2) uniform sampler2D Source; -//layout(set = 0, binding = 3) uniform sampler2D ntsc_passFeedback; +layout(set = 0, binding = 3) uniform sampler2D colortools_and_ntsc_passFeedback; // Colorspace conversion matrix for YIQ-to-RGB @@ -151,31 +127,6 @@ vec4 ntscdec(vec2 uv) { } - - -#define W vec3(0.2125, 0.7154, 0.0721) -vec3 color_tools(vec3 pixel_out) { -//Apply color corrections to input signal. - - //Push luminance without clipping - pixel_out = pixel_push_luminance(pixel_out,LUMINANCE); - - //Modify saturation - if (!(SATURATION == 1.0)) { - vec3 intensity = vec3(dot(pixel_out.rgb, W)); - pixel_out.rgb = mix(intensity, pixel_out.rgb, SATURATION); - } - - //Modify contrast and brightness - if (CONTRAST != 0.0 || BRIGHTNESS != 0.0) - pixel_out.rgb = apply_contrast_brightness(pixel_out.rgb, CONTRAST, BRIGHTNESS); - - //Modify color temperature - if (TEMPERATURE != 6500.0) pixel_out.rgb = pixel_out.rgb * vTemperature_rgb; - return pixel_out; -} - - vec3 debug() { vec3 pixel_debug; float blink_time = 120; @@ -190,7 +141,6 @@ void main() { //FragColor = vec4(debug(), 1.0); return; - //This will go into alpha channel to make glow aware of it and blur more. //It could be configurable. float artifacts = 0.0; @@ -202,7 +152,7 @@ void main() { pixel_out = pixel_out_vec4.rgb; artifacts = pixel_out_vec4.a; - //artifacts = mix(artifacts, texture(ntsc_passFeedback, vTexCoord).a, 0.5); <-- this helps + //artifacts = mix(artifacts, texture(colortools_and_ntsc_passFeedback, vTexCoord).a, 0.5); <-- this helps //FragColor = vec4(artifacts); return; /* @@ -217,10 +167,24 @@ void main() { } if (DO_CCORRECTION == 1.0) - pixel_out = color_tools(pixel_out); + pixel_out = color_tools(pixel_out, vTemperature_rgb); + if (DO_DOT_MATRIX + DOT_M_MBLUR_STR > 1.0) { + vec3 feedback = texture(colortools_and_ntsc_passFeedback, vTexCoord).rgb; + + vec3 m_blur_adapted = vec3(DOT_M_MBLUR_STR); + if (DOT_M_MBLUR_MODE > 0.0) { + vec3 adaption = mix_step (pixel_out - feedback, + feedback - pixel_out, + DOT_M_MBLUR_MODE -1); + //adaption = mix_step(adaption, -adaption, DOT_M_MBLUR_MODE -1); + m_blur_adapted *= clamp( adaption, 0.0, 1.0 ); + m_blur_adapted = pow(m_blur_adapted, vec3(0.25)); + } + pixel_out = mix(pixel_out, feedback, m_blur_adapted ); + } FragColor = vec4(pixel_out, artifacts); diff --git a/bezel/koko-aio/shaders/config.globals.inc b/bezel/koko-aio/shaders/config.globals.inc index dee14e3..90ec60c 100644 --- a/bezel/koko-aio/shaders/config.globals.inc +++ b/bezel/koko-aio/shaders/config.globals.inc @@ -55,7 +55,10 @@ #define CONTRAST global.CONTRAST #define BRIGHTNESS global.BRIGHTNESS #define TEMPERATURE global.TEMPERATURE - + #define COLOR_MONO_COLORIZE global.COLOR_MONO_COLORIZE + #define COLOR_MONO_HUE1 global.COLOR_MONO_HUE1 + #define COLOR_MONO_HUE2 global.COLOR_MONO_HUE2 + #define COLOR_MONO_HUE_BIAS global.COLOR_MONO_HUE_BIAS #define DO_FXAA global.DO_FXAA @@ -252,3 +255,19 @@ #define TILT_Y global.TILT_Y #define TILT_FOV global.TILT_FOV #define TILT_BEZEL_K global.TILT_BEZEL_K + +#define TATE global.TATE + +#define DO_DOT_MATRIX global.DO_DOT_MATRIX + #define DOT_M_G_SHARP global.DOT_M_G_SHARP + #define DOT_M_RGB_SHARP global.DOT_M_RGB_SHARP + #define DOT_M_RGB_STR global.DOT_M_RGB_STR + #define DOT_M_G_TRESH global.DOT_M_G_TRESH + #define DOT_M_G_BRT global.DOT_M_G_BRT + #define DOT_M_G_GAIN global.DOT_M_G_GAIN + #define DOT_M_G_STR global.DOT_M_G_STR + #define DOT_M_MBLUR_STR global.DOT_M_MBLUR_STR + #define DOT_M_MBLUR_MODE global.DOT_M_MBLUR_MODE + #define DOT_M_MULTIPLY global.DOT_M_MULTIPLY + #define DOT_M_SHADOW_STR global.DOT_M_SHADOW_STR + #define DOT_M_SHADOW_OFF global.DOT_M_SHADOW_OFF diff --git a/bezel/koko-aio/shaders/config.inc b/bezel/koko-aio/shaders/config.inc index db2dbea..22f7777 100644 --- a/bezel/koko-aio/shaders/config.inc +++ b/bezel/koko-aio/shaders/config.inc @@ -1,9 +1,13 @@ // BEZEL STATIC CONFIG ############################################################################################## + //The following defines the monitor frame resolution in textures/monitor_body_[curved/straight].png + //and are used to calculate the sampling lod. + //Change if you change the texture resolution or + //you can comment it to let the shader calculates them at runtime (heavier). +#define BEZEL_RES vec2(2923, 2178) - // Uncomment this to improve bezel downscaling. - // If you are using standard bezel, leave commented to gain performance. -#define STATIC_BEZEL_USE_MIPMAP 1.0 + //The following can slightly correct bezel aspect +#define BEZEL_ASPECT_CORRECTION (1.0 - 0.004) //This is used to skip calculations in the reflection blur code. //set it to minimum value that allows you to see reflection entirely @@ -183,9 +187,14 @@ layout(std140, set = 0, binding = 0) uniform UBO { //vec4 monitor_bodySize; //vec4 bgSize; vec4 avglum_passSize; - vec4 first_passSize; - vec4 ntsc_passSize; + vec4 flick_and_noise_passSize; + vec4 colortools_and_ntsc_passSize; + float COLOR_MONO_COLORIZE; + float COLOR_MONO_HUE1; + float COLOR_MONO_HUE2; + float COLOR_MONO_HUE_BIAS; + float DO_SCANLINES; float DO_IN_GLOW; float DO_VMASK_AND_DARKLINES ; @@ -337,16 +346,36 @@ layout(std140, set = 0, binding = 0) uniform UBO { float BACKDROP_OFFY; float BACKDROP_ZOOM; + float TATE; + + float DO_DOT_MATRIX; + float DOT_M_G_SHARP; + float DOT_M_G_TRESH; + float DOT_M_G_STR; + float DOT_M_G_BRT; + float DOT_M_RGB_SHARP; + float DOT_M_RGB_STR; + float DOT_M_G_GAIN; + float DOT_M_MBLUR_STR; + float DOT_M_MBLUR_MODE; + float DOT_M_MULTIPLY; + float DOT_M_SHADOW_STR; + float DOT_M_SHADOW_OFF; + } global; // Color correction #pragma parameter DO_CCORRECTION "★ Color corrections enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter LUMINANCE " Luminance push (>1.0=clip)" 0.0 0.0 1.5 0.05 -#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01 -#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01 #pragma parameter BRIGHTNESS " Brightness in (0.0=off)" 0.0 -1.0 1.0 0.01 +#pragma parameter CONTRAST " Contrast in (0.0=off)" 0.0 -1.0 1.0 0.01 #pragma parameter TEMPERATURE " Temperature in (6500=off)" 6500.0 3000 10000.0 50.0 #pragma parameter GAMMA_OUT " Gamma out" 0.69 0.1 4.0 0.01 +#pragma parameter COLOR_MONO_COLORIZE " Monochrome screen colorization" 0.0 0.0 1.0 0.1 +#pragma parameter COLOR_MONO_HUE1 " . Hue bright" 0.25 0.0 1.0 0.01 +#pragma parameter COLOR_MONO_HUE2 " . Hue dark" 0.3 0.0 1.0 0.01 +#pragma parameter COLOR_MONO_HUE_BIAS " . Hue bright-dark bias" 0.0 -2.0 2.0 0.01 +#pragma parameter SATURATION " Saturation in (1.0=off)" 1.0 0.0 2.0 0.01 #pragma parameter BLANK1 " " 0.0 0.0 1.0 1.0 @@ -411,7 +440,6 @@ layout(std140, set = 0, binding = 0) uniform UBO { #pragma parameter BLANK7 " " 0.0 0.0 1.0 1.0 - // Mask #pragma parameter DO_VMASK_AND_DARKLINES "★ Masks and/or Darklines enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter MASK_COMPENSATION " Compensate for brightness loss" 0.0 0.0 1.0 0.05 @@ -428,21 +456,11 @@ layout(std140, set = 0, binding = 0) uniform UBO { #pragma parameter DRKLN_OVERWHITE " . Affect bright colors" 1.0 0.0 1.0 0.05 #pragma parameter BLANK9 " " 0.0 0.0 1.0 1.0 - - -// Halo -#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0 -#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025 -#pragma parameter HALO_W " Sharpness, horizontal" 1.75 0.35 7.0 0.05 -#pragma parameter HALO_H " Sharpness, Vertical" 1.75 0.35 7.0 0.05 -#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1 -#pragma parameter HALO_VS_SCAN " Light up scanlines gaps too" 0.0 0.0 1.0 0.1 -#pragma parameter BLANK10 " " 0.0 0.0 1.0 1.0 - - +#pragma parameter TATE "★ Tate mode (1:auto 2:forced)" 0.0 0.0 2.0 1.0 +#pragma parameter BLANK7a " " 0.0 0.0 1.0 1.0 // Scanlines -#pragma parameter DO_SCANLINES "★ Scanlines enable? ==>" 0.0 0.0 1.0 1.0 +#pragma parameter DO_SCANLINES "★ Scanlines enable? (NOT with dot matrix!) ==>" 0.0 0.0 1.0 1.0 #pragma parameter SCANLINE_MIN " Minimum height" 1.0 0.01 1.0 0.01 #pragma parameter SCANLINE_MAX " Maximum height" 0.5 0.05 1.0 0.01 #pragma parameter SCANLINE_MINMAX_GAMMA " Min->Max inertia" 1.0 0.0 4.0 0.1 @@ -452,12 +470,38 @@ layout(std140, set = 0, binding = 0) uniform UBO { #pragma parameter SCANLINE_FLICKERING_POWER " Interlace Flicker power" 0.25 0.0 8.0 0.01 #pragma parameter SCANLINE_DISABLE_ON_INTERLACE " Disable on interlaced screen" 0.0 0.0 1.0 1.0 #pragma parameter BLANK11 " " 0.0 0.0 1.0 1.0 - #pragma parameter SCANLINE_SM_TYPE " Slotmask type (disable (0) with darklines!)" 0.0 0.0 3.0 1.0 #pragma parameter SCANLINE_SM_STRENGTH " . Slotmask strength" 1.0 0.0 1.0 0.05 #pragma parameter SCANLINE_SM_VOFFSET " . Offset (type 1 only)" 45.0 0.0 158.0 1.0 #pragma parameter BLANK12 " " 0.0 0.0 1.0 1.0 +// Dot matrix emulation +#pragma parameter DO_DOT_MATRIX "★ Dot matrix emulation enable? (NOT with scanlines!) ==>" 0.0 0.0 1.0 1.0 +#pragma parameter DOT_M_G_STR " Grid strength" 0.0 0.0 1.0 0.01 +#pragma parameter DOT_M_G_TRESH " . Paint on bright (<0 on black)" 1.1 -1.1 1.1 0.01 +#pragma parameter DOT_M_G_BRT " . Grid brightness" 0.0 0.0 1.0 0.01 +#pragma parameter DOT_M_G_SHARP " . Grid sharpness" 2.0 0.0 20.0 0.25 +#pragma parameter DOT_M_RGB_STR " RGB strength" 1.0 0.0 1.0 0.01 +#pragma parameter DOT_M_RGB_SHARP " . RGB sharpness" 2.0 0.1 16.0 0.01 +#pragma parameter DOT_M_G_GAIN " . RGB Green gain correction" 0.85 0.1 1.0 0.01 +#pragma parameter DOT_M_MBLUR_STR " Refresh inertia" 0.45 0.0 0.9 0.05 +#pragma parameter DOT_M_MBLUR_MODE " . Inertia on: both,white,black" 0.0 0.0 2.0 1.0 +#pragma parameter DOT_M_SHADOW_STR " Shadow strength (disables deconvergence)" 0.0 0.0 1.0 0.01 +#pragma parameter DOT_M_SHADOW_OFF " Shadow offset" 0.0 -1.0 1.0 0.01 + +#pragma parameter DOT_M_MULTIPLY " Multiply factor (debug)" 1.0 1.0 50.0 1.0 +#pragma parameter BLANK12c " " 0.0 0.0 1.0 1.0 + +// Halo +#pragma parameter DO_HALO "★ Halo enable? ==>" 0.0 0.0 1.0 1.0 +#pragma parameter HALO_POWER " Strength" 0.9 0.0 5.0 0.025 +#pragma parameter HALO_W " Sharpness, horizontal" 1.75 0.35 7.0 0.05 +#pragma parameter HALO_H " Sharpness, Vertical" 1.75 0.35 7.0 0.05 +#pragma parameter HALO_GAMMA " Gamma, the higher, the less the halo on dark colors" 2.0 1.0 10.0 0.1 +#pragma parameter HALO_VS_SCAN " Light up scanlines and dot grid gaps too" 0.0 0.0 1.0 0.1 +#pragma parameter BLANK10 " " 0.0 0.0 1.0 1.0 + + // Bloom #pragma parameter DO_BLOOM "★ Bloom enable? ==>" 0.0 0.0 1.0 1.0 @@ -477,8 +521,8 @@ layout(std140, set = 0, binding = 0) uniform UBO { //Curvature parameters: #pragma parameter DO_CURVATURE "★ Curvature/Border enable? ==>" 0.0 0.0 1.0 1.0 -#pragma parameter GEOM_WARP_X " Warp X" 0.3 0.0 6.0 0.025 -#pragma parameter GEOM_WARP_Y " Warp Y" 0.0 0.0 6.0 0.025 +#pragma parameter GEOM_WARP_X " Warp X" 0.430 0.0 6.0 0.01 +#pragma parameter GEOM_WARP_Y " Warp Y" 0.49 0.0 6.0 0.01 #pragma parameter GEOM_CUT_EARS " Cut curvature ears" 1.4 1.0 10.0 0.01 #pragma parameter GEOM_CORNER_SIZE " Corner radius" 0.005 0.005 0.1 0.001 #pragma parameter GEOM_CORNER_SMOOTH " Corner sharpness" 350.0 15.0 1000.0 1.0 @@ -489,8 +533,8 @@ layout(std140, set = 0, binding = 0) uniform UBO { //Bezel related #pragma parameter DO_BEZEL "★ Bezel enable? ==>" 0.0 0.0 1.0 1.0 #pragma parameter BEZEL_USE_STRAIGHT " Straight" 0.0 0.0 1.0 1.0 -#pragma parameter BEZEL_INNER_ZOOM " Inner zoom (ignored if integer scaled)" -0.18 -1.5 0.5 0.005 -#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.005 +#pragma parameter BEZEL_INNER_ZOOM " Inner zoom (ignored if integer scaled)" -0.18 -1.5 0.5 0.001 +#pragma parameter BEZEL_FRAME_ZOOM " Frame zoom" 0.0 -1.5 0.5 0.001 #pragma parameter BEZEL_R " Color: Red" -0.3 -1.0 1.0 0.005 #pragma parameter BEZEL_G " Color: Green" -0.3 -1.0 1.0 0.005 #pragma parameter BEZEL_B " Color: Blue" -0.3 -1.0 1.0 0.005 @@ -517,7 +561,8 @@ layout(std140, set = 0, binding = 0) uniform UBO { #pragma parameter BG_IMAGE_ZOOM " Zoom Image" 1.0 -1.0 3.0 0.0005 #pragma parameter BG_IMAGE_ROTATION " Rotate image mode (-1 for auto)" -1.0 -1.0 2.0 1.0 #pragma parameter BG_IMAGE_NIGHTIFY " Nightify image" 0.0 0.0 1.0 0.1 -#pragma parameter BG_IMAGE_WRAP_MODE " Wrap mode: default, clamp to border, edge, repeat" 0.0 0.0 3.0 1.0 +#pragma parameter LABEL_0101 " !NEXT FEATURE IS STATIC, SEE docs.md TO ENABLE" 0.0 0.0 1.0 1.0 +#pragma parameter BG_IMAGE_WRAP_MODE " Wrap mode: default, clamp to border, edge, repeat" 0.0 0.0 3.0 1.0 #pragma parameter BLANK16 " " 0.0 0.0 1.0 1.0 //Backdrop image @@ -594,8 +639,8 @@ layout(std140, set = 0, binding = 0) uniform UBO { //Content geomerty overrides #pragma parameter DO_GAME_GEOM_OVERRIDE "★ Override content geometry enable? ==>" 0.0 0.0 1.0 1.0 -#pragma parameter GAME_GEOM_INT_SCALE " Integer scale (disables inner zoom)" 0.0 0.0 1.0 1.0 -#pragma parameter GAME_GEOM_INT_SCALE_MAX " Maximum integer scale" 10.0 1.0 100.0 1.0 +#pragma parameter GAME_GEOM_INT_SCALE " Integer scale (disables inner zoom) 2=No keep aspect" 0.0 0.0 2.0 1.0 +#pragma parameter GAME_GEOM_INT_SCALE_MAX " Maximum integer scale" 10.0 1.0 100.0 1.0 #pragma parameter LABEL_WARNING4 " ⚠ The following will override integer scale ⚠" 1.0 1.0 1.0 1.0 #pragma parameter GAME_GEOM_ASPECT " Aspect (0 = unchanged)" 0.0 0.0 3.0 0.005 #pragma parameter GAME_GEOM_VSHIFT " Vertical position" 0.0 -10.0 10.0 0.01 diff --git a/bezel/koko-aio/shaders/final_pass.slang b/bezel/koko-aio/shaders/final_pass.slang index 75b55ad..161c712 100644 --- a/bezel/koko-aio/shaders/final_pass.slang +++ b/bezel/koko-aio/shaders/final_pass.slang @@ -5,6 +5,7 @@ * Does masks, spot, bezel, vignette, background image (anything else?) */ + #include "config.inc" #pragma stage vertex @@ -15,7 +16,7 @@ layout(location = 1) in vec2 TexCoord; layout(location = 0) out vec2 vTexCoord; layout(location = 1) out vec2 vOutputCoord; layout(location = 2) out vec2 spot_offset; -layout(location = 3) out vec2 vFragCoord; +layout(location = 3) out vec2 vFragCoord_Tated; layout(location = 4) out float vIsRotated; @@ -36,6 +37,9 @@ layout(location = 4) out float vIsRotated; layout(location = 13) out float vDynamicSeed; layout(location = 14) out float vBEZEL_INNER_ZOOM_adapted; layout(location = 15) out float vVmask_gap; +layout(location = 16) out float vFcol_Tated; +layout(location = 17) out float vDo_Tate; +layout(location = 18) out vec3 vDotMat_Grid_Color; #include "includes/functions.include.slang" @@ -47,10 +51,10 @@ void main() { vIn_aspect = get_in_aspect(); //Calculate vTexcoord as fractional or integer scaled? - if ( !do_integer_scale() ) - vTexCoord = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, vIn_aspect, bool(vIsRotated)) + vec2(0.0001); + if ( need_NO_integer_scale() ) + vTexCoord = get_scaled_coords_aspect(TexCoord,global.FinalViewportSize, vIn_aspect, bool(vIsRotated)) + vec2(0.0000); else - vTexCoord = integer_scale(TexCoord, vIn_aspect, bool(vIsRotated)) + vec2(0.0001); //<- without the offset, SCANLINE_MIN doesn't work. + vTexCoord = integer_scale(TexCoord, vIn_aspect, bool(vIsRotated), GAME_GEOM_INT_SCALE-1.0 ) + vec2(0.0001); //<- without the offset, SCANLINE_MIN doesn't work. //if (DO_GLOBAL_SHZO >0.5) // vTexCoord = zoom(vTexCoord + vec2(-GLOBAL_OFFX, -GLOBAL_OFFY), GLOBAL_ZOOM ); @@ -60,17 +64,17 @@ void main() { vOutputCoord = TexCoord; - vFragCoord = vec2( floor(vOutputCoord.x * params.OutputSize.x), + + vec2 vFragCoord = vec2( floor(vOutputCoord.x * params.OutputSize.x), floor(vOutputCoord.y * params.OutputSize.y)); - + vDo_Tate = float(TATE+vIsRotated > 1.001); + vFragCoord_Tated = mix_step(vFragCoord.xy, vFragCoord.yx, vDo_Tate ); + vBEZEL_INNER_ZOOM_adapted = get_BEZEL_INNER_ZOOM() * DO_BEZEL; //Precalc some Curvature/Warp values: - float warp_adaption = 1 - vBEZEL_INNER_ZOOM_adapted * 4.0; - vec2 geom_warp_adapted = vec2(GEOM_WARP_X, GEOM_WARP_Y) * warp_adaption; - - vWarp_vexp = 1.0/ (1 + (vec2(geom_warp_adapted.x, geom_warp_adapted.y) * 0.2)) ; + vWarp_vexp = 1.0/ (1 + (vec2(GEOM_WARP_X, GEOM_WARP_Y) * 0.2)) ; vWarp_arg2 = 1.0 - pow(vec2(0.29289321881345247559915563789515), vWarp_vexp ); //SPOT @@ -96,7 +100,7 @@ void main() { //contrast and brightness into account. This is needed so that scanline generation //can map the proper input range and strictly obey scanline thickness constraints. vMax_inLum = max( 1.0, DO_CCORRECTION * apply_contrast_brightness(1.0, CONTRAST, BRIGHTNESS)) * - max( 1.0, DO_IN_GLOW * IN_GLOW_POWER); + max( 1.0, DO_IN_GLOW * IN_GLOW_POWER); } //Generate a seed that changes over time for temporal random noise @@ -107,6 +111,16 @@ void main() { // vec4 GAP_SIZE_PER_SCALE = vec4(1.0, 1.0, 2.0, 2.0); <--- moved in config.inc vec4 vgap_size_per_scale = GAP_SIZE_PER_SCALE / VMASK_DARKLINE_SCALE; vVmask_gap = vgap_size_per_scale[int(VMASK_DARKLINE_SCALE-1)]; + + vFcol_Tated = mix_step(vOutputCoord.x * params.OutputSize.x, vOutputCoord.y * params.OutputSize.y, vDo_Tate); + + //Calc dotmat grid color + vDotMat_Grid_Color = vec3(DOT_M_G_BRT); + if (DO_DOT_MATRIX + DO_CCORRECTION > 1.1) { + vDotMat_Grid_Color = color_tools(vec3(DOT_M_G_BRT), kelvin2rgb(TEMPERATURE)); + //Since we modify grid brightness via a specific use parameter, explicitely multiply it by that: + vDotMat_Grid_Color *= DOT_M_G_BRT ; + } } @@ -114,7 +128,7 @@ void main() { layout(location = 0) in vec2 vTexCoord; layout(location = 1) in vec2 vOutputCoord; layout(location = 2) in vec2 spot_offset; -layout(location = 3) in vec2 vFragCoord; +layout(location = 3) in vec2 vFragCoord_Tated; layout(location = 4) in float vIsRotated; layout(location = 5) in vec2 vWarp_vexp; layout(location = 6) in vec2 vWarp_arg2; @@ -127,7 +141,9 @@ layout(location = 12) in float vIn_aspect; layout(location = 13) in float vDynamicSeed; layout(location = 14) in float vBEZEL_INNER_ZOOM_adapted; layout(location = 15) in float vVmask_gap; - +layout(location = 16) in float vFcol_Tated; +layout(location = 17) in float vDo_Tate; +layout(location = 18) in vec3 vDotMat_Grid_Color; layout(location = 0) out vec4 FragColor; @@ -147,7 +163,7 @@ layout(set = 0, binding = 11) uniform sampler2D in_glow_pass; layout(set = 0, binding = 12) uniform sampler2D halo_pass; -layout(set = 0, binding = 15) uniform sampler2D first_pass; +layout(set = 0, binding = 15) uniform sampler2D flick_and_noise_pass; @@ -196,8 +212,8 @@ vec3 pixel_vmask(vec3 source, float white_reference, float over_white) { vec4 vec_mod=(vec4(3,1,2,3) + vec4(VMASK_GAP * vVmask_gap,0.0,0.0,0.0))* VMASK_DARKLINE_SCALE; vec_mod = ceil(vec_mod); - float fcol = vOutputCoord.x * params.OutputSize.x; - float mod_compare = mod(fcol, vec_mod.x); + + float mod_compare = mod(vFcol_Tated, vec_mod.x); if (mod_compare < vec_mod.y) vmasked = m1; @@ -240,13 +256,12 @@ vec3 pixel_vmask_gm(vec3 source, float white_reference, float over_white) { vec3 m2 = vec3( 1.0 , ooo , 1.0 ); //col 2 vec3 gap = vec3( ggg ); - float fcol = vOutputCoord.s * params.OutputSize.x; vec3 pixel_out; vec3 vmasked; vec3 vec_mod=(vec3(2,1,2) + vec3(VMASK_GAP * vVmask_gap,0.0,0.0))* VMASK_DARKLINE_SCALE ; vec_mod = ceil(vec_mod); - float mod_compare = mod(fcol, vec_mod.x); + float mod_compare = mod(vFcol_Tated, vec_mod.x); /* if (mod_compare < vec_mod.y) @@ -281,7 +296,7 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans, float period_x = (3.0 - VMASK_USE_GM + VMASK_GAP * vVmask_gap) * VMASK_DARKLINE_SCALE; float period_y = darkline_every * VMASK_DARKLINE_SCALE; - vec2 FragCoord = vFragCoord; + vec2 FragCoord = vFragCoord_Tated; if (over_white != 1.0) { //less effect on bright colors. @@ -302,7 +317,88 @@ vec3 pixel_darklines(vec3 source,float darkline_every, float darkline_trans, return source; } -float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum, float max_inLum) { + + +vec4 fn_pixel_dotmat(vec2 coords, vec3 pixel_in) { + + + //Base angle, depends on original size: + vec2 angle_base = coords * pi * params.OriginalSize.xy; //FIXME here we want .yy to make integer scaling + + //Zoom to debug: + angle_base/=DOT_M_MULTIPLY; + + //Set the rgb and grid sharpness: + vec3 s_rgb = vec3(DOT_M_RGB_SHARP); + float s_grid = DOT_M_G_SHARP; + + //Generate bw grid: + vec2 grid = cos(angle_base); + grid = grid * grid; + grid = pow(grid, vec2(s_grid)); + grid = 1 - grid; + + //Generate rgb mask + vec3 mask_rgb=vec3(1.0); + if (DOT_M_RGB_STR > 0.0) { + //float wideness_k = DOT_M_RGB_WID; + float rgb_wideness = (pi/4.0); // * wideness_k; + + //Generates 3 sines with 1/3 pi offset + vec3 angle_rgb = vec3( angle_base.x + rgb_wideness, + angle_base.x - pi, + angle_base.x - rgb_wideness ); + + mask_rgb = sin(angle_rgb); + mask_rgb *= mask_rgb; + mask_rgb = pow(mask_rgb, s_rgb); + + //Adjust green gain + mask_rgb.g *= DOT_M_G_GAIN; + + //Apply strength + mask_rgb=mix(vec3(1.0), mask_rgb, DOT_M_RGB_STR); + } + + + //Combine gridx and gridy into a single one + //float fgrid = min(grid.x, grid.y); + float fgrid = grid.x* grid.y; + + //Modify strength for "paint on background" option + + //Smoothly fadeout grid on background + //The fadeout size: + float fade_size = 0.3; + + //We invert the smooth logic if threshold is negative. this allow to fadeout + //the grid on bright or dark backgrounds. + float lum_scaled = dot(pixel_in, vec3(0.33333)); + lum_scaled = clamp(lum_scaled, 0.0, 1.0); + lum_scaled = mix_step(1-lum_scaled, lum_scaled, float(DOT_M_G_TRESH > 0.0)); + + float smooth_threshold = abs(DOT_M_G_TRESH); + vec2 smooth_range = vec2(smooth_threshold, smooth_threshold+fade_size); + float grid_smoothstep = 1- smoothstep(smooth_range.x, smooth_range.y, lum_scaled); + + + + //Adapt grid strength + float grid_str = DOT_M_G_STR * grid_smoothstep; + //Apply strength modifier + float fgrid_adpt = mix(1.0, fgrid, grid_str); + + + //Output is the mix of the gap and the rgb masked pixel in. + //In the alpha channel we put the grid because it could be selectiveli brightened by halo + return vec4( + mix(vDotMat_Grid_Color, pixel_in * mask_rgb ,fgrid_adpt), + fgrid_adpt + ); + +} + +float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum, float max_inLum, float tate) { /* Produces a B/W scanline shape to be multiplicated by the source * pixel later on to emulate scanline effect. * scanlines can be drawn on odd and even fields alternating on odd and @@ -318,13 +414,21 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum float lum_scaled = map_range(lum, min_inLum, max_inLum, SCANLINE_MIN, SCANLINE_MAX); - float angle_base = coords.y * pi * params.OriginalSize.y * period; - float lines = 1.0; - //1 - Generate base scanline. + //0 - Generate base scanline. + //1 - The base coords is switched from coords.y to coords.x if tate mode is requested. //2 - offset them on odd frames if needed (vScanlineAlternateOffset via vertex shader) - //3 - Dont do it when the screen is interlaced and we have to skip drawing scanlines on interlaced screens. + //3 - Dont do it when the screen is interlaced and we have to skip drawing scanlines on interlaced screens + + //coords += params.OriginalSize.zw*0.5; //<-- this seems needed when using integer scaling + //due to linear filtering in earlier pass FIXME don't forget me! + coords = mix_step(coords.xy, coords.yx, tate); + float originalsize = mix_step(params.OriginalSize.y, params.OriginalSize.x, tate); + + float angle_base = coords.y * pi * originalsize * period; + + if (!( is_interlaced && SCANLINE_DISABLE_ON_INTERLACE == 1.0 )) { lines = pow( sin(angle_base + vScanlineAlternateOffset), 2.0); } @@ -341,7 +445,7 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum if (do_slotmask) { float Darkline_part_w = (3.0 - VMASK_USE_GM + VMASK_GAP) * VMASK_DARKLINE_SCALE; float Darkline_part_w_x2 = Darkline_part_w*2; - bool odd_column = mod(vFragCoord.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w; + bool odd_column = mod(vFragCoord_Tated.x + Darkline_part_w , Darkline_part_w_x2) < Darkline_part_w; if (SCANLINE_SM_TYPE == 1.0) { // Slotmask is out oh phase every "odd" triple and mixed with @@ -416,12 +520,14 @@ float fn_scanline_mask(vec2 coords, bool do_slotmask, float lum, float min_inLum //Apply min brightness lines = lines * (1-SCANLINE_DARK ) + SCANLINE_DARK ; + + return lines; } float get_clamped_white_reference(vec3 pixel_in){ float white_reference = max(max(pixel_in.r,pixel_in.g),pixel_in.b); - white_reference = min(white_reference,1.0); //Clamp here for both vmask and darklines. +// white_reference = min(white_reference,1.0); //Clamp here for both vmask and darklines. return white_reference; } @@ -545,7 +651,10 @@ vec2 get_scaled_coords_for_bezel() { //But still, i need to access it twice in the code. //So this is a function that ensures me that i always calc it the same way. - vec2 co = zoomout_coords(vTexCoord,-BEZEL_FRAME_ZOOM,1.0); + vec2 co = vTexCoord; + + co = zoomout_coords(co, -BEZEL_FRAME_ZOOM, 1.0); + co.y = zoom1D(co.y, BEZEL_ASPECT_CORRECTION); if (DO_TILT == 1.0) return tilt(co, vIsRotated, vec2(TILT_X, TILT_Y) * TILT_BEZEL_K); @@ -601,6 +710,60 @@ vec3 ambi_blend_image(vec4 image, vec3 ambi) { return image.rgb; } +float gaussian_coefficient(float x, float sigma) { + //restituisce un coefficiente gaussiano per x compreso tra 0 ed 1 + float coefficient = 1.0 / sqrt(2.0 * 3.14159265358979323846 * sigma); + float exponent = -((x * x) / (2.0 * sigma)); + return coefficient * exp(exponent); +} + +vec3 boxed_blur_x(sampler2D tex, vec2 co, float box_size, vec4 output_size) { + /* blur tex in boxes of width box_size. + eg: box_size=4: + in: [abcd][edgh][ijkl]... + out [AVG1][AVG2][AVG3] + were AVG is a gaussian blur applied to each 4 elements separately. + */ + + //The current pixel, x: + float x = co.x/output_size.z; + //The group x belongs to, g: + float g = ceil(x/box_size); + //The first element of the group, x0 + float x0 = box_size * (g-1); + + //Init output color: + vec3 c = vec3(0.0); + + //We want a dumb arithmetic average? + #define BOXB_DUMB 0.0 + //blurriness of output + #define BOXB_SIGMA 0.5 + + //Iterate for every pixel in group: + for (float xn = x0; xn < x0 + box_size; xn++) { + //Normalize interval to 0..1 to get gauss coefficients afterwards + float xn_normalizzato = normalize_range(xn, x0, x0 + (box_size-1)); + + //Get gauss coefficient + float coefficient = 1.0; + if (BOXB_DUMB == 0.0) + coefficient = gaussian_coefficient(xn_normalizzato, BOXB_SIGMA); + else + coefficient = 1.0; + + //Translate integer element to offset in 0..1 range: + float off = params.OutputSize.z*xn; + c = c + texture(tex, vec2(off,co.y) ).rgb * coefficient ; + } + //reduce gain (why on earth is needed for gauss?): + if (BOXB_DUMB == 1.0) + c = c/box_size; + else + c = c/(box_size * 0.4); + return c; +} + vec3 fn_pixel_content(vec2 coords) { vec3 pixel_in; @@ -614,6 +777,10 @@ vec3 fn_pixel_content(vec2 coords) { } else { pixel_in = texture(shift_and_bleed_pass,coords).rgb ; } + + + //pixel_in = boxed_blur_x(shift_and_bleed_pass, coords, params.OutputSize.x / params.OriginalSize.y, params.OutputSize); + pixel_bleed = pixel_in; vec3 pixel_out = pixel_in; @@ -649,19 +816,29 @@ vec3 fn_pixel_content(vec2 coords) { } - + + float scanline_or_dot_mat = 1.0; //init dot grid or scanline mask to 1.0 + + //Dot mask + if (DO_DOT_MATRIX == 1.0) { + vec4 pixel_grid_mask = fn_pixel_dotmat(coords, pixel_out); + //grid mask only is needed by halo to selectively light the grid. + scanline_or_dot_mat = pixel_grid_mask.a; + //rgb channel goes to pixel_out + pixel_out = pixel_grid_mask.rgb; + } + //Scanlines (non-flickering) - float scanline_mask = 1.0; if ( DO_SCANLINES == 1.0 ) { //Obtain a scanlined screen by multiplying the scanline mask and the pixel color. float lum = max(max(pixel_out.r, pixel_out.g), pixel_out.b); //The maximum possible brightness of the input color modified by glow,contrast and brightness. - float max_inLum = vMax_inLum; - float min_inLum = 0.0; - scanline_mask = fn_scanline_mask(coords, SCANLINE_SM_TYPE > 0.0, lum, min_inLum, max_inLum ); + float scanline_mask = fn_scanline_mask(coords, SCANLINE_SM_TYPE > 0.0, lum, 0.0, vMax_inLum, vDo_Tate ); pixel_out = min(pixel_out, 1.0) * ( scanline_mask + ( pixel_bleed * SCANLINES_BLEEDING * ( 1 - scanline_mask ) )); + //Since scanlines and dot matrix are alternative and halo can white both, just use a single var for both: + scanline_or_dot_mat = scanline_mask; } @@ -671,9 +848,9 @@ vec3 fn_pixel_content(vec2 coords) { if (DO_HALO == 1.0 ) { pixel_haloed = texture(halo_pass,coords).rgb; //Halo only on scanlines: - pixel_out += pixel_haloed * scanline_mask ; + pixel_out += pixel_haloed * scanline_or_dot_mat ; //Halo over scanlines gap too: - pixel_out += pixel_haloed * (HALO_VS_SCAN) * (1 - scanline_mask) ; + pixel_out += pixel_haloed * (HALO_VS_SCAN) * (1 - scanline_or_dot_mat) ; } @@ -722,20 +899,19 @@ vec4 fn_pixel_bezel(vec2 coords_for_bezel, vec2 coords_for_mirror, float nightif ) return vec4(0.0); vec4 bezel_in; - //Sample main bezel texture, Do we want mipmaps? - #ifdef STATIC_BEZEL_USE_MIPMAP - vec2 bezel_lut_size = textureSize(monitor_body_curved,0); //no need to branch here if we assume straight and curved textures are the same size. //FIXME? - float bezel_frame_lod = log2(bezel_lut_size.y * (BEZEL_FRAME_ZOOM+1.0) /global.FinalViewportSize.y); - if (BEZEL_USE_STRAIGHT < 0.5) - bezel_in = textureLod(monitor_body_curved,coords_for_bezel,bezel_frame_lod); - else - bezel_in = textureLod(monitor_body_straight,coords_for_bezel,bezel_frame_lod); + + //Sample main bezel texture: + #ifndef BEZEL_RES + vec2 bezel_lut_size = textureSize(monitor_body_curved, 0); //no need to branch here if we assume straight and curved textures are the same size. //FIXME? #else - if (BEZEL_USE_STRAIGHT < 0.5) - bezel_in = texture(monitor_body_curved,coords_for_bezel); - else - bezel_in = texture(monitor_body_straight,coords_for_bezel); + vec2 bezel_lut_size = BEZEL_RES; #endif + float bezel_frame_lod = log2(bezel_lut_size.y * (BEZEL_FRAME_ZOOM+1.0) /global.FinalViewportSize.y); + + if (BEZEL_USE_STRAIGHT < 0.5) + bezel_in = textureLod(monitor_body_curved,coords_for_bezel,bezel_frame_lod); + else + bezel_in = textureLod(monitor_body_straight,coords_for_bezel,bezel_frame_lod); //Exit if the bezel is completely transparent (the tube) @@ -808,13 +984,8 @@ void main() { } - //Calc initial content coords + //Initial content coords vec2 co_content = vTexCoord; - if (DO_CURVATURE == 1.0 && ((GEOM_WARP_X != 0.0) || (GEOM_WARP_Y != 0.0))) { - co_content = Warp_fast(co_content, vWarp_vexp, vWarp_arg2, GEOM_CUT_EARS); - //co_content = Warp(co_content, GEOM_WARP_X, GEOM_WARP_Y); - } - //Tilt? if (DO_TILT == 1.0) @@ -823,14 +994,19 @@ void main() { //Precalc Bezel coords, since it modifies content coords. vec2 co_bezel = vec2(0.0); - vec2 co_mirror; if (DO_BEZEL == 1.0) { co_content = zoomout_coords(co_content, -vBEZEL_INNER_ZOOM_adapted , 1.0); - co_mirror = zoom(co_content, 1/BEZEL_REFL_ZOOMOUT_ROOM); co_bezel = get_scaled_coords_for_bezel(); } + //Curvature + //Curvature has to come after inner zoom or bezel curved border will not match content + //curved border when inner zoom changes. + if (DO_CURVATURE == 1.0 && ((GEOM_WARP_X != 0.0) || (GEOM_WARP_Y != 0.0))) { + co_content = Warp_fast(co_content, vWarp_vexp, vWarp_arg2, GEOM_CUT_EARS); + } + //Apply other content coords modifiers if (DO_GAME_GEOM_OVERRIDE == 1.0) co_content = content_geom_override(co_content, GAME_GEOM_ASPECT, vIn_aspect, GAME_GEOM_VSHIFT, GAME_GEOM_HSHIFT, GAME_GEOM_ZOOM); @@ -856,6 +1032,7 @@ void main() { vec4 pixel_bezel; //SKIP LOGIC is inside fn_pixel_bezel if (DO_BEZEL == 1.0) { + vec2 co_mirror = zoom(co_content, 1/BEZEL_REFL_ZOOMOUT_ROOM); pixel_bezel = fn_pixel_bezel(co_bezel, co_mirror, BG_IMAGE_NIGHTIFY); //If we used a smooth_border, canvas_busy is it, but since the content is in the bezel, //we can safely use it to smooth/darken the game border @@ -925,9 +1102,9 @@ void main() { //For debug purposes: //quad split screen - //if ( (vOutputCoord.x < 0.5 && vOutputCoord.y > 0.5) || (vOutputCoord.x > 0.5 && vOutputCoord.y < 0.5) ) pixel_out = texture(first_pass,vOutputCoord).rgb; + //if ( (vOutputCoord.x < 0.5 && vOutputCoord.y > 0.5) || (vOutputCoord.x > 0.5 && vOutputCoord.y < 0.5) ) pixel_out = texture(flick_and_noise_pass,vOutputCoord).rgb; //split screen - //if (vTexCoord.y < 0.5) pixel_out = texture(first_pass,vTexCoord).rgb; + //if (vTexCoord.y < 0.5) pixel_out = texture(flick_and_noise_pass,vTexCoord).rgb; //pixel_out = texture(reflected_blurred_pass, vTexCoord).rgb; diff --git a/bezel/koko-aio/shaders/first_pass.slang b/bezel/koko-aio/shaders/flick_and_noise.slang similarity index 97% rename from bezel/koko-aio/shaders/first_pass.slang rename to bezel/koko-aio/shaders/flick_and_noise.slang index 7584095..d8bc25e 100644 --- a/bezel/koko-aio/shaders/first_pass.slang +++ b/bezel/koko-aio/shaders/flick_and_noise.slang @@ -90,13 +90,15 @@ void debug() { //pixel_debug=vec3(abs(sin(params.FrameCount/3.14/20)),0.0,0.0); //red fade - pixel_debug=vec3(1.0); + //pixel_debug=vec3(0.0,1.0,0.0); //pixel_debug=vec3(0.38,0.0,1.0)*vTexCoord.x; - //pixel_debug=vec3(vTexCoord.x); //H bw gradient + pixel_debug=vec3(vTexCoord.x); //H bw gradient + + //pixel_debug=vec3(1.0); //H bw gradient //pixel_debug=vec3(floor(vTexCoord.x*16)/16); //H bw gradient 16gray diff --git a/bezel/koko-aio/shaders/fxaa.slang b/bezel/koko-aio/shaders/fxaa.slang index 077435b..f337cdc 100644 --- a/bezel/koko-aio/shaders/fxaa.slang +++ b/bezel/koko-aio/shaders/fxaa.slang @@ -263,14 +263,14 @@ void main() #pragma stage fragment layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 2) uniform sampler2D first_pass; +layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass; void main() { if ( DO_FXAA == 0.0 ) return; //Here lies the blur modifier from ntsc pass to glow. //I'm not expecting any performance hit, since the lookup should have been cached alreadyl - float pixel_alpha = texture(first_pass, vTexCoord).a; + float pixel_alpha = texture(flick_and_noise_pass, vTexCoord).a; - FragColor = vec4(FxaaPixelShader(vTexCoord, first_pass, vec2(global.first_passSize.z, global.first_passSize.w)),pixel_alpha); + FragColor = vec4(FxaaPixelShader(vTexCoord, flick_and_noise_pass, vec2(global.flick_and_noise_passSize.z, global.flick_and_noise_passSize.w)),pixel_alpha); } diff --git a/bezel/koko-aio/shaders/halo_y.slang b/bezel/koko-aio/shaders/halo_y.slang index accf8bf..0b12908 100644 --- a/bezel/koko-aio/shaders/halo_y.slang +++ b/bezel/koko-aio/shaders/halo_y.slang @@ -34,7 +34,7 @@ void main() { return; } - pixel_haloed = blur9_y(Source, vTexCoord, global.first_passSize.xy, vHALO_H) * HALO_POWER; + pixel_haloed = blur9_y(Source, vTexCoord, global.flick_and_noise_passSize.xy, vHALO_H) * HALO_POWER; FragColor = vec4(pixel_haloed.rgb,1.0); diff --git a/bezel/koko-aio/shaders/in_glow_x.slang b/bezel/koko-aio/shaders/in_glow_x.slang index 2498130..0ed786c 100644 --- a/bezel/koko-aio/shaders/in_glow_x.slang +++ b/bezel/koko-aio/shaders/in_glow_x.slang @@ -57,7 +57,7 @@ void main() { //Make it resolution independent. IN_GLOW_W_ADAPTED = IN_GLOW_W_ADAPTED / NEW_SCALEMOD_X; - FragColor = vec4( blur9_x(shift_and_bleed_pass, vTexCoord, global.first_passSize.xy, IN_GLOW_W_ADAPTED), 1.0); + FragColor = vec4( blur9_x(shift_and_bleed_pass, vTexCoord, global.flick_and_noise_passSize.xy, IN_GLOW_W_ADAPTED), 1.0); //To debug ntsc artifacts mask: if (IN_GLOW_SHOW_ARTF_MASK > 0.5) diff --git a/bezel/koko-aio/shaders/includes/functions.include.slang b/bezel/koko-aio/shaders/includes/functions.include.slang index 0b691a4..d82275f 100644 --- a/bezel/koko-aio/shaders/includes/functions.include.slang +++ b/bezel/koko-aio/shaders/includes/functions.include.slang @@ -8,6 +8,10 @@ return (a * (1 - mix)) + (b * mix) ; } + vec3 mix_step3(vec3 a, vec3 b, float mix){ + return (a * (1 - mix)) + + (b * mix) ; + } vec4 mix_step(vec4 a, vec4 b, float mix){ return (a * (1 - mix)) + (b * mix) ; @@ -178,6 +182,10 @@ float map_range(float value, float min_in, float max_in, float min_out, float ma return min_out + (value - min_in) * (max_out - min_out) / (max_in - min_in); } +float normalize_range(float value, float min_in, float max_in) { + //Scales value in [min_in - max_in] to 0..1 + return (value - min_in) / (max_in - min_in); +} vec3 apply_contrast_brightness(vec3 c, float contrast, float brightness) { return scale_to_range_vec3(c, -contrast, 1+contrast) + brightness; @@ -420,13 +428,16 @@ vec2 Warp_try(vec2 pos, float warpX, float warpY) { return scale_coord; } - vec2 integer_scale(vec2 in_coords, float target_aspect, bool is_rotated) { - vec2 izoom; - + vec2 integer_scale(vec2 in_coords, float target_aspect, bool is_rotated, float uncorrected_aspect) { + float raw_in_aspect = params.OriginalSize.x/params.OriginalSize.y; - float adapted_aspect = target_aspect /raw_in_aspect; - in_coords.x = zoom1D(in_coords.x, adapted_aspect); + float adapted_aspect = target_aspect / raw_in_aspect; + + //Keep aspect? + adapted_aspect = mix_step(adapted_aspect, 1.0, uncorrected_aspect); + in_coords.x = zoom1D(in_coords.x, adapted_aspect); + vec2 izoom; if (!is_rotated) { //This is 1X integer zoom: izoom = params.OriginalSize.xy / global.FinalViewportSize.xy; @@ -436,31 +447,30 @@ vec2 Warp_try(vec2 pos, float warpX, float warpY) { izoom *= int_zoom; } else { izoom = params.OriginalSize.xy / global.FinalViewportSize.yx; - float int_zoom = floor(global.FinalViewportSize.y / (params.OriginalSize.x*adapted_aspect) ); + float int_zoom = floor(global.FinalViewportSize.y / (params.OriginalSize.x * adapted_aspect) ); int_zoom = clamp(int_zoom, 1.0, GAME_GEOM_INT_SCALE_MAX); izoom *= int_zoom; } return zoomxy(in_coords, izoom); } + bool need_NO_integer_scale() { + //returns if no integer scaling is requested. + return DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE == 0.0; + } + + bool need_integer_scale() { + //return if integer scaling is requested. + //return DO_GAME_GEOM_OVERRIDE == 1.0 && GAME_GEOM_INT_SCALE > 0.01; + return DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE != 0.0; + } + + float get_BEZEL_INNER_ZOOM() { - /*if (GAME_GEOM_INT_SCALE == 1.0 && DO_GAME_GEOM_OVERRIDE == 1.0) - return 0.0; - else - return BEZEL_INNER_ZOOM; - */ - //unbranched versions: - return BEZEL_INNER_ZOOM * (1 - DO_GAME_GEOM_OVERRIDE * GAME_GEOM_INT_SCALE); - - //117.2 - //return BEZEL_INNER_ZOOM * float( GAME_GEOM_INT_SCALE != 1.0 || DO_GAME_GEOM_OVERRIDE != 1.0 ); + //Disables bezel inner zoom when using integer scaling + return BEZEL_INNER_ZOOM * float( !need_integer_scale() ); } - bool do_integer_scale() { - return DO_GAME_GEOM_OVERRIDE == 1.0 && GAME_GEOM_INT_SCALE == 1.0; - } - - vec2 content_geom_override(vec2 co, float aspect, float in_aspect, float vshift, float hshift, float out_zoom){ //Aspect //float bUse_original_aspect = float(aspect < 0.01); @@ -679,3 +689,75 @@ bool is_first_inside_rect(vec2 point, vec4 rect) { return (point.x >= rect.x && point.x < rect.z && point.y >= rect.y && point.y < rect.w) ; } + +// COLOR TOOLS + vec3 kelvin2rgb(float k) { + //Convert kelvin temperature to rgb factors + k = clamp(k,1000,40000); + k=k/100.0; + float tmpCalc; + vec3 pixel_out; + if (k<=66) { + pixel_out.r = 255; + pixel_out.g = 99.47080258612 * log(k) - 161.11956816610; + } else { + pixel_out.r = 329.6987274461 * pow(k - 60 ,-0.13320475922); + pixel_out.g = 288.12216952833 * pow(k-60, -0.07551484921); + } + + if (k >= 66) + pixel_out.b = 255; + else if (k<=19) + pixel_out.b = 0; + else + pixel_out.b = 138.51773122311 * log(k - 10) - 305.04479273072; + + return pixel_out/255.0; + } + + #define W vec3(0.2125, 0.7154, 0.0721) + vec3 color_tools(vec3 pixel_out, vec3 Temperature_rgb) { + //Apply color corrections to input signal. + + //Push luminance without clipping + pixel_out = pixel_push_luminance(pixel_out,LUMINANCE); + + //Modify contrast and brightness + if (CONTRAST != 0.0 || BRIGHTNESS != 0.0) + pixel_out.rgb = apply_contrast_brightness(pixel_out.rgb, CONTRAST, BRIGHTNESS); + + //Modify color temperature + if (TEMPERATURE != 6500.0) pixel_out.rgb = pixel_out.rgb * Temperature_rgb; + + //Colorization for monochrome display on hsv colorspace. + //Select different hues for dark and bright pixels and mix them depending on the brightness + if (COLOR_MONO_COLORIZE > 0.01) { + vec3 pixel_grayscale = vec3(dot(pixel_out.rgb, W)); + vec3 pixel_in_hsv = rgb2hsv(pixel_grayscale); //FIXME needed? yes, checked. + float lum = pixel_in_hsv.z * pixel_in_hsv.z; //<-- looks way better! + vec2 bias = mix_step( vec2(0.0, COLOR_MONO_HUE_BIAS), vec2(COLOR_MONO_HUE_BIAS, 0.0), float(COLOR_MONO_HUE_BIAS > 0.0)); + bias = abs(bias); + + lum=scale_to_range(lum, 0.0-bias.x, 1.0+bias.y); + pixel_in_hsv.y=1.0; //sat + + //Mix hues in rgb colorspace: + vec3 pixel_rgb_hue1 = hsv2rgb( vec3(COLOR_MONO_HUE1, 1.0, pixel_in_hsv.z ) ); + vec3 pixel_rgb_hue2 = hsv2rgb( vec3(COLOR_MONO_HUE2, 1.0, pixel_in_hsv.z ) ); + vec3 pixel_rgb_hue12 = mix(pixel_rgb_hue2, pixel_rgb_hue1, vec3(lum)); + //Mix original and colorized with a specified strength + pixel_out = mix(pixel_out, pixel_rgb_hue12, COLOR_MONO_COLORIZE); + + + //pixel_in_hsv.x = mix(COLOR_MONO_HUE2, COLOR_MONO_HUE1, lum); //hue + //pixel_out = mix(pixel_out, hsv2rgb(pixel_in_hsv), COLOR_MONO_COLORIZE);pk + } + + //Modify saturation + if (!(SATURATION == 1.0)) { + vec3 intensity = vec3(dot(pixel_out.rgb, W)); + pixel_out.rgb = mix(intensity, pixel_out.rgb, SATURATION); + } + + return pixel_out; + } diff --git a/bezel/koko-aio/shaders/reflection_blur.slang b/bezel/koko-aio/shaders/reflection_blur.slang index 3da8b44..026ad32 100644 --- a/bezel/koko-aio/shaders/reflection_blur.slang +++ b/bezel/koko-aio/shaders/reflection_blur.slang @@ -20,7 +20,7 @@ layout(location = 0) in vec2 vTexCoord; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 1) uniform sampler2D Source; -layout(set = 0, binding = 2) uniform sampler2D first_pass; +layout(set = 0, binding = 2) uniform sampler2D flick_and_noise_pass; #include "includes/functions.include.slang" @@ -70,7 +70,7 @@ void main() { vec3 pixel_out = mix(s1, s2, lodmix) * BEZEL_REFL_STRENGTH; //Next simulate a diffused light - vec3 pixel_diffused = textureLod( first_pass, coords, 6.0).rgb; + vec3 pixel_diffused = textureLod( flick_and_noise_pass, coords, 6.0).rgb; pixel_out = mix( pixel_out, pixel_diffused, BEZEL_DIFFUSION_STR); diff --git a/bezel/koko-aio/shaders/reflection_blur_pre.slang b/bezel/koko-aio/shaders/reflection_blur_pre.slang index bdcf6ee..aa1d2fd 100644 --- a/bezel/koko-aio/shaders/reflection_blur_pre.slang +++ b/bezel/koko-aio/shaders/reflection_blur_pre.slang @@ -27,7 +27,7 @@ layout(location = 1) in vec2 vCoordsAdapted; layout(location = 0) out vec4 FragColor; -layout(set = 0, binding = 1) uniform sampler2D first_pass; +layout(set = 0, binding = 1) uniform sampler2D flick_and_noise_pass; layout(set = 0, binding = 2) uniform sampler2D avglum_pass; #include "includes/functions.include.slang" @@ -54,7 +54,7 @@ void main() { } - FragColor = texture(first_pass, coords); + FragColor = texture(flick_and_noise_pass, coords); } diff --git a/bezel/koko-aio/shaders/shift_and_bleed.slang b/bezel/koko-aio/shaders/shift_and_bleed.slang index 5dcf0d0..e010836 100644 --- a/bezel/koko-aio/shaders/shift_and_bleed.slang +++ b/bezel/koko-aio/shaders/shift_and_bleed.slang @@ -7,9 +7,10 @@ layout(location = 0) in vec4 Position; layout(location = 1) in vec2 TexCoord; layout(location = 0) out vec2 vTexCoord; -layout(location = 1) out vec2 r_offset; -layout(location = 2) out vec2 g_offset; -layout(location = 3) out vec2 b_offset; +layout(location = 1) out vec2 vR_offset; +layout(location = 2) out vec2 vG_offset; +layout(location = 3) out vec2 vB_offset; +layout(location = 4) out float vDo_shadow_mode; #include "includes/functions.include.slang" @@ -17,25 +18,35 @@ void main() { gl_Position = global.MVP * Position; vTexCoord = TexCoord ; - if (DO_SHIFT_RGB == 1.0) { - r_offset=offsets_from_float(SHIFT_R+210.0,RGB_SHIFT_RANGE); - g_offset=offsets_from_float(SHIFT_G+210.0,RGB_SHIFT_RANGE); - b_offset=offsets_from_float(SHIFT_B+210.0,RGB_SHIFT_RANGE); + + //...to tell fragment shader if dot matrix feature requests shadows. + vDo_shadow_mode = float(DOT_M_SHADOW_STR + DO_DOT_MATRIX > 1 + eps); + + //Shadow mode disables deconvergence, they do not coexist in real life. + if (vDo_shadow_mode == 1.0) { + vR_offset = vec2(DOT_M_SHADOW_OFF, abs(DOT_M_SHADOW_OFF)); + vG_offset = vR_offset; + vB_offset = vR_offset; + } else if (DO_SHIFT_RGB == 1.0) { + vR_offset=offsets_from_float(SHIFT_R+210.0,RGB_SHIFT_RANGE); + vG_offset=offsets_from_float(SHIFT_G+210.0,RGB_SHIFT_RANGE); + vB_offset=offsets_from_float(SHIFT_B+210.0,RGB_SHIFT_RANGE); } } #pragma stage fragment - +#include "includes/functions.include.slang" layout(location = 0) in vec2 vTexCoord; -layout(location = 1) in vec2 r_offset; -layout(location = 2) in vec2 g_offset; -layout(location = 3) in vec2 b_offset; +layout(location = 1) in vec2 vR_offset; +layout(location = 2) in vec2 vG_offset; +layout(location = 3) in vec2 vB_offset; +layout(location = 4) in float vDo_shadow_mode; layout(location = 0) out vec4 FragColor; layout(set = 0, binding = 3) uniform sampler2D FXAA_pass; -layout(set = 0, binding = 4) uniform sampler2D first_pass; +layout(set = 0, binding = 4) uniform sampler2D flick_and_noise_pass; #define bandwidth_mhz_Y_ntsc 4.2 @@ -69,28 +80,37 @@ const mat3 mat3_YUV2RGB = mat3( -vec3 pixel_offset(vec3 pixel_cur,vec2 coord, sampler2D in_texture, vec4 sourcesize2) { +vec3 deconvergence_shadow(vec3 pixel_cur,vec2 coord, sampler2D in_texture, vec4 sourcesize2) { + //Emulates deconvergence or shadowing for dot matrix screens like Gameboy. + //Since both effects should not coexist in real life, we use a singe function for both. + //The function stays more or less the same, but rgb offsets calculated in vertex shader + //will be the same for shadow mode. Hopefully shader texture cache will take care of + //multiple sampling for the same tex coords. + vec2 d = -vec2(sourcesize2.z, sourcesize2.w)*0.5; vec3 pixel_offset; - pixel_offset.r=texture(in_texture,coord + r_offset * d).r; - pixel_offset.g=texture(in_texture,coord + g_offset * d).g; - pixel_offset.b=texture(in_texture,coord + b_offset * d).b; - return mix(pixel_cur,pixel_offset,OFFSET_STRENGTH); - /* why did i make this? commit message : https://github.com/kokoko3k/koko-aio-slang/commit/843d71af40d32c2e2b088a71bf3ad18683812a98 - * does not help... - vec3 color_difformity = vec3(pixel_offset.r-pixel_cur.r, +pixel_offset.g-pixel_cur.g, pixel_offset.b - pixel_cur.b); - vec3 pixel_offset_to_add = pixel_offset * color_difformity; - return pixel_cur + (pixel_offset_to_add *OFFSET_STRENGTH); - //return pixel_cur + (pixel_offset *OFFSET_STRENGTH*color_difformity); - */ + + pixel_offset.r=texture(in_texture,coord + vR_offset * d).r; + pixel_offset.g=texture(in_texture,coord + vG_offset * d).g; + pixel_offset.b=texture(in_texture,coord + vB_offset * d).b; + + vec3 deconvergence_mode = mix(pixel_cur, pixel_offset, OFFSET_STRENGTH); + vec3 shadow_mode = pixel_cur - max( (pixel_cur - pixel_offset), vec3(0.0) ) * DOT_M_SHADOW_STR; + + return mix_step(deconvergence_mode, shadow_mode, vDo_shadow_mode); + + + //Shadow mode: + //return pixel_cur - + // max( (pixel_cur - pixel_offset), vec3(0.0) ) * OFFSET_STRENGTH; } -vec3 pixel_offset_wrap (vec2 coord) { +vec3 deconvergence_shadow_wrap (vec2 coord) { if ( DO_FXAA == 1.0) { - return pixel_offset(texture(FXAA_pass, vTexCoord).rgb, vTexCoord, FXAA_pass, global.FXAA_passSize); + return deconvergence_shadow(texture(FXAA_pass, vTexCoord).rgb, vTexCoord, FXAA_pass, global.FXAA_passSize); } else { - return pixel_offset(texture(first_pass, vTexCoord).rgb, vTexCoord, first_pass, global.first_passSize); + return deconvergence_shadow(texture(flick_and_noise_pass, vTexCoord).rgb, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize); } } @@ -103,7 +123,7 @@ vec3 pixel_bleed_side_NTSC(vec3 pixel_in, vec2 co, float size, float side, sampl w=w/SAT_BLEED_FALLOFF; //w = w * exp(i*i*(1-SAT_BLEED_FALLOFF)*0.1); //w=clamp(w,0.0,1.0); - vec3 smp_YIQ = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YIQ; + vec3 smp_YIQ = texture(flick_and_noise_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YIQ; blur_YIQ.x = mix(blur_YIQ.x, smp_YIQ.x, w/bandwidth_mhz_Y_ntsc); // Blur Y blur_YIQ.y = mix(blur_YIQ.y, smp_YIQ.y, w/bandwidth_mhz_I ); // Blur I blur_YIQ.z = mix(blur_YIQ.z, smp_YIQ.z, w/bandwidth_mhz_Q ); // BlurQ @@ -122,7 +142,7 @@ vec3 pixel_bleed_side_PAL(vec3 pixel_in, vec2 co, float size, float side, sample for ( i=1 ; i <= size ; i++ ){ w=w/SAT_BLEED_FALLOFF; //w=clamp(w,0.0,1.0); - vec3 smp_YUV = texture(first_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YUV; + vec3 smp_YUV = texture(flick_and_noise_pass, co - side * vec2(sourcesize2.z*i,0.0)).rgb * mat3_RGB2YUV; blur_YUV.x = mix(blur_YUV.x, smp_YUV.x, w/bandwidth_mhz_Y_pal); // Blur Y blur_YUV.y = mix(blur_YUV.y, smp_YUV.y, w/bandwidth_mhz_U ); // Blur U blur_YUV.z = mix(blur_YUV.z, smp_YUV.z, w/bandwidth_mhz_V ); // Blur V @@ -154,21 +174,21 @@ void main() { vec3 pixel_out; //Handle case where both are needed: //First shift the right source, then pass it to bleed function. - if (DO_SHIFT_RGB + DO_SAT_BLEED > 1.0) { - pixel_out = pixel_offset_wrap(vTexCoord); + if (DO_SHIFT_RGB + DO_SAT_BLEED > 1.0 || DOT_M_SHADOW_STR > 0.0 ) { + pixel_out = deconvergence_shadow_wrap(vTexCoord); if (DO_SAT_BLEED > 0.0) { if ( DO_FXAA == 1.0) { pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize); pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a; } else { - pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize); - pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; + pixel_out = pixel_bleed(pixel_out, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize); + pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a; } } } else //Handle case where only color shifting is requested - if (DO_SHIFT_RGB > 0.0) { - pixel_out = pixel_offset_wrap(vTexCoord); + if (DO_SHIFT_RGB > 0.0 || DOT_M_SHADOW_STR > 0.0) { + pixel_out = deconvergence_shadow_wrap(vTexCoord); } else if (DO_SAT_BLEED > 0.0) { //Handle case where only chroma bleed is requested @@ -178,9 +198,9 @@ void main() { pixel_out = pixel_bleed(pixel_out, vTexCoord, FXAA_pass, global.FXAA_passSize); } else { - pixel_out = texture(first_pass, vTexCoord).rgb; - pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; - pixel_out = pixel_bleed(pixel_out, vTexCoord, first_pass, global.first_passSize); + pixel_out = texture(flick_and_noise_pass, vTexCoord).rgb; + pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a; + pixel_out = pixel_bleed(pixel_out, vTexCoord, flick_and_noise_pass, global.flick_and_noise_passSize); } } else //Passthrough @@ -188,8 +208,8 @@ void main() { pixel_out = texture(FXAA_pass, vTexCoord).rgb; pixel_alpha_ntsc_artifacts = texture(FXAA_pass, vTexCoord).a; } else { - pixel_out = texture(first_pass, vTexCoord).rgb; - pixel_alpha_ntsc_artifacts = texture(first_pass, vTexCoord).a; + pixel_out = texture(flick_and_noise_pass, vTexCoord).rgb; + pixel_alpha_ntsc_artifacts = texture(flick_and_noise_pass, vTexCoord).a; } //pre-gamma if needed by glow. diff --git a/bezel/koko-aio/textures/monitor_body_straight.png b/bezel/koko-aio/textures/monitor_body_straight.png index 9b6fec1..0a5215a 100644 Binary files a/bezel/koko-aio/textures/monitor_body_straight.png and b/bezel/koko-aio/textures/monitor_body_straight.png differ diff --git a/bezel/koko-aio/tv-BASE.slangp b/bezel/koko-aio/tv-BASE.slangp index 1b9fb63..d7c5349 100644 --- a/bezel/koko-aio/tv-BASE.slangp +++ b/bezel/koko-aio/tv-BASE.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -212,19 +212,19 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "200.000000" BEZEL_INNER_ZOOM = "-0.160000" diff --git a/bezel/koko-aio/tv-NTSC-1-classic_take.slangp b/bezel/koko-aio/tv-NTSC-1-classic_take.slangp index 7748c84..d686128 100644 --- a/bezel/koko-aio/tv-NTSC-1-classic_take.slangp +++ b/bezel/koko-aio/tv-NTSC-1-classic_take.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,8 +188,8 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.200000" -CONTRAST = "0.050000" BRIGHTNESS = "0.050000" +CONTRAST = "0.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.560000" DO_NTSC_ARTIFACTS = "1.000000" @@ -208,25 +208,25 @@ DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" DARKLINES_STRENGTH = "1.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_MAX = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.900000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_MAX = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.550000" BLOOM_EYE_ADPT_SRT = "0.800000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-NTSC-1-selective-classic_take.slangp b/bezel/koko-aio/tv-NTSC-1-selective-classic_take.slangp index ebce60b..2e2d7ca 100644 --- a/bezel/koko-aio/tv-NTSC-1-selective-classic_take.slangp +++ b/bezel/koko-aio/tv-NTSC-1-selective-classic_take.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,8 +188,8 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.200000" -CONTRAST = "0.050000" BRIGHTNESS = "0.050000" +CONTRAST = "0.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.560000" DO_NTSC_ARTIFACTS = "1.000000" @@ -212,25 +212,25 @@ DO_VMASK_AND_DARKLINES = "1.000000" RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" DARKLINES_STRENGTH = "1.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_MAX = "1.000000" +SCANLINE_SM_VOFFSET = "70.000000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.900000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_MAX = "1.000000" -SCANLINE_SM_VOFFSET = "70.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.550000" BLOOM_EYE_ADPT_SRT = "0.800000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-NTSC-1-selective.slangp b/bezel/koko-aio/tv-NTSC-1-selective.slangp index fcaa4f0..61a44b8 100644 --- a/bezel/koko-aio/tv-NTSC-1-selective.slangp +++ b/bezel/koko-aio/tv-NTSC-1-selective.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -211,25 +211,25 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_DARK = "0.100000" +SCANLINE_SM_TYPE = "1.000000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_DARK = "0.100000" -SCANLINE_SM_TYPE = "1.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.550000" BLOOM_EYE_ADPT_SRT = "0.800000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-NTSC-1.slangp b/bezel/koko-aio/tv-NTSC-1.slangp index 2115042..f0276c4 100644 --- a/bezel/koko-aio/tv-NTSC-1.slangp +++ b/bezel/koko-aio/tv-NTSC-1.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -207,25 +207,25 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_DARK = "0.100000" +SCANLINE_SM_TYPE = "1.000000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_DARK = "0.100000" -SCANLINE_SM_TYPE = "1.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.550000" BLOOM_EYE_ADPT_SRT = "0.800000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-NTSC-2.slangp b/bezel/koko-aio/tv-NTSC-2.slangp index 2d5fb0f..de0efca 100644 --- a/bezel/koko-aio/tv-NTSC-2.slangp +++ b/bezel/koko-aio/tv-NTSC-2.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -208,25 +208,25 @@ RGB_MASK_STRENGTH = "1.000000" VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.000000" +DO_SCANLINES = "1.000000" +SCANLINE_MIN = "0.200000" +SCANLINE_DARK = "0.100000" +SCANLINE_SM_TYPE = "1.000000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.500000" HALO_H = "3.500000" HALO_GAMMA = "1.300000" HALO_VS_SCAN = "0.800000" -DO_SCANLINES = "1.000000" -SCANLINE_MIN = "0.200000" -SCANLINE_DARK = "0.100000" -SCANLINE_SM_TYPE = "1.000000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.550000" BLOOM_EYE_ADPT_SRT = "0.800000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.013000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-PAL-my-old.slangp b/bezel/koko-aio/tv-PAL-my-old.slangp index f74461d..90085e9 100644 --- a/bezel/koko-aio/tv-PAL-my-old.slangp +++ b/bezel/koko-aio/tv-PAL-my-old.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,11 +188,11 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.200000" -CONTRAST = "0.050000" BRIGHTNESS = "0.050000" +CONTRAST = "0.050000" TEMPERATURE = "7500.000000" GAMMA_OUT = "0.560000" +SATURATION = "1.200000" DO_RF_NOISE = "1.000000" RF_NOISE_STRENGTH = "0.025000" DO_SAT_BLEED = "1.000000" @@ -217,24 +217,23 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.700000" DARKLINES_PERIOD = "4.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.500000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" -GEOM_CORNER_SIZE = "0.010000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.010000" +BEZEL_INNER_ZOOM = "-0.014000" BEZEL_FRAME_ZOOM = "0.170000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" diff --git a/bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp b/bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp index 377ed42..2dfc023 100644 --- a/bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp +++ b/bezel/koko-aio/tv-aperturegrille-bloom-bezel.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -214,23 +214,23 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "1.000000" DARKLINES_VOFFSET = "0.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.175000" BEZEL_FRAME_ZOOM = "0.040000" AMBI_FALLOFF = "0.600000" AMBI_POWER = "1.700000" diff --git a/bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp b/bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp index 66c4480..48a0c65 100644 --- a/bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp +++ b/bezel/koko-aio/tv-aperturegrille-bloom-bezelwider.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -214,20 +214,20 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "1.000000" DARKLINES_VOFFSET = "0.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" BEZEL_INNER_ZOOM = "-0.011000" diff --git a/bezel/koko-aio/tv-aperturegrille-bloom.slangp b/bezel/koko-aio/tv-aperturegrille-bloom.slangp index 01244e9..5882775 100644 --- a/bezel/koko-aio/tv-aperturegrille-bloom.slangp +++ b/bezel/koko-aio/tv-aperturegrille-bloom.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -214,20 +214,20 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "1.000000" DARKLINES_VOFFSET = "0.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "200.000000" BEZEL_INNER_ZOOM = "-0.160000" diff --git a/bezel/koko-aio/tv-aperturegrille.slangp b/bezel/koko-aio/tv-aperturegrille.slangp index a23cbf8..ce0bf0d 100644 --- a/bezel/koko-aio/tv-aperturegrille.slangp +++ b/bezel/koko-aio/tv-aperturegrille.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -214,19 +214,19 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "1.000000" DARKLINES_VOFFSET = "0.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "200.000000" BEZEL_INNER_ZOOM = "-0.160000" diff --git a/bezel/koko-aio/tv-flickering.slangp b/bezel/koko-aio/tv-flickering.slangp index 415704e..6a7468e 100644 --- a/bezel/koko-aio/tv-flickering.slangp +++ b/bezel/koko-aio/tv-flickering.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -214,25 +214,23 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.700000" DARKLINES_PERIOD = "4.000000" -DO_HALO = "1.000000" -HALO_POWER = "0.500000" -HALO_W = "3.000000" -HALO_H = "3.000000" -HALO_GAMMA = "1.400000" DO_SCANLINES = "1.000000" SCANLINE_MAX = "1.000000" SCANLINE_DARK = "1.000000" SCANLINE_FLICKERING = "1.000000" SCANLINE_FLICKERING_POWER = "0.400000" +DO_HALO = "1.000000" +HALO_POWER = "0.500000" +HALO_W = "3.000000" +HALO_H = "3.000000" +HALO_GAMMA = "1.400000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.010000" -BEZEL_FRAME_ZOOM = "0.170000" +BEZEL_INNER_ZOOM = "-0.175000" +BEZEL_FRAME_ZOOM = "0.040000" BEZEL_R = "-0.190000" BEZEL_G = "-0.190000" BEZEL_B = "-0.190000" diff --git a/bezel/koko-aio/tv-slotmask-bloom-bezel.slangp b/bezel/koko-aio/tv-slotmask-bloom-bezel.slangp index 74e4756..114b400 100644 --- a/bezel/koko-aio/tv-slotmask-bloom-bezel.slangp +++ b/bezel/koko-aio/tv-slotmask-bloom-bezel.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -213,23 +213,23 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.800000" DARKLINES_PERIOD = "4.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.185000" +BEZEL_INNER_ZOOM = "-0.175000" BEZEL_FRAME_ZOOM = "0.040000" AMBI_FALLOFF = "0.600000" AMBI_POWER = "1.700000" diff --git a/bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp b/bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp index 730c549..e28e492 100644 --- a/bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp +++ b/bezel/koko-aio/tv-slotmask-bloom-bezelwider.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -213,23 +213,23 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.800000" DARKLINES_PERIOD = "4.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.450000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SMOOTH = "400.000000" DO_BEZEL = "1.000000" -BEZEL_INNER_ZOOM = "-0.011000" +BEZEL_INNER_ZOOM = "-0.018000" BEZEL_FRAME_ZOOM = "0.170000" AMBI_FALLOFF = "0.400000" AMBI_POWER = "5.000000" diff --git a/bezel/koko-aio/tv-slotmask-bloom.slangp b/bezel/koko-aio/tv-slotmask-bloom.slangp index 611d473..e5bb3f1 100644 --- a/bezel/koko-aio/tv-slotmask-bloom.slangp +++ b/bezel/koko-aio/tv-slotmask-bloom.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -213,20 +213,20 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.800000" DARKLINES_PERIOD = "4.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" DO_BLOOM = "1.000000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "200.000000" BEZEL_INNER_ZOOM = "-0.160000" diff --git a/bezel/koko-aio/tv-slotmask.slangp b/bezel/koko-aio/tv-slotmask.slangp index b003521..0fbc987 100644 --- a/bezel/koko-aio/tv-slotmask.slangp +++ b/bezel/koko-aio/tv-slotmask.slangp @@ -1,20 +1,20 @@ shaders = "17" -shader0 = "shaders/ntsc_pass.slang" +shader0 = "shaders/colortools_and_ntsc_pass.slang" filter_linear0 = "false" wrap_mode0 = "mirrored_repeat" mipmap_input0 = "false" -alias0 = "ntsc_pass" +alias0 = "colortools_and_ntsc_pass" float_framebuffer0 = "false" srgb_framebuffer0 = "false" scale_type_x0 = "source" scale_x0 = "1.000000" scale_type_y0 = "source" scale_y0 = "1.000000" -shader1 = "shaders/first_pass.slang" +shader1 = "shaders/flick_and_noise.slang" filter_linear1 = "false" wrap_mode1 = "mirrored_repeat" mipmap_input1 = "false" -alias1 = "first_pass" +alias1 = "flick_and_noise_pass" float_framebuffer1 = "false" srgb_framebuffer1 = "false" scale_type_x1 = "source" @@ -188,9 +188,9 @@ scale_type_y16 = "viewport" scale_y16 = "1.000000" DO_CCORRECTION = "1.000000" LUMINANCE = "0.100000" -SATURATION = "1.050000" TEMPERATURE = "7000.000000" GAMMA_OUT = "0.500000" +SATURATION = "1.050000" DO_FXAA = "1.000000" SAT_BLEED_PAL = "1.000000" SAT_BLEED_STRENGTH = "0.500000" @@ -213,19 +213,19 @@ VMASK_USE_GM = "1.000000" VMASK_GAP = "1.000000" DARKLINES_STRENGTH = "0.800000" DARKLINES_PERIOD = "4.000000" +SCANLINE_DARK = "0.700000" +SCANLINES_BLEEDING = "1.000000" +SCANLINE_FLICKERING = "0.000000" +SCANLINE_FLICKERING_POWER = "0.170000" DO_HALO = "1.000000" HALO_POWER = "0.990000" HALO_W = "3.000000" HALO_H = "3.000000" HALO_GAMMA = "1.400000" -SCANLINE_DARK = "0.700000" -SCANLINES_BLEEDING = "1.000000" -SCANLINE_FLICKERING = "0.000000" -SCANLINE_FLICKERING_POWER = "0.170000" BLOOM_MIX = "0.500000" DO_CURVATURE = "1.000000" -GEOM_WARP_X = "0.475000" -GEOM_WARP_Y = "0.500000" +GEOM_WARP_X = "0.420000" +GEOM_WARP_Y = "0.470000" GEOM_CORNER_SIZE = "0.010000" GEOM_CORNER_SMOOTH = "200.000000" BEZEL_INNER_ZOOM = "-0.160000"