Crt-Royale Kurozumi Edition Help

Hi,

I have this problem when I run games on scummvm:

The scanlines aren’t regular, yet the scaling is active. Anyone have any idea ? Thank 's.

What resolution are you on? If it isn’t 1440p or 2160p (i guess 1920x1080) you 320x240 shouldn’t give you a full screen, you should get a bit of a border to accomodate that the pixels don’t fit pixel accurate in your resolution. Since it doesn’t look that way on the screenshot, it seems the scaling isn’t set to integer in the video properties? If it’s on, maybe the core doesn’t respond to it?

Hi, I a beginner with shader and I would To try your shader, but Retroarch say me: Failed To apply shader preset. Have you an idea please?

Yes I’m in 1080p but the integer scaling is activated.

Did you set a custom aspect ratio? You need to do that after integer scale is activated. You’ll either have to crop the image somewhat or have letterboxing. Keep in mind that CRTs would crop 5-10% off each side of the image.

Not sure if this is the right place for this, so please let me know if not.

I am really enjoying Kurozumi’s version of CRT-Royale! It’s working great for me when emulating consoles up to the N64/PSX era, and it works great for these consoles at native resolution.

My question is about rendering these games beyond native resolution (e.g. 1920x1440). CRT-Royale works perfectly fine at these resolutions, but the CRT-Royale doesn’t automatically scale the mask and triads to match what you would see at native resolution, so it produces a very small mask and scanlines. I figured out that increasing Mask_triad_size_desired by the ratio (new resolution)/(native resolution) produces correctly scaled scanlines (e.g., 1440/240 = 6 so a triad size of 3 would become 18), but the shadow/grille mask still doesn’t scale accordingly. Is it possible to change the scale of the mask itself? Or is there a better way to produce expected results at higher internal resolutions?

I realize CRT-Royale probably wasn’t designed with this type of use in mind, but I thought I would ask the masters if there is a way to make it work.

IIRC, you have to change the mask sample mode to 1 to scale the mask.

However, I don’t think it’s ever going to look quite right unless you do a first pass that scales the image down to the native res before applying the effect. That’s essentially what the “supersampling” option in beetle-psx-hw does.

1 Like

Yes, I found the supersampling option in Beetle PSX HW, which works perfectly. Mupen64 Plus Next doesn’t have the same feature, however, and turning MSAA on exacerbates the texture offset you normally can’t see (it’s the problem the “continuous texrect coords” option tries to fix).

I think I tried changing mask sample mode to 1 and didn’t see a difference, but I will try it again. Is there a way outside of altering core options to scale the image down to native resolution?

Edit: Here is a picture of what I mean (Native res, 4x MSAA, continuous texrect coords ON):

Yes, by using a shader pass to scale it down. This is usually done by putting a pass of the stock shader in front of the normal passes, but you might be able to get away with just modifying the first pass of royale.

Try changing these lines:

scale_type0 = "source"
scale0 = "1.0"

to

scale_type_y0 = "absolute"
scale_y0 = "240"
scale_type_x0 = "source"
scale_x0 = "1.0"
3 Likes

Awesome! I’ll give this a go.

That worked! I had to add the lines you provided to pass0, as there are no existing lines for scale_type or scale in crt-royale-kurozumi. No big deal, though.

Thank you, @hunterk!

2 Likes

Thanks for stepping in and helping, hunterk. Sorry for being late, but since COVID-19 i’m waay overworked…

1 Like

As a long awaited follow-up to one of my older posts (Crt-Royale Kurozumi Edition Help), I’ve finally figured out how to get this shader working properly with vertically-oriented arcade games.

TL;DR: For games that commonly utilize 224 scanlines, go to Settings -> Video -> Scaling, turn off Integer Scale, set the Aspect Ratio to “Custom”, set your Custom Aspect Ratio (Width) to a multiple of 224 (e.g. 896), and set your Custom Aspect Ratio (Height) to whatever you like.

Note that you will need to set your X and Y axis to center the picture, but if you place all your vertically-oriented games into a separate folder (or content directory, as RetroArch calls it) then you can set the x and y axis once for the entire folder’s worth of games.

Okay, now for the longer explanation… First to clarify the problem: under Settings -> Video -> Scaling, if you set Integer Scale to “On” and set Aspect Ratio to “Core Provided”, then the vertical scanlines come out fine. However if you leave Integer Scale on but set Aspect Ratio to “Custom”, then the scanlines will be uneven, even if you verify that the Custom Aspect Ratio Width & Height values are showing as a correct integer scale (e.g. 3x, 4x, 5x, etc.)

So I believe the problem is that the crt-royale(-kurozumi) shader is mixing up the integer scale for the horizontal and vertical planes. Normally, scanlines rely on the fact that an image is at a specific HEIGHT, or multiples of that height. But when playing a vertically-oriented game, conditions are swapped and now scanlines require a specific WIDTH.

Most vertically-oriented games have a width of 224 lines (which makes sense, since if you tilt the TV horizontally, it would translate to 224 lines high), and if you look at the Height value in video settings then you will see that its basic value is 224. Now ignore the current Width value, and instead turn off Integer Scale and set the Width manually to a multiple of 224 that scales best with your display (e.g. 448, 672, 896, 1120, etc.) For now, it doesn’t matter what you set the Height value to; that value won’t affect the scanlines. For example, since I’m using a 1080p display, I will set the Width to 896 (which is the 4x integer scale value) and set the Height to whatever. Now try running the game… you should find that the scanlines are evenly spaced!

This methodology should also work with other resolutions, e.g. 240p. Just take a multiple of it and enter it as the Width value.

I hope this works for you… let me know if you stumble upon any issues!

This isn’t caused by the shader, it’s a core problem, and one that I reported on GitHub a long time ago. A lengthy debate ensued with no satisfactory resolution.

I’ve been thinking of getting a wall mount that allows for 90 degree rotation, that way I’m not wasting a ton of space when playing vertical games. It really seems like the best solution.

1 Like

Thanks for the info, Nesguy. I suspected there may have been something larger at play, since I recall having similar problems with other shaders that feature a scanline option. My suggested fix will probably work on those other shaders as well.

A wall mount sounds cool, but if you’re not crazy about drilling holes through your wall then you could go with a VESA mount stand that supports rotation. It would do the same job, but be less destructive (and usually cheaper) than going for a wall mount setup. Something like this could work:

Amazon - Free Standing VESA Monitor Desk Mount

1 Like

Which cores are you using?

Yeah actually I’ve been doing what you describe for a while with Final Burn Alpha/Neo but never got around to writing a guide about it, so thanks for doing that, useful info. You might consider creating a separate post. @hunterk is there a Retroarch wiki or something?

I use RA as a couch mode app and I do most of my work there too, I’m rarely at my desk anymore. So, I need something that will accommodate at 70" TV :stuck_out_tongue:

The entire docs site is generated from a github repo, so anyone can make a PR with guides/tutorials.

When running 480i content, the image will flicker like it should sometimes, but other times the image will look 240p for awhile, like when moving the character, or during a cutscene.

It doesn’t seem correct.

Has anyone else had this problem, or know of a solution?

What system (core) are you running?

Nesguy I’m using mame2003-plus for most arcade games, and I’m also using this shader with fceumm for NES, snes9x for SNES and fb neo for Neo Geo AES. I could look into how the github repo works to write a tutorial on how to get scanlines working well with vertically-oriented games.

Ah yes, a 70" TV would be a bit more of a challenge. :stuck_out_tongue: I actually have an 80" Sharp that I bought back in 2014 but it’s in storage. This shader looked very nice on it :smiley: