New CRT shader from Guest + CRT Guest Advanced updates

A few versions ago, I have problems to do work for me… And I don’t know what or where is the problem, because older release versions works perfectly, but since 23.01.2021 and later I have problems…

I am a Nvidia Shield user.

Great work and thanks for all your desinterested time!!!

Hey there!

I cannot test properly with nVidia shield, so i would need more information.

If you can specify:

  • backend used, i.e. glcore, vulkan…
  • which shader versions: regular, fast, fastest, hires/ntsc
  • nature of the issue, i.e. black screen, shader error, flickering, glitches…

It would help to find the issue.

Edit: can you try this versions? i have found/resolved two possible bug situations.

https://mega.nz/file/Z1ByGBqR#6tNjFn-dA-laoo3JrwM3iO53tdWF0-ljmoBH2XZmL1A

4 Likes

Vulkan and i am using all shaders: hires, fast, faster… Tonight I will try and comment my tests.

Thanks!

@guest.r

I’m a fan of scanline type setting “0” because it has the most normal gaussian beam profile for my taste and it just looks great.

As far as I understand the scanline type “0,1,2” are going from a “normal” to “strong” and “strongest” gaussian beam profile (i.e. brighter is increasingly thicker lines / darker is increasingly thinner lines).

I’ve been testing a number of settings to tone down the gaussian profile a bit more for my personal preference and tinkering, e.g. lowering “increased bright scanline beam” from 0.60 to 0.00, increasing scanline beam shape high while lowering scanline beam shape low, lowering gamma etc… But even with those settings I find the gaussian profile of setting “0” just that tiny bit too strong in certain instances (even though mostly it looks great!) and I would really like to play / tinker with a bit weaker profile.

Because of this I was wondering if you could consider adding a scanline setting “-1” that has a slighty “weaker” gaussian profile compared to “0”? Hopefully there is some room for this.

Edit: see picture below for additional explanation. They are the scanline type with your default preset.

The bright white pixels are “grown” larger than the darker greys, which is normal for CRT. Going from Type 2 to Type 0 the difference between thin/thick for dark greays and white becomes less.

What I would be after for a Scanline Type “-1” would be that the bright white pixel would grow even less than type “0”, and/or the difference in scanline thickness between bright white and dark(er) grey would be even less than with Type 0. The Type “-1” would be a natural progression in below image on the most left. Hope this visualizes my question a bit better.

gaussianprofiletest-shaderoutput-crop

3 Likes

Yeah, this would round the scanline options very nicely, scanline type -1.0 are included now. I also wen’t to clear some situations, which might cause some issues or misunderstanding regarding the shaders/presets (float buffers). Some cleanup, scanline parameters included.

New Release Version (28.01.2021-r2):

Notable changes:

  • scanline type -1.0 added
  • scanline parameter naming changed a bit for better understanding
  • some bug hunt / issue hunt due to possible driver/hw discrepancies

Download link:

https://mega.nz/file/48wyVLpB#zJkOV5mUkkj6uueH9PZzYRnDbjEyoda5XpowgnK0wHk

Screenie:

A mask6 setup, scanline type -1.0, ‘fastest version’.

12 Likes

I’m all about those beam dynamics, myself, but that actually looks really good, and I know a lot of people have been wanting a less pronounced, more “consumer” look, and I think that nails it nicely.

5 Likes

Dont works for me… I have a retroarch log and the first line show this message:

[Shaders]: Cannot find “shaders” param.

All that I do is unzip your file into my path shaders/shaders_slang/crgt-gdv-new…

That image is so sexy. I’ll be using that scanline option when it’s available eventually in the crt folder, too lazy to keep downloading the updates lol

2 Likes

The only issue there is that if you don’t keep track of changes, your shader will get overwritten when you do a mass update in RA, which could change your settings and your image you configured.

I personally have this shader in its own folder that can’t be touched by RA downloads if I decide to update other things.

