New CRT shader from Guest + CRT Guest Advanced updates

You’re free to do what you want, it’s shared for that.

I’m not sure Outrun is the best generic test you can do.
As many old arcade games such as Shinobi, Alien Syndrome, Contra, Ninja spirit, etc it has its colors pushed for some particular monitors they were using back then I assume.

For them I usually add an image adjustment pass where I rise the black level, 0.12 in Outrun like this :

1 Like

A lot of games had funky colors to compensate for smoked glass between the monitor and the player. Contra is definitely one of these.

1 Like

That’s good to know. Do you have any additional info or sources for this? This should probably be investigated further.

So far the settings hold up well with other games; haven’t noticed any clipping or anything. I’m currently inclined to think that the Outrun test works because it resulted in near-perfect beam dynamics as per @dogway’s testing.

It’s not the only test I do, I also check the patterns in Test Suite for any weirdness. I’m definitely open to any suggestions for improving my testing, though.

2 Likes

Updated: New release version (9.12.2020).

Notable changes:

  • afterglow tweaked, lower/shorter persistence possible, default persistence lowered a bit
  • some parameter tweaking, like mask strength param positioning etc.
  • scanline brightness changes: as advanced tweaking was mocked at with some ‘auto’ functionalities, i removed scanline type 1&2 automatic brightness compensation, also scanline parameters now cannot increase brightness in any way excluding deconvergence, which shouldn’t cause clipping.
  • new glow implementation, bigger, better, faster, complies with gaussian blur by definition. The only difference is normalized vs. normal distribution and the first has less glitches with low sigma. :grin: I also included a test preset for ‘debugging’ curiosity sake, portability etc. If there is a problem with glow, you can test the setup with blur-test preset.

Download link:

https://mega.nz/file/99RQiD4T#k9oBNigQjhZ6AU1ZQRcGa1d2LY0PDmui8OvppnCAFwc

Feedback is welcome. :grinning:

Edit: float framebuffer preference removed from blur standalone vertical.

Edit: Glow/Blur tweaks, menu formatting removed in reference blur versions.

15 Likes

I’m working with a 120hz, 1080p panel and feel I have to start all over again with shaders. I didn’t realize syncing with content could be a pain but also look awesome with BFI.

I’m curious about your use case scenario for Venom HiRes? I’ve used it to downscaled higher res content but found the results to be less attractive than something like a fake overlay of scanlines.

2 Likes

Here is my first go at it. I like the changes to the glow.

3 Likes

I agree, had to switch from 144Hz to 120Hz, but i’m still getting strange mask caused flickering at times, all ok while running at uncapped framerates though. The only problem i have is with vulkan, screenshot crashes, freesync crashes etc., but dunno if it’s a driver issue or RA issue.

You can use whatever you like, even an overlay with the hi-res shader. It’s advantage is normal 2D filtering at 2x internal resolution and you will still get compliance with horizontal resolution improvement due a dense and wide filter. It’s inspired by the ntsc preset in the presets folder, where a stock pass is doing a vertical downsampling to 240p. Here you can use 2x downsampling for example and the interlace effect might get triggered, it’s more authentic behaviour than with an overlay.

Thanks, i’m also very fond about it, also with the standard gaussian sigma control method.

1 Like

Is this scanline smoothing afterpass something you could share, just curious what effect it has :slight_smile: If it’s even better effect I wouldn’t mind the speed loss.

3 Likes

I’ll also share the SM preset with it to show the performance hit. If i wan’t to add optional support as a menu parameter, then default viewport y-scaling has to be increased to make higher-than-viewport integer scaling possible.

guest-sm-experimental (old version):

https://mega.nz/file/g1pwwARL#2jPKXEgw0V7-6SAA5DMdQLlk4hv2CfskMGFXcQ-RjKI

3 Likes

Do you have a presets for this masks to try?

1 Like

No presets, no, but I have the modified mask function code and a rudimentary shader for testing here:

2 Likes

SHADER CHALLENGE: can anyone come up with a way to keep phosphors from blooming into each other with three color masks while maintaining adequate brightness? Am I right that the only way to achieve this is with mask strength 100% and keep mask with clipping 100%? It’s very hard to keep the phosphors defined with a three color mask. With two color masks, the horizontal phosphor bloom looks a lot more natural because you still have two distinct phosphors no matter how bright it gets.

1 Like

@guest.r

Just made a fairly significant discovery (imo) regarding masks and subpixels.

First, the starting order of the subpixels is vitally important. GRB needs a different mask than RBG, for example. You need to determine the correct order by looking at the left side of the screen where the pixels start.

Second, the amount of clipping you get with the CGWG masks is greatly impacted by the subpixel layout.

My subpixels are GRB. Using the standard magenta-green mask, I get clipping galore. If I change the mask to red-cyan, the clipping is gone! Now it behaves like any other mask!

Anyway, just thought I should report these findings.

@c9f5fdda06 This might also be of interest to you.

3 Likes

I’ve been fond of this combo also, it’s already implemented with scanline deconvergence. The problem with blue-yellow, for example, is blue’s low luma influence, so i’d prefer red-cyan over it.

1 Like

@guest.r

Ah, so you think this actually isn’t impacted by subpixel layout per se? Looks better regardless of the subpixels? That makes sense, I just assumed the clipping was related to subpixel interference somehow.

When you get a chance, would you mind please giving your succinct analysis of the problem I outlined above regarding three color masks? I know we’ve discussed it before, but I’m just not quite ready to give up yet :sweat_smile: If it’s as simple as: you need the horizontal phosphor bloom to maintain brightness, okay, I accept that :slight_smile:

In that case could a three color mask using black as a third phosphor possibly be a solution? For example: magenta, green, black. Or is the black susceptible to the phosphor bloom? Need to examine this further.

1 Like

Luma is also very important regarding the mask layout, but it isn’t considered with the shader mask calculation, because it interrupts the nice and smooth 0.0 - 1.0 parameter range etc.

2 Likes

@guest.r

I’m not sure that subpixel masks are working correctly, but this could be my display.

Someone else needs to test, wondering if you could if/when you get the time.

Magenta/green should result in

RxBxGx

if you have RGB subpixels.

Currently on my plasma I’m getting weird results. I have GRB subpixels, so with red/cyan I should RxGxBx,

Instead, I’m gettting GRBxxxGRBxxx etc.

Mask strength should be 100% for this test. Sharpness setting on the display needs to be correct as well (no edge enhancement or blurring).

1 Like

Maks are ok, not minding the displays. Mine, for example, has a bit hard time with high contrast masks involving the vertical ‘shift’ component, like the 100% slotmask, or mask1 etc. You would be surprised about the inventiveness of some engineers.

Mask 0 magnified:

1 Like

I think this probably comes down to the way plasma works, I think certain colors require two pixels and they’re temporally interpolated at a very fast rate. It looks a bit like static or film grain effect if you get close. It’s not possible to completely shut off one of the RGB components of a plasma subpixel like it is on an LCD.

So plasma wins when it comes to natural phosphor glow, viewing angles, contrast ratio and image uniformity, but it fails pretty hard when it comes to masks IMO.

BW aperture might be the only option for plasma.

Yep, Plasma up close looks like rgb static. It’s bothered me since 2009 when I brought it home lol. Thank God you can’t notice it unless you’re way up close.

1 Like