Hyllian shaders and presets

I’ve read your original post and tried to provide the screenshots, but you actually fixed the shader to replicate the previous quality (or even better). I forced many situations upon the shader and the unevenness is much less noticeable. I can still pick it on extreme cases, but it’s so easy to ignore now. I’m picky, yet satisfied, so I imagine most people won’t even notice a thing wrong. You can safely turn down the “min beam width” now, so there’s a way to balance overbrightness. Even the finicky sharp scanlines are much better, and unevenness can go unnoticed in many different cases (of course, not as easily as the soft scanlines), as long as you don’t tweak too much sensitive parameters (gamma, bright boost and glow). Finally, there’s better room to change things around, you don’t need to only rely on the defaults, which are good, but never perfect on every screen.

Anyway, I liked it very much, it’s a pretty solid work. Since it interest you, if I find any odd behavior, I’ll be sure to take a screenshot of it to better illustrate what I mean. The problem is: I don’t even know what feedback to give anymore. Everything seems stable and I can’t find how to improve the shader without going the full-accuracy route, a niche already overfilled. If I had to nitpick, I’d make two passing suggestions:

  • Color correction: provided you already offer many different mask options, why don’t you do the same with the color correction? It’s hard for me to defend something I don’t actually use, but the gray-ish previous option could be another choice, if that’s not too complicated. It wasn’t bad, and really reminded me of some CRTs. Who knows? Someone might find it nostalgic and even useful if the picture is (somehow) too dark.

  • Performance: with the old version, a plain benchmark I use to do achieved ~700fps. With the new version, it stays at ~500fps. Whereas far from being a heavy shader, performance really took a hit, putting crt-hyllian among the middleweight ones. That being said, and considering crt-hyllian-fast is a bit outdated and lacking, you could trim down some features and create a faster variant which have the old performance. The old crt-hyllian-fast could be renamed crt-hyllian-potato/mini/simple/fastest or whatever you see fit.

Regardless, thanks for your awesome work!

1 Like

Adding glow, curvature and using a monolythic crt shader take a hit on performance. It’s possible speed things up by spliting horizontal and vertical processing. The only drawback is that in order to use vertical scanlines you’d need a separate preset to swap the vertical and horizontal processing. For now it’s good as is.

1 Like

With crt-hyllian-3d, there’s a blur in text at anything but Y Res Multiplier: 1. I modified the shader so that I could adjust it by 0.01 and found that just bumping it from 2.00 to 2.01 or 1.99 would fix the blur.

On another note, the shader looks best to me when I adjust the resolution down about 0.75 of what it should be e.g. at 4x upscale, X/Y Res Multiplier at 3, instead of 4. The scanlines are smaller and closer together, and it seems like they’re more subtle but still adding that nice crt texture. I don’t know much about shaders, so I don’t know if my preference makes any technical sense.

In any case, thanks for cool shaders!

1 Like

Hi, this is a very old version of crt-hyllian, BTW. I’d like to reproduce that blur you mention, but couldn’t do it without details about how are you using this shader. Can you provide a step-by-step way to reproduce that blur and show some screenshot showing this explicitly?

If you’re not following latest updates on slang repo, I made a big update on crt-royale-fast shaders and presets: https://github.com/libretro/slang-shaders/commit/0a305b879eec074f9d620282293844c7a878fb60

  • Toned down Gamma and Brightness compared to default Royale;
  • Deconvergence is back. Figured out that using vertical subpixels deconvergence mitigates uneven scanlines in non-integer vertical scaling. Works great at 1080p!
  • Added geom’s curvature;
  • Updated crt-royale-fast (inside crt folder);
  • Updated crt-royale-ntsc-composite-fast (presets folder);
  • Added new presets: crt-royale-pvm, crt-royale-pvm-shmup, crt-royale-pvm-blend, crt-royale-pvm-ntsc-composite (presets folder).

crt-royale-pvm:

Castlevania-Symphony-of-the-Night-USA-240906-183741 Castlevania-Symphony-of-the-Night-USA-240906-183547 Castlevania-Symphony-of-the-Night-USA-240906-183439 Castlevania-Symphony-of-the-Night-USA-240906-183430 Castlevania-Symphony-of-the-Night-USA-240906-183347 01-Super-Mario-Bros-3-USA-240906-072328 sfau-240906-072246 sfau-240906-072047 sfau-240906-071922 sfa2u-240905-185051

crt-royale-fast:

Castlevania-Symphony-of-the-Night-USA-240906-183748 Castlevania-Symphony-of-the-Night-USA-240906-183337 Castlevania-Symphony-of-the-Night-USA-240906-183224 35-Castle-of-Illusion-Starring-Mickey-Mouse-USA-Europe-240905-201956 01-Super-Mario-Bros-3-USA-240905-135310

