2021-12-22 11:20:56 +11:00
/*
2022-02-05 08:39:17 +11:00
A shader that specifically tries to emulate Sony PVM's with an aperture grille screen but with full brightness.
2021-12-22 11:20:56 +11:00
2022-02-05 08:39:17 +11:00
The novel thing about this shader is that it transforms the image output by the 'console/arcade/computer' into HDR space first i.e brightens it first and then applies
2021-12-22 11:20:56 +11:00
an aperture grille afterwards which is kind of what a CRT would actually do - its kind of a kin to the electron beam (but nothing like it lol).
2022-02-05 08:39:17 +11:00
My DisplayHDR 600 monitor does seem to get reasonably close to the brightness of my PVM - its not quite there but its close. I think DisplayHDR 1000 and above will be able to match.
2021-12-22 11:20:56 +11:00
2022-02-05 08:39:17 +11:00
Currently defaults towards a Sony PVM 2730QM a reasonably old mid 1980's 27" 600TVL pro monitor.
2021-12-30 07:37:19 +11:00
2021-12-22 11:20:56 +11:00
To use:
2022-02-05 08:39:17 +11:00
Please Enable HDR in RetroArch 1.10+
2021-12-22 11:20:56 +11:00
2022-02-05 08:39:17 +11:00
NOTE: when this shader is envoked the Contrast, Peak Luminance and Paper White Luminance in the HDR menu do nothing instead set those values through the shader parameters
2021-12-22 11:20:56 +11:00
2022-02-07 08:59:44 +11:00
For this shader set Paper White Luminance to above 700 and Peak Luminance to the peak luminance of your monitor.
2021-12-22 11:20:56 +11:00
Also try to use a integer scaling - its just better - overscaling is fine/great.
This shader doesn't do any geometry warping or bouncing of light around inside the screen - I think these effects just add unwanted noise, I know people disagree. Please feel free to make you own and add them
2022-02-05 08:39:17 +11:00
Works only with the D3D11/D3D12/Vulkan drivers currently
2021-12-22 11:20:56 +11:00
2022-02-05 08:39:17 +11:00
THIS SHADER DOES NOT SUPPORT WRGB OLED (Due to the sub pixel layout of WRGB - QD-OLED or LCD (and variants thereof screens are fine)
2021-12-22 11:20:56 +11:00
*/
2022-01-30 09:53:23 +11:00
shaders = "1"
2021-12-22 11:20:56 +11:00
feedback_pass = "0"
2022-02-26 07:22:15 +11:00
shader0 = "shaders/crt-hdr.slang"
2022-01-30 09:53:23 +11:00
filter_linear0 = "false"
2021-12-22 11:20:56 +11:00
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
2022-01-30 09:53:23 +11:00
alias0 = ""
2021-12-22 11:20:56 +11:00
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
2022-03-01 08:47:05 +11:00
2022-03-08 08:50:18 +11:00
hcrt_brightness = "0.150000"
hcrt_colour_system = "0.000000"
hcrt_white_temperature = "2800.000000"
hcrt_expand_gamut = "1.000000"
hcrt_contrast = "0.000000"
hcrt_gamma = "0.000000"
2022-03-06 02:25:32 +11:00
hcrt_red_vertical_convergence = "-0.140000"
2022-03-01 08:47:05 +11:00
hcrt_green_vertical_convergence = "0.000000"
hcrt_blue_vertical_convergence = "0.000000"
hcrt_red_scanline_min = "0.550000"
hcrt_red_scanline_max = "0.820000"
hcrt_red_scanline_attack = "0.650000"
hcrt_green_scanline_min = "0.550000"
hcrt_green_scanline_max = "0.900000"
hcrt_green_scanline_attack = "0.130000"
hcrt_blue_scanline_min = "0.720000"
hcrt_blue_scanline_max = "1.000000"
hcrt_blue_scanline_attack = "0.650000"
hcrt_red_beam_sharpness = "1.750000"
hcrt_red_beam_attack = "0.7200000"
hcrt_green_beam_sharpness = "1.600000"
hcrt_green_beam_attack = "0.800000"
hcrt_blue_beam_sharpness = "1.900000"
hcrt_blue_beam_attack = "0.450000"
2022-02-08 09:24:11 +11:00