Crt-royale and rotated content


I was trying some vertical games with FBNeo, which rotates the screen automatically for vertical games. My favorite shader is crt-royale, which always looks great at 4k.

Surprisingly, with vertical games on FBNeo, crt-royale looks bad, seems like it’s broken. The scanlines are not synced with pixels. It seems like it’s trying to apply the wrong resolution for both horizontal and vertical pixels (it does rotate the scanlines, but image seems rescaled at wrong resolution). I have a 4K display at 2160p resolution, and I’ve even tested it with integer scaling enabled. Results are the same. Looks like crt-royale does not handle rotated games correctly.

Other shaders, like crt-apperture or crt-geom look perfect, otherwise.

I’ve tested this with 19xx, 1943, and several other games. It does not happen with mame core because mame core does the rotation in a different way and shaders are not rotated with content (scanlines are horizontal on vertical games on mame core), but it happens on FBNeo and any other core, like Flycast. On flycast is less noticieable because Naomi games render at higer resolution, but it has the same problem.


I made an issue report about this a few months ago:

For now, I settled with using an interpolation shader (bandlimit-pixel) for vertical games.

1 Like

Thanks @Awakened,

At first I thoughtit was specifically crt-royale related, but after reading your github issue, I’ve doublechecked and certainly all shaders are affected. Indeed, it’s not a shader problem, but RA passing wrong resolution data. It just seems much more evident on crt-royale than in most other shaders. Hope it gets resolved soon.



I ran into this issue, and I think I found a work-around. In my case I am running on Windows 10 and using FinalBurn Neo core.

I wanted to use Slang CRT Royale in a project that was going to support both horizontal and vertical (TATE) mode games, but Royale completely jacked up the vertical games.

When you enable Advanced Options (under the User Inferface option), you get the options for Video Rotation, but you also get the option for Screen Orientation. This rotates the underlying display.

It is kind of a clunky fix, but by adjusting Video Rotation AND Screen Orientation in tandem I was able to get Royale working in both horizontal and vertical games. Of course, when I got Donkey Kong working the desktop was actually upside-down, but still the game itself looked great.

UPDATE: I still stand by this solution, but it is slightly more “clunky” than I originally expected. I ran into issues where I would get things looking perfectly on a subset of vertical games, but others didn’t work. Then I’d fix the others, and the ones that worked previously didn’t. It seems you have to flip some content one way, and other content the other way. For example, the screen orientations required for Royale to work on my display with Donkey Kong and Dimahoo (for examples) are opposite. Fortunately so far all the horizontal games consistently work. So in the end I’ll have configs for horizontal games, vertical games (with 90 degree orientation), and vertical games (with 270 degree orientation).