New CRT shader from Guest + CRT Guest Advanced updates

A test version for adding black levels, currently only normal preset. I’ll need a popular vote i think, since it can look crappy, exposing uneven scanline weights at 1080p and non integer scaling - with higher levels. Opinion on afterglow would also be nice, currently with masks and without scanline effect, but both can be added.

https://mega.nz/file/B0pkQQxQ#2TA2nM0GnvTUOEZ-utaWaQXf-ObDyOes9Inrls6SHXE

2 Likes

Thanks for the update with the smart edge handling, I think it’s really next-gen :slight_smile: Will you be considering to implement the smart edge handling for the hires and ntsc versions too? Would be great, as this feature now provides incredible flexibility to find the personal preference between a crisp picture with nice enough smoothing.

I noticed btw that with the latest update (from quote above) that scanlines are not even anymore with the hires shader in some cases, this while RA has integer scaling to ON. Strange thing is that it doesn’t seem to happen everywhere in the picture (for all color scanlines). It’s quite noticable though on a blue background, see snapshot below. I tested the hires version with the PUAE core and integer scaling in RA ON. I tested various core options also, but no difference for the blue background. I can’t recall this seeing happening with previous versions.

unevenscanlineswithintegerscaling

The pattern is that every other scanline is more rounded, versus every other being more quare.

1 Like

Could you also test it:

  1. with shader built in integer scaling
  2. with D3D11

I might have some suspicions.

I think this is a good hint. It gets quite harder and more time consuming to support more pixels, and the hires/ntsc version would need much more to function properly where it should.

No difference with built in integer scaling and no difference with D3D11 (also tested Vulkan and GLCore, same issue).

The strange thing is that I’m -not- noticing uneven scaling on any other games with the PUAE core. I’m now suspecting this might be an issue with the PUAE core itself for this specific game (?)

Maybe leave it for now, if I find any other instance with uneven scaling I’ll post a shot and we can investigate further. But otherwise it may be better to consider this an issue with the PUAE core. I’ll try PSX later on also.

I see. No worry I think the hires and ntsc version look great, but now that we’ve seen what’s possible with the smart edge handling I was just eager to see it supported in the other versions as well :slight_smile:

Thanks anyway for the feature in the regular version, I consider it a milestone improvement to the shader as I could finally blend pixels in certain instances without sacrificing the sharpness of the whole screen. Really well done :smiley:

EDIT: Did some further testing with the PSX, SNES and MAME cores and didn’t see the scaling issue I mentioned earier, so that one issue I encountered must be something related to the PUAE core.

1 Like

Standard shader config + “raise black level: 6.00”. Very subtle.

It’s how I remember when I played on CRT TVs from 90’s: the black isn’t completely black, pure.

2 Likes

LK Looks good, What Mask are you using?

I’m also wondering in general if the glow should be over or under the mask, I’ve noticed in some screen shots it seems to be showing up with patterns from the screen

You can see some other close shots from the NEC XM29 Plus where I found this one here:

2 Likes

I believe that’s the internal reflection from the glass reflecting back onto the phosphor grid. My XM29+ has righteous internal reflections, and it looks like that one does, too. (I assume it’s because the glass is very thick)

4 Likes

Ah, that would make sense with how wide the glow is, and how it doesn’t have RGB components in it, and that it’s mostly whitish

3 Likes

That does bring up the question of whether that’s something we actually want. That is, we know there’s a difference between diffusion/halation (above the mask) and bloom (bright pixels on the mask exceeding our eyes’ dynamic range), so I guess it’s worth considering how much of the former bounces back onto the phosphor grid. (could be shown as raised black level just where there’s diffusion/halation :man_shrugging:)

OTOH, sometimes details like that can look weird in actual execution. An uncanny valley sort of thing, i guess.

5 Likes

I prefer mask being over bloom personally.

Glow should be the very last thing that is applied and it shouldn’t alter the mask colors if you want it to work like an actual CRT.

Reflected light could wash out the mask/raise the black level some, but that’s not exactly a desirable feature (IMO).

1 Like

Well the way glow works now it’ll most likely alter mask colors where glow is being applied.

Just because it’s not a desirable feature for you, doesn’t mean it isn’t wanted. I don’t see the issue with it being included as long as you can disable it.

I was speaking more about how this was perceived during the actual CRT era; no one wanted this and manufacturers tried several things to eliminate it as much as possible because it degraded the objective quality. Now nostalgia is a factor and some people might want to recreate these once-undesirable features.

Washing out the mask is going to result in a washed out image and/or poor phosphor definition so the objective quality and other aspects of the crt emulation will suffer, but just about everything you do with crt shaders involves some kind of trade-off.

1 Like

I’m still not sure what you’re talking about washing the mask out.

If glow raises the brightness of the mask/phosphors that’s washing them out; the phosphors become less visible and the colors lose saturation

1 Like

That’s a glow issue, unrelated to mask over bloom.

This gets confusing because the terms are often used interchangeably but they’re different things.

HSM posted a very defocused shot. In reality the white text is composed of 100% R, G and B phosphors and if you zoom in enough / focus the camera, that’s what you’d see. Is that what you mean by “mask over bloom?”

1 Like

Sorry to jump in, i think this might be a fun-fact with shader glow.

Linear space has to be considered with shader implementation, and the math is much different there. Glow is an additive functionality with very interesting properties. Assuming both gammas of 2.4.

If background is black, then the default 0.04*Glow has a max appearance of 0.26 when transformed back to reference space.

But if a color is like 0.5 (max, average, whatever), it’s un-glowing output transforms to 0.75.

Color of 0.5 + 0.04 of white glow transforms into 0.77, which makes 2.7% brightness increase in reference space.

My implementation mitigates the influence over brighter colors, so with “0.5” colors it influences less than 2% in reference space and decreasing with brightness.

That’s why you need much more glow for specific effects, and a notch for ‘regular glow’ functionality.

4 Likes

Mask 1 for console (5 is good too) and Mask 3 for Arcade. And you?

Good images for reference.

1 Like

So my visual memory didn’t fool me.

:grin:

In fact, on TVs where I played video games the black background was not so black and you could see the scanlines.

1 Like