New CRT shader from Guest + CRT Guest Advanced updates

I’ve got black bars flickering randomly from the ntsc passes on this last version:

2 Likes

Updated version is posted above. Could not reproduce the bug, but should fix the issue.

2 Likes

Perfect, thank you! :slight_smile:

2 Likes

Well, with merge fields off, this seems to happen:

That can’t be good…

1 Like

This was already reported and fix confirmed. But you must use the new version with download link above.

Yes, this was fixed.

The new issue is:
fringing and artifacting are disabled when merging fields for 2 phase (>300 pixels width).

1 Like

The NTSC shaders are coded this way i think, that 2 phase artifacting… is nullified when merged, producing a svideo appearance. One solution would be to always use 3 phase with merged fields in the first pass.

Edit: i’ll leave it this way for now since non-merged is the main choice and fringing/artifacting can be adjusted.

Nevertheless, i’ll post the new version again, since an issue was fixed:

New Release Version (2021-07-23-r3):

Notable changes:

  • NTSC Merge Fields parameter added for disabling the temporal component.
  • Edit: small bugfix.
  • Edit2: unroll loop on ntsc pass 2 for arm devices.

Download link:

https://mega.nz/file/pw4RQapT#38m9-bWMSYr5LLQjpDfIWTYlDR74mu3D--SjDolV4T8

5 Likes

I’m not sure why you would want to emulate a VCR.

Isn’t the RF option pretty much the same thing?

2 Likes

2 phase was running really slow on adreno (maybe other arm chips too) and following some qualcomm optimization guide I found a way to fix that if you’re interested.

It’s ugly but it works. Unrolling the loop. :man_shrugging:

1 Like

Stupid post approval moderation. I posted about this last night. :triumph: Anyway, I’ll give it a go tonight.

1 Like

Thanks, the pass 2 loop is unrolled now.

Cheers. :smiley: I’ll probably leave this version for a time, unless bugs are reported. The ntsc shaders used are tricky to modify, since they are very thoughtfully planned.

2 Likes

VCRs do additional weird crap, is it desirable/needed, nah but it’d be interesting.

4 Likes

Just got someone on discord with a Samsung Tab A7 “being too slow only for genesis with ntsc-adaptive”, made him download the optimized version and he’s confirming it’s full speed now.

So that’s still a snapdragon (662) and a rather slow one, so that’s good news.

2 Likes

I’m planning to try and integrate your updates into the repo’s ntsc-adaptive, since the field-merging was something I was planning to do anyway, and the scaling thing is a nice addition, too.

I hope to get your ‘advanced’ shader in there, too, now that it’s settled down a bit :slight_smile:

6 Likes

Denied, it will forever remain in constant flux XD

2 Likes

Thanks! Ofc. there might be some possible tinkering left, but the new features should work quite nicely.

2 Likes

Hello, I have a suggestions. NTSC scaling with PS2/Dreamcast adds a nice bit of blur at 0.7 but is too much on NES, Genesis etc. I would find a trigger multiplier/divider useful to keep the GVA-NTSC consistent looking between resolutions.

2 Likes

Yeah that generation looks a bit too pixelated at 1.0 scale.

The ntsc shaders weren’t originally designed for high res content. More precisely they are tuned for 256px and 320px of horizontal resolution. Which brings some drawbacks and manual tuning. So to speak it’s hard to guess what exactly the user wants etc.

Yes, it’s not something that is logical and purely from an “artistic” eye. I also have no idea how hard it is to implement something like a multiplier/divider. But my thought was. NTSC Scale = (1.0 - 2.0) Hi Res Multiplier = (0.1 - 2.0)

1 Like