New CRT shader from Guest + CRT Guest Advanced updates

Yup not having the “temporal” information of line drawing makes the realistic rendition virtually impossible, as we are approximating a simulation of a vector representation via single pixels. I was rather thinking about some kind of “occlusion” detection algo , determining a local glow boost based on pixel proximity and contrast ratio.

Of course this is also “faking” this out, but may be both visual appealing and putting extra-icing on classic “color vector” games, that used CRTs rather than vector displays. Think tempest, mhavoc, gravitar, spacfury, spacduel, startrek, starwars, esb…

Maybe rather than reasoning from a “vector” point of view (that implies a different hw) we can do a wider reasonment about “wireframe” (as an artistic style).

3 Likes

You can rise the black level a lot in arcade Tonma.

It’s like Contra, Ninja Spirit and some other ones.

7 Likes

Wow, that’s a huge difference/improvement, I’ve always noticed that Contra looked super washed out, I guess it just needs some of this black level love

3 Likes

Yeah, that’s a very useful setting to have. It would be nice if the black level setting in guest advanced could be set to negative, not only positive. We would then be able to fix such cases without having to manually add misc/image-adjustment.slang to the shader chain (its black level setting goes from -0.3 to +0.3.)

2 Likes

The cabinets for these games had smoked glass instead of totally clear, so it was like playing through sunglasses :sunglasses:

3 Likes

Sounds like a very nice idea. Thanks for hinting to this solution, seems like some games really need something like this.

For example Cadillacs and dinosaurs…: :grin:

2 Likes

New Release Version (2022-07-02-r1):

Notable changes:

  • ‘Raise Black Level’ parameter now allows negative values, mostly to improve contrast with some games. There are nice examples in the discussion a bit above.

Download link:

https://mega.nz/file/cpBGAQgT#0S2lH97puDveF0yWgc7p88Or4jWoMCkTeqHd6wPQlVk

8 Likes

It doesn’t work correctly. It changes colors other than black. This is how it should look (image-adjustment.slang with black level 0.3):

But this is what you get in crt-guest-advanced:

It would seem the only color that should be touched is pure black? (RGB 000.) Maybe taking a look at what image-adjustment.slang does helps?

Edit:
This is the reference image for easier testing with the RA image viewer:

loht-220702-230643

2 Likes

Dunno, in the images @Tatsuya79 posted there was an obvious change in saturation, which results if you substract an amount of a ‘grayscale’ color. Other colors seems to be affected to by the negative amount.

Substracting from the black color wouldn’t do much since negative values get clamped to the 0.0-1.0 range or, in some other cases, produce odd results. Reducing grayscale colors is an option, but i can’t tell if it would do anything consistent without some better logic.

1 Like

I uploaded the reference image. You can look for yourself how it looks in the RA image viewer with image-adjustment.slang.

2 Likes

Grade also has a black level setting that seems to work just as good. It’s been ported over to guest advanced and can be swapped in by replacing the “pre-shaders-afterglow” pass with the one in the guest/advanced/grade folder.

2 Likes

So it’s not possible to do this with the existing “black level” setting?

2 Likes

I’m not sure as I’ve never used it personally. From some quick tweaking though the black level in grade also has a minus setting that really makes blacks black

2 Likes

Which game is that in the photo? I’d like to try the grade black level on it

2 Likes

The arcade version of “Legend of Hero Tonma” (running in FBNeo.) But you can use the reference image from above because you can’t pause the game on that screen and it only lasts for a couple seconds.

3 Likes

Can’t make it work (using the fast preset.) I replaced:

shader2 = shaders/guest/fast/pre-shaders.slang

with:

shader2 = shaders/guest/advanced/grade/pre-shaders-afterglow-grade.slang

But it fails to load with:

ERROR] [slang]: Texture name ‘AfterglowPass’ not found in semantic map, Probably the texture name or pass alias is not defined in the preset (Non-semantic textures not supported yet)

However, I can replace

shader0 = shaders/guest/fast/stock.slang

with the image-adjustment.slang shader. That works.

3 Likes

New Release Version (2022-07-02-r2):

Notable changes:

  • ‘Raise Black Level’ parameter now allows negative values, mostly to improve contrast with some games. There are nice examples in the discussion a bit above.
  • It’s a smarter implementation than in previous version, allowing deviations on grayscale tones, which might be caused by color alterations, also provides better contrast on near-grayscale tones which a game could provide (contra arcade…).

Download link:

https://mega.nz/file/Q5ARVajT#yuKw9Uhl3gzSr0d5RIDTzU6qEQvjwcW9JwAW68DANqI

7 Likes

I never use the fast version but I just tried to replace that pass with the grade one and also got a failed error, I don’t think it’s usable with the fast versions. I know for a fact it works with both guest advanced and ntsc versions though

1 Like

It’s still wrong xD In fact, it’s way worse than before. You could cheat your way out of it before by raising brightness. Now you can’t do that.

It isn’t wrong, it’s very useful for some games, maybe you should give it another try.