New CRT shader from Guest + CRT Guest Advanced updates

I don’t understand, but if it helps make black outlines bolder then maybe it’s worth trying :slight_smile:

I understand that we’re limited by the algorithms that are available to us, we can’t replicate exactly what an analogue device is doing without emulating the entire physics of the thing. So if this is just something that we can’t do, I’ll accept that and happily continue using guest-advanced to emulate an RGB crt :slight_smile:

I think you’re right about keeping the shader focused on what the shader does best.

This would be a game changer; can’t tell you how many times I’ve been messing around with shaders and wished I could just add something to the beginning of the chain without manually moving all the passes down.

4 Likes

The main difference is that phosphor dots are analogue surfaces which, in general, allows separative black insertions of different dimensions ( photo). Modern displays are quite limited here and adding a R-G-B-Blk mask, for example, would only produce an non-comparable effect, especially with 1080p. Anyway, it’s an rather sub-pixel size effect, which shouldn’t matter too much, looking from a foot or more. Maybe it would look much better and authentic with 4k though, talking about emulated horizontal dynamic sized crt phosphor gaps.

3 Likes

Ahhh okay, I think we’re talking about different things?

I was referring to the black outline on the character sprite, if you zoom in I’ve circled it:

Via composite, outlines around sprites for example become bolder (I guess due to chroma/luma loss from using a composite signal?).

Subtractive sharpness isn’t quite enough to emulate this. The standalone CRT shaders (ntsc-gauss-scanline, ntsc-adaptive, ntsc 250px) all capture this well, as does Blargg’s filter. This is the one thing keeping me from using guest-ntsc. I’ve been falling back to a single pass CRT shader like Aperture, Geom, or Hyllian + NTSC-Adaptive. Whatever NTSC-Adaptive is doing, it looks really good. It also avoids some of the weird glitches that Blargg’s filter sometimes has.

NTSC-Adaptive + Aperture

The main difference is that phosphor dots are analogue surfaces...

What you’re talking about, I think, is the black space between phosphors? I agree a new mask option here would be nice, but it would only work in 4K:

image

or this

image

This is the closest you can get to an accurate representation of a slotmask at 4K, I think. Resulting TVL is around 300, which is around what most TVs and arcade monitors were.

3 Likes

Yeah, 2x scaling with these filters are done in reference (curved) gamma, which produce different brightness transitions. Sharpening can have an influence, but not this much. Overall gamma can still be lowered. It’s my dilemma whether some crt displays honored linear or curved gamma with NTSC signaling, since ordinary crt shaders compute with expected results in linear gamma space.

4 Likes

New Release Version (2021-07-10-r1):

Notable changes:

  • Two new NTSC blend modes. Basically all versions so far are covered now. Modes 3 and 4 don’t work with interlacing, because this pass is skipped. Prior modes are also to be used for TATE.
  • Small cleanup of unused code.
  • LUT options cleanup, some parameters are now #defines.
  • New brightness options added in the pre-passes.
  • Small mask parameter re-ordering.

Download link:

https://mega.nz/file/cwY0AZxa#NFx7oIjSBhB0F-LEHEWikvLSfDmRiBP-L2wh0HRh200

12 Likes

I always open a big smile when I see a new release.

Thanks, @guest.r.

4 Likes

I’m still messing around but I like these changes. The Mario S-Video is feels like it was drawn with smeary markers and the Zelda composite is jittery but artificially so like it many other composite shaders. The NTSC color definitely add that extra layer of nostalgia coloring.

3 Likes

I can now experience Saturday morning disappointment all over again. “Go play outside!” I guess I will as this game is terrible and it’s 11am so all the cartoons are finished for the week.

4 Likes

Is it possible to have an option for curved gamma for ntsc, or would that basically require a new shader? I just want it to look like ntsc-adaptive, but ntsc-adaptive doesn’t combine with guest-dr-venom. NTSC-adaptive is the most visually accurate and produces the fewest undesirable artifacts from what I’ve seen of all the shaders/filters.

2 Likes

The NTSC version uses the latest NTSC-Adaptive shaders and with Blend Modes 3-4 it’s processing is honoring the ‘original approach’ of filtering. The filtering in the main GDV pass has to be adjusted if using different blending though.

3 Likes

Explain updated blend modes for us? I thank you for the added sega luma fix, but I could of understood you wanting to maintain a less messy code base!

1 Like

Mode 3.0: similar to the crt-guest-dr-venom-ntsc-composite.slangp in the presets folder. It works with 2x ntsc passes scaling + gdv advanced on top.

Mode 4.0: similar to the previous GDV2 version of the ntsc preset…

There is a chance of zero maintenance if i don’t make further changes to the shaders. :wink:

2 Likes

I see, so gdv-ntsc looks different than ntsc-adaptive because of the filtering methods used in gdv; makes sense.

So is there any way to make GDV-ntsc look like ntsc-adaptive? I’ve tried maxing out subtractive sharpness, tried maxing out scanline spike removal, etc. Is it basically impossible to make GDV-ntsc look like ntsc-adaptive because GDV does its filtering in linear space? Should I give up on this fool’s errand?

1 Like

Edit: mode 3.0 is very nice, gamma can be lowered for a more ‘darkish look’.

If you add some compare shots, the difference will be quite notable.

Edit2: Some screenshots:

Default mode:

Mode 3.0 with some tweaks:

ntsc-adaptive:

ntsc-adaptive composite:

Either composite modes produces the rainbow effect, so the first three screenies are s-video.

2 Likes

I might be doing something weird with the settings as the second shot there looks good. I wonder if these settings can prevent black lines from becoming too thin, though. Mind sharing the filtering settings used there?

Ideally, when emulating an ntsc signal the black lines will become bolder and small dark details will lose definition as a result of luma/chroma loss. It’s not desirable per se but that’s what happened with a composite signal.

1 Like

Maybe it’s important to use the new version from it’s unique folder, just for testing. Otherwise i used Ntsc Blend mode 3.0, horizontal sharpness 2.2 and lowered both gamma values a bit.

Edit: i remembered from a couple years ago, that the 2nd ntsc pass itself does some very nice filtering when not outputing to a 2x source resolution (keeping it at 4x). Just tried it and it should work even better. Will probably include the change soon.

2 Likes

New (Release) Test Version (2021-07-12-r1):

Notable changes:

  • NTSC blend modes pruned down to 3. Mode 2.0 is less adaptable (a combo of former 3 and 4 modes), but has much nicer consistency.
  • NTSC Adaptive passes updated to newest repo versions.
  • Edit: small fix.

Download link:

temporary removed

5 Likes

Those settings look good for the waterfall scene but are too blurry for some content:

Increasing subtractive sharpness or horizontal sharpness just makes certain transitions too harsh/ugly, though. You need to have that much blur to smooth this out, lacking a sharpening filter.

This sounds like it’s worth checking out at least.

I feel like there might be something to be gained by messing around with ntsc-related passes. I don’t know if this is actually an improvement but I swapped ntsc-stock for stock and ntsc-gauss pass for convert-ntsc, seems a bit sharper now, with some potentially worse ringing. It’s not necessarily better, just different, but it makes me wonder if all the available options here have been tried.

2 Likes

If the ntsc-stock and ntsc-gauss pass are the same as the ones from the NTSC directory, the stock is indeed just a regular stock pass that’s only there for resizing purposes, and the gauss pass is just for scanlines, which are irrelevant in the case of GDV.

4 Likes

you’re right, ntsc-stock does nothing. The gauss pass definitely does…something, I’m not sure it’s good, though.

2 Likes