1 Like

Just for INFO, FBNEO was not the issue.

The issue was in retroarch. It’s now fixed with the last nightly build.

Thank you for all updates !

One question, can you clearly give me an example with what core using HIRES shader version ?

thank you in advance.

1 Like

It’s quite many cores, including those, who output content at increased resolution, like some SNES and Amiga ones.

Otherwise PSX, N64, PSP, Wii+GC, also DC, Saturn, maybe DS and PS2 cores. Maybe i missed some.

It’s main advantage is a wider filter, ability to display normal scanlines with vertical high-res resolutions and nice deconvergence. It also supports more interlacing modes.

2 Likes

ok thank you very much

Thanks for the update, looks really nice :smiley:

I have a minor thing left that I would appreciate your opinion on. For individual white pixels growing larger over darker pixels I use the setting “Increased Bright Scanline Beam” (default setting 0.60). I have a personal preference for toning this effect down a bit, even so far as in some cases I would really like to be able to set it to something even lower than “0”.

By this I mean a preference for the white indiviual pixel to be -almost- as flat as the surrounding scanline, so only very little growth. Would there be a possibility to extend “Increased Bright Scanline Beam” to a negative value in a correct way, such that individual white pixels grow almost not at all? Or is that fully controlled by setting “Scanline Shape Bright Pixels” to a higher value?

EDIT: Since a picture tells a thousand words :slight_smile:

Below is the 320x240 testimage that contains a tiny game gradient cutout (raw 1:1 output, you could use it in the imageviewer). I’m trying to achieve that the middle white pixel is flowing smoothly in the gradient, but whatever I do (wit all scanline settings) I cannot achieve this.

Testimage 32x240 with tiny game cutout gradient in the middle:

whitepixelbulged

Shader output with "Increased Bright Scanline Beam"at “0”:

whitepixelbulged-shaderouput

And what I’m trying to achieve is that the visible white pixel grows that tiny bit less vertically, such that the growth is more a smooth continuation of the (very) light grey on the right. Which is why I would like to use a negative value for “Increased Bright Scanline Beam”.

Hopefully something is possible to control (limit) the growth of those white pixels a bit more. Or have the growth function for the very bright colors that tiny bit less?

1 Like

I think it’s as good as it gets regarding some scanline calculation methodes. It’s actually not about scanline weights, but the color values themselves and the simple fact that brighter colors have a stronger presence factor when interpolating with similar weights. It’s also beneficial for vertical deconvergence. But you should be able to mitigate it a bit beyond with the " Scanline darken ‘edges’ " functionality.

1 Like

Thanks I I’ll try the Scanline darken edges.

I noticed the effect is also a bit less / mitigated for a bit when I lower gamma input and output, so that’s also something I’m considering. Would there be any other side effects I need to consider from say setting gamma in- and output to 2.0 instead of 2.4?

EDIT: Scanline darken edges helps a bit. But interestingly I found the “Scanline Saturation” parameter to have a more noticable effect on this particular example, didn’t expect that. Below is your default preset with "“Increased Bright Scanline Beam” at “0” and comparing “Scanline Saturation” value “0” versus “1”.

whitepixelbulged-scanlinesaturation0versus1

That’s true, but since weights/interpolation are pretty pro-beam-dynamic effect oriented in general, we can only talk in terms of moderate ‘improvements’. Otherwise there are always some side effects when reducing gamma or scanline saturation, but i guess it matters more that you feel comfortable with the setup.

1 Like
  1. https://ibb.co/3pCf98q
  2. https://ibb.co/4tPTTYS
  3. https://ibb.co/HDWLVhw
  4. https://ibb.co/V31Y3vm
  5. https://ibb.co/ZJpBPHK
