Please show off what crt shaders can do!

Thanks Hyllian, here’s one of my favorites and really colorful Saturn game, I set “glow brightness” to 2.0 to show the color transitions between areas more dramatically, blues, greens, browns, reds. It’s really a nice shader and somehow it makes the unused screen area to come alive in these games, it’s almost like it becomes integrated with what’s going on in games and videos, not too far off what the screen does to the room walls and furniture. For instance, you can call element spirits, the fire spirit makes the screen glow towards reds and orange in real time, as well as parts with electric effects towards blues and whites, etc. I also recorded a short video to show it better.

6 Likes

Nice video! Relaxing lights.

4 Likes

Is it easy to implement a way for vertical arcade games to be used with this shader?

If it still has all of the original border shader’s stuff intact, you can set the aspect ratio to any arbitrary ratio from 1/256 to 256/1 via the parameters.

1 Like

I’m not sure if I’m missing something as I’m used to the auto rotation from the Mega Bezel shaders, but the only way for the game to be displayed correctly with the Ambient Glow is to use ‘Core Provided’ for the aspect ratio, so the expanded area won’t display the shader effects, even the stock one, as the aspect ratio options inside the shader settings will only increase/decrease the vertical axis. If I turn Vertical Mode OFF in Core Settings, I can’t force the game to TATE mode, the rotation settings under Video Options isn’t available and I tried a clean Retroarch build to make sure it wasn’t some setting getting in the way. Using all stock settings for the Ambient Glow shader and aspect ratio to Full and Vertical Mode ON in Core Options will stretch the game over the screen area, for some reason. This is true for the stock Ambient Glow and the crt variant.

1 Like

I think this might only be visible when you turn on “Show Advanced Settings” then when you do find it you turn on Allow Core Rotation, then FBNeo can rotate the full viewport

3 Likes

Good point, I didn’t know it was hidden! I just tried it, turned Vertical Mode OFF and used the screen orientation under Video/Scaling but vertical games will still stretch like the last screenshot above. Turning Vertical Mode ON will just rotate to the side like the second to last screenshot above.

the ambient glow shader handles aspect ratio on its own, just like the mega bezel shaders, so once the image is turned the correct direction, you should be able to set those numerator and denominator parameters.

1 Like

I thought so, the aspect ratio numerator and denominator works as intended on normal games, but not for vertical games, unless the core is messing with it somehow, if someone could try a vertical arcade game to confirm this, that would be really helpful.

1 Like

It’s possible that the aspect is reacting weirdly because the whole viewport has been rotated, and now to the shader x and y values have been swapped.

This is why in the Mega Bezel that I get the user to turn that stuff off so that the viewport can never get swapped like that.

It’s possible that for this shader and fbneo that having a rotate parameter for the game image may be a good way to go.

I should also mention that this problem will not happen on any recent Mame versions because it does not use the viewport rotation feature and rotates the image in the core before it is sent to retroarch (this is actually “incorrect” based on the retroarch spec, but is ok for a lot of people)

2 Likes

I’m no expert in correct aspect ratios, though, MAME worked fine and the manual numerator and denominator works only with the horizontal axis, so I got the games looking more or less as they should, but it’s not possible to manually set both height and width, so it’s a bit limited, though some games will be displayed in a very small screen if integer scale is set to on, like the screenshots below: It’s working fine in MAME and you were right about the FBNEO core behaving differently. The last screenshot shows the game with ‘integer scale’ OFF.

2 Likes

Right, the way it works is: the vertical size is controlled by fullscreen or integer and overscale on/off. So, stretch-to-fit, highest integer without going over or highest integer without going over plus 1. Then, the aspect numerator and denominator work from that height. 4:3 or 21:9 or whatever.

1 Like

So you can basically either snap the whole screen top to bottom or use integer and manually set the correct aspect, I tried Mercs with integer ON and the screen is really small, but I don’t care turning integer off most of the time.

Updated my presets. Feedback welcome!

NTSC

RGB

9 Likes

Some cores are automatically rotating the image but not swapping the viewport height/width, or vice versa, and it’s all just a bit of a mess because there is no standardized way of dealing with this. At least, that was the case the last time I messed with this. I was involved in a lengthy debate with some devs on github over the “proper” way to display vertical games. IMO, anything done to the image should be within the user’s control and not done automatically. Vertical games should be displayed sideways by default and there should be exactly one user option for rotating the image. Unfortunately I didn’t get anywhere with this argument, because “most people don’t want to rotate their displays,” or something. I gave up.

2 Likes

Hey @Nesguy, good you see you here again!

I had some conversations about this as well with similar info.

A future solution which could be somewhat better that I got partway through but have yet to pick back up and finish, is for Retroarch to communicate the rotation status to the shader, (what the core wants and how retroarch has responded), then the shader can react accordingly, by rotating the image in the shader, or do other things when x&y are swapped.

Once we have this then we could turn off allow core rotation and the shader could still know that the image is supposed to be rotated.

It would definitely help with the Mega Bezel though, as I could get it to automatically rotate when a vertical game on FBNeo is loaded.

3 Likes

Looks like it can’t find this shader: “NTSC analog overshoot.slang”

I’m using the latest guest on repo.

@hunterk

has this shader been added to the repo?

NTSC analog overshoot.slang

1 Like

I don’t think it ever was added, no. If it’s useful, though, it certainly could be.

1 Like

3 posts were split to a new topic: Sonkun’s crt-guest-advanced-ntsc Slot Mask presets