New CRT shader from Guest + CRT Guest Advanced updates

Hey there! I’m glad you’re having fun with the shader. :smiley:

If i talk about ‘dowsampling’ it might be also addressed as ‘fast approximate downsampling’ as i try to avoid some situations with it, like double filtering to output resolution. My motivation to introduce it is definitely nicer interlace/interpolation mode with increased original resolutions, where ordinary filtering would either need a much more complex filter or at least a consistent (horizontal and vertical) pre-filter.

If fast downsampling is combined with standard horizontal filtering and bilinear vertical filtering, then the results are quite nice, maybe some fine tuning is required.

For scanline mode it’s more advisable to use subtle vertical downsampling since any quality would also add some sort of ghosting regardless. HW downsampling is similar to no-dowsampling, it happens in the shader by default.

I adopted/copied this segmenting scheme from the ‘dotmask’ shader, which mostly consists from lottes masks and didn’t find any issues yet. Rounding the values to one digit should be bullet-proof though.

A BGR mask could be added, i guess it makes a difference on a appropriate display.

New Release Version (2021-09-04-r1):

Notable changes:

  • Mask 9 added for BGR panels.
  • Mask calculations ‘improved’. Should work as intended with some drivers now.

Download link:

https://mega.nz/file/R9ZywbxD#6wCfas_GMSuax2TaxRLGBtP94XfWIXyRMoIjWu1a6ts

8 Likes

Hello there. I have been messing around a little bit with your preset(s). It’s very cool for crt looking, thank you a lot for sharing !!

I have made this little modding but not really sure if may fit some of your taste guys, if you would have any suggestions to improve this little preset I’d appreciate it quite a lot !

CRT guest.r main folder shall be placed in shaders folder as well as the preset from above.

This is how would be looking in action:

3 Likes

Seems to the Overscan X pixels is missing

1 Like

Yeah, why not. :smiley:

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

Notable changes:

  • OverscanX option added.
  • Overscan range expanded to max. 100 px.

Download link:

https://mega.nz/file/tsYRnaLL#FFJdAyuHRmteDetE7dvTQ6_C3_IwAMYvvgl3pgf_eA4

6 Likes

Hey @guest.r! Here’s the video for C1201 monochrome dark amber gameplay, an exclusive sneak peek of homebrew Prince of Persia on Commodore 64 Breadbin from my work in progress Mega Bezel Commodore Pack just for you!

Once more, I’d like to thank you and mighty @HyperspaceMadness for your black magic dev support! :v:

4 Likes

That’s very nice! Not to mention the playing skill… :smile: I guess it will look even more interesting with the NTSC preset, even although i’m from a PAL region. See no harm in it if we adopt the excellent NTSC shaders for a while. :grin:

4 Likes

Sooner or later we will have NTSC and PAL passes in our Mega Bezel toolkit… I’d like to try and replicate those crossed artifacts we observed in our monochrome quest!

For now, we have to enjoy plasma hi-definition sharpness :grin:

5 Likes

It is amazing how much the imperfections increase the nostalgia. :upside_down_face:

5 Likes

Once this PR is merged, we’ll be able to disable the automatic inverse-tonemapping in the new HDR stuff for d3d11/12, so we should be able to do our own tonemapping in the shaders.

you and @HyperspaceMadness were the first people who came to mind when I saw this :slight_smile:

8 Likes

This is so awesome :star_struck: looking forward to trying this!!!

Thanks for the heads up!

5 Likes

This is great news, i think some adjustments might be necessary, but i can test it with my new 500 HDR nits display. :grin:

Ofc. you are very welcome to create a preset or add a shader for the range control. Currently the main pass clamps to the 0.0-1.0 range, it might be some useful info.

2 Likes

@guest.r, is there in your NTSC shader an option to disable the flicker?

1 Like

You can try the ‘custom’ option (-1.0), where you can have better control over flickering regarding phase. Then you can enable ‘Merge Fields’. Custom artifacting and fringing are to be set to 1.0 for composite effect.

2-phase without ‘flickering’ has the ‘rainbowing’ effect nullified though, you can set to 3-phase for some coloring.

Phase is otherwise determined by horizontal input resolution with 300px as the threshold for 2-phase.

5 Likes

Couldn’t the differences in the 2 images be chalked up to differences in calibration, brightness, contrast or gamma settings or capabilities of the display and not necessarily the shader doing things wrong? If there was a problem with offsetting in the shader, wouldn’t it also affect the purple highlight adjacent to the 1 and other pixels in the same line? What I’m seeing are 2 images with very different qualities. Perhaps the lights are being a bit overblown in the hardware example, while the darks are being crushed in the software example?

3 Likes

Could you have a solution to stop flickering on the soccer field?

NTSC composite, standard setup.

1 Like

Yeah I agree. I think that smear of green on the third line of the 1 in the hardware photo might be an unrelated artefact of some kind, and I simply mistook not seeing the same with the shader for an offsetting issue. Overall I’m very happy with the result and wasn’t going for 1:1 replication of the photo anyway, was just using it as an overall guide to for how the downsampling should behave.

1 Like

As i mentioned, you might go with a custom setup (-1.0) and either merge fields or leave custom fringing at 0.0. It’s worth the time to use the custom option.

1 Like

Merge fields = 1

or

Presets (Svideo=0 …) = 0

(The game is World Championship Soccer II for the Genesis/MegaDrive)

1 Like

Hi @hunterk I’m not sure but I’m slightly confused here. So you say we’ll be able to ‘disable the automatic inverse-tonemapping’ which is fine and I’ll add what we’ve discussed on the Discord channel but then you go on to say that you should be able to do your own tonemapping.

Do you mean you’ll be able to do your inverse tonemapping which again is fine or do you mean you’ll be able to do your own tonemapping which kind of doesn’t make sense to me, at least from my understanding that for the vast majority of time you’ll be starting with an standrard dynamic range image and therefore you absolutely need an inverse tonemapper to remap that out to a high dyanmic range image. Tonemapping is the opposite of that process high dynamic range down to standard dynamic range.

Sorry I’m just trying to make sure I understand what your requirements are or that you’re just using loose terminology.

4 Likes