> shaders = "11"
> shader0 = "shaders_slang/crt/shaders/guest/crt-gdv-new/stock.slang"
> filter_linear0 = "false"
> wrap_mode0 = "clamp_to_border"
> mipmap_input0 = "false"
> alias0 = "StockPass"
> float_framebuffer0 = "false"
> srgb_framebuffer0 = "false"
> scale_type_x0 = "source"
> scale_x0 = "1.000000"
> scale_type_y0 = "source"
> scale_y0 = "1.000000"
> shader1 = "shaders_slang/crt/shaders/guest/crt-gdv-new/afterglow0.slang"
> filter_linear1 = "false"
> wrap_mode1 = "clamp_to_border"
> mipmap_input1 = "false"
> alias1 = "AfterglowPass"
> float_framebuffer1 = "false"
> srgb_framebuffer1 = "false"
> scale_type_x1 = "source"
> scale_x1 = "1.000000"
> scale_type_y1 = "source"
> scale_y1 = "1.000000"
> shader2 = "shaders_slang/crt/shaders/guest/crt-gdv-new/pre-shaders-afterglow.slang"
> filter_linear2 = "false"
> wrap_mode2 = "clamp_to_border"
> mipmap_input2 = "false"
> alias2 = "PrePass"
> float_framebuffer2 = "false"
> srgb_framebuffer2 = "false"
> scale_type_x2 = "source"
> scale_x2 = "1.000000"
> scale_type_y2 = "source"
> scale_y2 = "1.000000"
> shader3 = "shaders_slang/crt/shaders/guest/crt-gdv-new/avg-lum.slang"
> filter_linear3 = "true"
> wrap_mode3 = "clamp_to_border"
> mipmap_input3 = "true"
> alias3 = "AvgLumPass"
> float_framebuffer3 = "false"
> srgb_framebuffer3 = "false"
> scale_type_x3 = "source"
> scale_x3 = "1.000000"
> scale_type_y3 = "source"
> scale_y3 = "1.000000"
> shader4 = "shaders_slang/crt/shaders/guest/crt-gdv-new/linearize.slang"
> filter_linear4 = "true"
> wrap_mode4 = "clamp_to_border"
> mipmap_input4 = "false"
> alias4 = "LinearizePass"
> float_framebuffer4 = "true"
> srgb_framebuffer4 = "false"
> scale_type_x4 = "source"
> scale_x4 = "1.000000"
> scale_type_y4 = "source"
> scale_y4 = "1.000000"
> shader5 = "shaders_slang/crt/shaders/guest/crt-gdv-new/gaussian_horizontal.slang"
> filter_linear5 = "true"
> wrap_mode5 = "clamp_to_border"
> mipmap_input5 = "false"
> alias5 = ""
> float_framebuffer5 = "true"
> srgb_framebuffer5 = "false"
> scale_type_x5 = "viewport"
> scale_x5 = "0.500000"
> scale_type_y5 = "source"
> scale_y5 = "1.000000"
> shader6 = "shaders_slang/crt/shaders/guest/crt-gdv-new/gaussian_vertical.slang"
> filter_linear6 = "true"
> wrap_mode6 = "clamp_to_border"
> mipmap_input6 = "false"
> alias6 = "GlowPass"
> float_framebuffer6 = "true"
> srgb_framebuffer6 = "false"
> scale_type_x6 = "viewport"
> scale_x6 = "0.500000"
> scale_type_y6 = "viewport"
> scale_y6 = "0.500000"
> shader7 = "shaders_slang/crt/shaders/guest/crt-gdv-new/bloom_horizontal.slang"
> filter_linear7 = "true"
> wrap_mode7 = "clamp_to_border"
> mipmap_input7 = "false"
> alias7 = ""
> float_framebuffer7 = "true"
> srgb_framebuffer7 = "false"
> scale_type_x7 = "source"
> scale_x7 = "1.000000"
> scale_type_y7 = "source"
> scale_y7 = "1.000000"
> shader8 = "shaders_slang/crt/shaders/guest/crt-gdv-new/bloom_vertical.slang"
> filter_linear8 = "true"
> wrap_mode8 = "clamp_to_border"
> mipmap_input8 = "false"
> alias8 = "BloomPass"
> float_framebuffer8 = "true"
> srgb_framebuffer8 = "false"
> scale_type_x8 = "source"
> scale_x8 = "1.000000"
> scale_type_y8 = "source"
> scale_y8 = "1.000000"
> shader9 = "shaders_slang/crt/shaders/guest/crt-gdv-new/crt-guest-dr-venom2.slang"
> filter_linear9 = "true"
> wrap_mode9 = "clamp_to_border"
> mipmap_input9 = "false"
> alias9 = ""
> float_framebuffer9 = "false"
> srgb_framebuffer9 = "false"
> scale_type_x9 = "viewport"
> scale_x9 = "1.000000"
> scale_type_y9 = "viewport"
> scale_y9 = "1.000000"
> shader10 = "shaders_slang/crt/shaders/guest/crt-gdv-new/deconvergence.slang"
> filter_linear10 = "true"
> wrap_mode10 = "clamp_to_border"
> mipmap_input10 = "false"
> alias10 = ""
> float_framebuffer10 = "false"
> srgb_framebuffer10 = "false"
> scale_type_x10 = "viewport"
> scale_x10 = "1.000000"
> scale_type_y10 = "viewport"
> scale_y10 = "1.000000"
> CP = "-1.000000"
> GAMMA_INPUT = "2.200000"
> SIZEH = "50.000000"
> SIGMA_H = "1.300000"
> SIZEV = "50.000000"
> SIGMA_V = "1.000000"
> SIZEHB = "1.000000"
> SIGMA_HB = "0.250000"
> SIZEVB = "1.000000"
> SIGMA_VB = "0.250000"
> halation = "1.000000"
> brightboost = "1.000000"
> brightboost1 = "1.000000"
> gsl = "-1.000000"
> scanline1 = "0.000000"
> scanline2 = "40.000000"
> beam_min = "1.000000"
> beam_size = "0.000000"
> scans = "1.000000"
> spike = "0.000000"
> h_sharp = "15.000000"
> s_sharp = "0.000000"
> ei_limit = "1.000000"
> sth = "0.000000"
> shadowMask = "-1.000000"
> maskstr = "1.000000"
> masksize = "2.000000"
> maskDark = "0.000000"
> maskLight = "1.000000"
> mcut = "1.000001"
> mask_gamma = "2.200000"
> slotmask = "1.000000"
> slotwidth = "1.000000"
> mclip = "0.000000"
> gamma_out = "2.200000"
> decons = "0.000000"
> textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
> SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
> SamplerLUT1_linear = "true"
> SamplerLUT1_wrap_mode = "clamp_to_border"
> SamplerLUT1_mipmap = "false"
> SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
> SamplerLUT2_linear = "true"
> SamplerLUT2_wrap_mode = "clamp_to_border"
> SamplerLUT2_mipmap = "false"
> SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
> SamplerLUT3_linear = "true"
> SamplerLUT3_wrap_mode = "clamp_to_border"
> SamplerLUT3_mipmap = "false"
> SamplerLUT4 = "shaders_slang/crt/shaders/guest/lut/custom_lut.png"
> SamplerLUT4_linear = "true"
> SamplerLUT4_wrap_mode = "clamp_to_border"
> SamplerLUT4_mipmap = "false"
2 Likes

Does this happen with all versions including fast/fastest versions? My suspicion is also that a number of registers used might be too big with standard/hires/ntsc versions. You can also try to rename the base folder to exclude the ‘path’ issue.

2 Likes

This is really strange, this message is given when the preset file trying to be loaded is actually missing the shaders line, e.g. shaders = 4 if there were 4 passes. This would be happening before any of the actual loading into vulcan or gl.

1 Like