libretro / common-shaders

Collection of commonly used Cg shaders. These shaders are usable by either HLSL and/or Cg runtime compilers. The cg2glsl script will translate most of these into GLSL shaders.
http://www.libretro.com
1.05k stars 250 forks source link

[Feature Request] Presets to emulate specific CRT TV/monitor models accurately #74

Open rz5 opened 8 years ago

rz5 commented 8 years ago

As the title suggests, I think it would be a neat feature if we had presets which would emulate popular/notable CRT TVs. Ideally these presets would not just be 'good enough', they'd be as accurate as the base shader allows.

Since RetroArch/libretro supports overlays/borders to fill the black space which is sometimes present while using emulator cores, these new presets could have high quality pictures of the CRTs they're modelling as borders.

To my knowledge, the shader which exposes the most CRT related parameters is @TroggleMonkey's crt-royale set of shaders, so ideally the presets would be based on this.

The author of each preset would ideally be in possession of the CRT he's modelling as well as a calibrated 100% sRGB color space 4K resolution display to work on.

Based on a cursory read of this Tested article, here are some preset names we could have:

crt-baseShaderName-Sony-BVM-20F1U.glslp crt-baseNameShader-Sony-BVM-D32E1WU.glslp crt-baseShaderName-Sony-PVM-20M4U.glslp crt-baseShaderName-Sony-FD-Trinitron-WEGA-KD-34XBR960.glslp

hizzlekizzle commented 8 years ago

I support the idea but there are a few hurdles: 1.) there's enough variation between individual sets to make it pretty difficult to get a specific model nailed down. For example, there's probably more variation between a pair of BVM-20F1Us than between one of them and a random BVM-D32E1WU (other than the aspect ratio, but we can't control that in a preset anyway). 2.) I don't know of anywhere to get nice, border-friendly pictures of any of these models (I have a PVM 20M2U, which is outwardly identical to the 20M4U, but it's not a particularly attractive bezel, either way, and the pictures I have taken of it for this purpose have not been well-received). 3a.) to get even scanlines with any CRT shader and a border, you need to set an explicit scale factor for the CRT pass(es) in the preset, so we would need 1080p and 4K presets, at least. 3b.) Even doing the above, I haven't been able to make CRT-Royale work effectively with a border pass while maintaining even scanlines. 4.) some of the characteristics of those models, particularly the number of phosphor triads, don't reproduce well on fixed-pixel displays at all output resolutions (the last few pages of the 'kurozumi' preset thread on the forum deal with this issue).