New CRT shader from Guest + CRT Guest Advanced updates

Thanks for all the updates, lovin’ the improved curvature, raster bloom and vignette. Starting to use m by default now :slight_smile:

Noticed a small thing with ‘Border Smoothness’, when using values 460-490 the entire screen darkens a bit. Can be clearly noticed when going from 450 to 460.

I’m currently content with my preset that’s not using a mask. What’s the best tactic to preserve brightness when adding a mask to a no-mask preset? Increase both brightboost bright and dark until the preset with the mask has about the same brightness as the preset without the mask?

2 Likes

I’d look at guests last post, it’s probably a good starting point imho.

Honestly I wish @guest.r would just write something the acted like what royale does for edge darkness stuff, but new and not a pita :joy:. (I’m calling how royale does it a pita to use with anything else btw, guest is amazing XD)

2 Likes

You can increase the the ‘Corner size’ just a notch to remove the ‘effect’. The function is darkening the whole image with 0.0 value and currently a hack is in place to bypass this circumstance.

The ‘Corner function’ is really amazing as it serves multiple purposes, including the ‘edge darkness’. But it crossed my mind to improve some functionalities, especially the mentioned edge effect, plus some other stuff like, which was mentioned earlier in this thread.

3 Likes

I have zero issue with the corner function in and of itself, I honestly love it, just if you could make the edge darkness less “shitty” that’d be just awesome lmfao.

I’ve tested the new release a little and it’s super nice ngl, looking forward to trying out some upscaled stuff, and interlaced stuff as well sometime tomorrow.

2 Likes

Hello

You get the good way…

Any crt effect without the distortion of the crystal curvature of a crt screen, its not a true crt filter…easy.

Screens from 1980 to 2000 years…

In the original mame from DOS, the distortion effect curvatures was a good references.

When you are in a original screen arcade crt, you see at the sides that the sprites come more fines and flat due the curvature of the crystal. Not a expasion of the pixels, not more fat ant the sides…is less, is a reduction.

Also, if you ave time, all these screens crts, was the effects of flicker and hum bar, that make any crt filther that come true like a real screen. distortion, hum bar, and flicker is 100% obligatory or necessary for be a true crt effect.

The flicker effect is mostly in screen from years of PACMAN, etc arcades, the hum bar too this years and from Ghost and Goblins, years 80…

A greeting, thanks for your work.

Again, no correct distortion/warp effect, not good or complete crt effect…also hum bar and flicker is nessesary. Is completely part of the image of a crt screen.

You need to imagine in movement with distortion, hum bar and flikkering. like a real arcade simulation.

The hum bar is something you’d only see on a CRT that’s going bad/dying. Never seen it on any of my CRTs

i put…“also hum bar and flicker”…

Because…in these times, the crts screens is not the same quality of other years.

Hum bar and flicker, this effects come very soon in the screens, also if you see this screens in a saloon arcade of games, all the was these effects, recognizable for all the players of crts screens. Also, some others effects that ave now some crt filter, are due the burning or wear of this screens, bad or close diying screens. Screens that most of time are working/running 24/7 hours/week, more or less.

Greetins to all.

Yeah, i have been thinking too to add some crt authentic dynamics to the shader. Humbar is OK to implement, random signal disturbances maybe a bit more risky and to mention, my 17y old TV usually shows neither of this. Same for distortion. But it shows raster bloom (already implemented), left to right shadowing (very hard to implement) and a sort of edge effect with interlacing, which is hard to describe.

For any effect that is mentioned i must also consider compatibility with current implementation, number of parameters, effects place in the ‘pipeline’, resolution, alpha channel availability, computational resources, observation and coding experience, how common the effect is, attractivity and maybe other circumstances.

Nevertheless, dynamics and authenticity is a nice thing for a crt shader, but i can’t promise i’ll hurry in some implementations.

Currently some shaders like newpixie and mame_hlsl offer some nice dynamics, so maybe you should check them out.

4 Likes

Very good news from you, a greeting and thanks so much for your work.

1 Like

I just came across this, a new version of the SNES 240p test suite has been released with a new pattern added “monoscope”.

http://junkerhq.net/xrgb/index.php?title=240p_test_suite#Monoscope

The retrotech guy has made a quite extensive explanation of the new test pattern, looks quite interesting:

The NEW 240P Test Pattern is here!

There are also some very good close ups on static and dynamic convergence in in the video, maybe you will like those

3 Likes

Do you mean “static” static, or static decovergence?

1 Like

Some dynamics is always nice, but could require a major overhaul of some passes. It’s quite a bit of work involved to comply with all current features, but will probably give it a try a bit later.

2 Likes

On the subject of static, I’m not super into the one you’re using atm, brightness loss hits fast and hard, but it’s a tradeoff ik.

1 Like

It’s because deconvergence is calculated with masks and scanlines already developed. Offset of 1.0 is sortoff special, because it’s in conjuncture with masks sizes. Averaging masks in normal (curved) space usually leads to brightness loss as peak brightness is reduced.

If dynamic deconvergence with different offsets would be applied in last pass, regarding the position towards the center of the screen, then some ‘brightness’ rings would appear and it would look quite crappy.

It should be rather rather simple to code it if i would ditch scanlines and filtering, TATE and coordinate some manipulation woudn’t be necessary etc. That’s why it’s not polite to expect all features can get the same level of quality and attention.

I would like to mention that the shader framework is also missing an handy scaling option, namely scale_type = “original”, which could help out here a bit.

4 Likes

Yeah, it’s kind of a problem that we don’t have this. I took a stab at adding it and immediately got “semantic mapping” errors. It will require more work to figure out what should be necessary to get it working

2 Likes

You may be able to piggyback on ‘absolute’ and just grab the first framebuffer size to feed into the values. It would probably need to be named something other than “original”, since that name is used for a bunch of other stuff, but maybe “native” or whatever else.

4 Likes

To be clear I’m fine with the decovergence @guest.r, my issue is the static/film grain effect rofl.

Also completely understand that not everything can get the same amount of attention, nor does it need too tbh.

1 Like

A better deconvergence implementation is already under testing. :grin:

Some criticism about film grain sounds reasonable though. Is it too fine or too saturated? Feedback is welcome.

4 Likes

Sweet about the decovergence, tbh I was happy that you resplit the settings for it (horizontal and vertical RGB being separated from each other).

I’ll go test in a couple minutes just to be a precise with my complaints as possible, but from what I remember from testing the grain effect last night is when I got it setup high enough to notice from where I was sitting, it was desaturating/washing things out. (May just be nitpicking, as I actually didn’t get into fine detail testing yet lol.)

1 Like

there are a few different ways to do grain, RGB vs luma-only, additive vs subtractive vs multiplicative, etc. I’ve personally had the best luck with making tiny offsets to the texcoords at sample time instead because it’s more of a static-y look than film grain-y, and it doesn’t affect any of the colors or black levels / white point / whatever.

3 Likes