crt-royale-pvm-shmup (using integer scaling and 4:3 aspect ratio):

dfkbl-240906-163015 futaribl-240906-162114 ddpdfk-240906-120639 ddonpach-240906-112819

7 Likes

Made a small update to get even better scanlines at non-integer scalings: https://github.com/libretro/slang-shaders/pull/633

003538-240908-150233 003538-240908-150222 003538-240908-150144 03-Super-Metroid-Japan-USA-En-Ja-240908-110035 003538-240908-082756

They’re called pvm for a reason. Can you spot extreme scanline thickness variation in these screens? And the mask popping in red regions?

00024-240909-080146 00024-240909-080246 00024-240909-080253 00024-240909-080318 00024-240909-080607 00024-240909-080629 00024-240909-080639 00024-240909-080717 00024-240909-080947 00024-240909-080959 00024-240909-081055 00024-240909-081636 00024-240909-081718 00024-240909-081810 00024-240909-081924 00024-240909-082256 00024-240909-082417

If you didn’t notice, those snaps were taken at a non-integer scaling (1080p), and yet, the scanlines don’t look uneven. It’s very rare to notice any uneveness with this preset.

10 Likes

update via retroarch?

1 Like

By Retroarch as soon as the PR is accepted. If you’re in a hurry, you may just copy the modified files from my fork as indicated in the PR.

3 Likes

Thanks for the updates, bud.

Do the NTSC composite presets actually have the last update from guest.r by the way ? Assuming these presets are using the code from him for the rainbows

Lately, guest.r could fix an unsuspected bug with the rainbow not being shown up properly. Suspicion is about a relatively recent update on ntsc-adaptive. But could be wrong. Still, he fixed it up just recently.

2 Likes

Yes, those presets use the ntsc-adaptive with three passes, so if you update them most certainly that bug will be fixed.

they’re updated already. The fix works on CRT guest NTSC preset but it not worked on your crt ntsc pvm composite or the crt royal composite presets

Ok, i didn’t test, so suppose I’ll have to update some var name or other things. Tomorrow I’ll look what has changed.

1 Like

have a good night and thanks for your presets!

1 Like

Nice! BTW, I just updated my shaders RA 1.19.1 and then downloaded and copied latest guest’ shaders (because repo isn’t updated yet). And all worked as expected.

Some screens:

001066-240909-072945 001066-240909-073008 001066-240909-073045 001066-240909-073055 001066-240909-073139 001066-240909-073535 001066-240909-073635 001066-240909-073928

Obviously, those strong rainbow only appear on stills. When the frames are updated, They give a nice stroboscopic effect that looks like the screen is blinking.

4 Likes

great job I solved my problem

2 Likes

CRT-Guest-Advanced-NTSC’s NTSC component is not identical to NTSC Adaptive. It was proposed to replace it but the NTSC Adaptive was updated in a different way instead, only taking some of what had been updated in CRT-Guest-Advanced-NTSC while leaving other aspects intact most likely for compatibility reasons.

2 Likes

Yeah, I know. And the two ntsc presets I posted (crt-royale-ntsc-composite-fast and crt-royale-pvm-ntsc-composite), both point to guest’s ntsc folder. So, if you update your guest’s folders, those presets will point to the correct shaders.

I mean, if the fixes are all contained in those three ntsc passes. Otherwise, then no.

1 Like

The problem with this method is that after you’ve perfected and are satisfied with the look of your shader preset, it is only one update or major change away from at best not looking as intended and at worse looking completely broken.

Both @Azurfel and myself have subsequently resorted to copying whatever version of the CRT-Guest-Advanced-NTSC shader was used for preset development into its own dedicated folder in Slang_Shaders where Online Updates won’t mess with it.

2 Likes

I understand it may be the case. But for what I’m pointing, I doubt it’ll have a big change in the future to compromise ntsc visual. Even if that happen someday, I’ll just point to the default ntsc-adaptive folder as I think the differences are negligible in most cases.

2 Likes

If you didn’t see the first screenshots in other thread, this is an update. I’m working on cleaning royale-fast’ slotmask and turning it into BGR. The first version was a bit too green. Now I fixed the green bias and intend to insert this option as a new mask at crt-royale-fast (I won’t change default royale):

003538-240914-090355 003538-240914-090349 003538-240914-090307 003538-240914-090258 003538-240914-090214 003538-240914-090209 00024-240914-085816 00024-240914-085233 msh-240914-082753 msh-240914-082708 01-Sonic-The-Hedgehog-2-World-Rev-A-240914-082604 01-Alex-Kidd-in-Miracle-World-240914-082452

3 Likes