Koko-aio shader discussions and updates

@Cyber

To emulate the tube rotation, I rotate the scanlines and the mask too, like I think every shader.

There is no more alignment between the emulated mask and the horizontal display mask, true, but I don’t get why this is a problem.

Or better, the only masks that need alignments are the green/magenta or green/magenta/black.

But other than that, I don’t think I’m exploiting nor taking advantage of subpixel alignment.

Am I missing something too? :smile:

@estefan3112
I defaulted to scanline rotation for a simpler reason, less moire.

1 Like

Sorry to ask again, because I don’t understand. If you say you “defaulted to scanline rotation”, what does that mean? That with vertical monitors, you rotate the scanlines 90°, so they are horizontal? And that horizontal scanlines in vertical monitors create less moire? If this is what you say, I commit being blind :grin: Many thanks for your patience!

I opted for auto tate mode (-> rotate scanlines) on vertical content, because, at least on 1080p, using vertical scanlines produces moire.

If you don’t see it, maybe it is because the shader is opting for fake integer scanlines, a mode which is triggered when the available screen lines/core lines falls under a configured ratio, which is likely to be the case, since in your presets you further reduce the available screen lines by showing the full bezel frame.

Fake integer scanlines is a workaround where scanlines don’t snap to core lines nor are curved.

Unfortunately, the content on your screenshot won’t allow me to understand if this is the case (too dark, scaled down and ultra compressed).

Instead, by using tate mode, the default setting for vertical games, scanlines have plenty of screen lines to draw properly, without moire, so I opted for it.

Your choice now :+1:

2 Likes

Many thanks and food for thought, as I am on a 4k monitor here…

1 Like

You really need to fix your screenshots :stuck_out_tongue:

1 Like

Hi! Does Koko´s works OK with vertical monitors? I´m planning to use overlays from here but I´m not sure if using “9:16” (instead of 16:9) can result in moire, or any undesired efect. Same question about 4K.: Does Koko´s work in even better in a 4K monitor? Or it is just the same?

Hi there!

If by vertical monitors you mean rotating your real display, I’ve no direct experience, but it should work; there could be unhandled issues tho.

There are none if your display stay 16:9, but you want to emulate 9:16 games on it.

4k is welcome and everything will look better. Also, 9:16 games will benefit from it because you will be able do disable tate mode and have vertical scanlines without moire.

1 Like

What is the proper way to tilt the bezel?

1 Like

While the screen “can” be tilted, I didn’t have any luck matching it with my tilted cabinet without screen alignment issues. (Which is why it isn’t included in my pack.)

The tilt code HSM uses in the Mega Bezel is VERY resource hungry. I’m sure kokoko used something leaner.

1 Like

Maybe a custom bg over would look better? without a bezel. like those old school overlays by Orionsangel.

1 Like

I’ll magic something up and include it in the upcoming release.

I will update some of the handhelds with my newer graphics as well.

1 Like

You can check out OrionsAngel’s Assault Overlay preset I did with koko-aio. It takes a combination of Tilt settings and Global Offset

DO_CURVATURE = "1.000000"
	GEOM_WARP_X = "0.300000"
	GEOM_WARP_Y = "0.560000"

DO_BEZEL = "1.000000"
	BEZEL_INNER_ZOOM = "-0.419000"
	BEZEL_FRAME_ZOOM = "-0.616000"

DO_GLOBAL_SHZO = "1.000000"
	GLOBAL_OFFX = "-0.031500"
	GLOBAL_OFFY = "-0.102000"
	GLOBAL_ZOOM = "0.936000"

DO_ASPECT_RATIO = "0.000000"
	ASPECT_X = "8.000000"
	ASPECT_Y = "9.000000"

DO_GAME_GEOM_OVERRIDE = "1.000000"
	GAME_GEOM_ASPECT = "0.875000"
	GAME_GEOM_VSHIFT = "1.012000"
	GAME_GEOM_ZOOM = "0.730000"

DO_TILT = "1.000000"
	TILT_X = "0.230000"
	TILT_FOV = "0.100000"
	TILT_BEZEL_K = "0.570000"

bg_over = "cab_tan_full.png"
1 Like

In the past there were a second parameter to align the bezel, but now it is gone because it is automatic.

I think this was fixed some commits ago but not yet in retroarch release.

If you guys are already using the dev vesion, how can I reproduce the misalignment?

@hgoda90: indeed, TILT_FOV and TILT_BEZEL_K were gone because useless. I hope it is really the case :sweat_smile:

Also, be warned, that auto fake integer scanlines does not take tilting into account, so moire is VERY likely to occur at 1080p if you don’t force them on, which seems to be a good idea anyway, since i suspect/speculate even 4k would struggle to produce a clean picture.

4 Likes

I haven’t tried with the dev version. I’ll let you know how it works when I get home.

2 Likes

Fantastic! you might already know this, but 90 degrees and 270 degrees games require different tilt parameters, like in “dkong” vs “1943”.

Oh my bad, I’m still using the RA version.

I tested tilt with one of my Soqueroeu pack presets, and it aligns fine in the RetroArch version:

2 Likes

Changing the presets settings around, Tilt seems to be fine on it’s own without the other settings.

GEOM_WARP_Y = "0.140000"
BEZEL_INNER_ZOOM = "-0.514000"
BEZEL_FRAME_ZOOM = "0.000000"
GLOBAL_OFFX = "-0.029000"
GLOBAL_OFFY = "-0.056500"
TILT_X = "0.170000"
ASPECT_X = "13.000000"
ASPECT_Y = "14.000000"
GAME_GEOM_ASPECT = "0.930000"
GAME_GEOM_VSHIFT = "0.030000"

2 Likes

I have an issue with all of my presets concerning the tilt parameter.

The more I tilt it the more vertically misaligned the screen gets.

Turns out the culprit is my use of the “BEZEL_FRAME_ZOOM” parameter.

Also turns out that I may no longer need it since the Global Zoom was added in.

Correct me if I am wrong @kokoko3k but it looks like “BEZEL_INNER_ZOOM” has also been automated.


Some change since I created the pack has also messed with the zoom on my “bezel_003” presets. (The dual bezel.) I will have to go through and load all my monitor presets to be sure they aren’t affected.


I need to eliminate those two parameters from all my presets, and add in Global Zoom parameters.

Should be fairly simple because of my boilerplate.


Looks like this update will be bigger than I thought. :grin:

4 Likes

Thanks, nice catch!

Assuming dev version:

BEZEL_FRAME_ZOOM and BEZEL_INNER_ZOOM are meant to align monitor frame reflections to content, stop, I may modify the label to be more descriptive.
They should not be used to zoom, and no, inner zoom is not automated.

They are not fixed values just because one can modify the frame png and need to align it.

I tried to tilt and modifying bezel frame zoom and indeed there’s a problem: Problem is not frame zoom, but inner zoom, it has to stay to 0.0 to keep content/frame alignment with tilt enabled.

I may completely remove it and just use Frame zoom, modify its label to “Frame/reflection alignment” so that one have to rely to global zoom (as in the screenshot) for the rest.

Objections?

Sorry for the trouble!

1 Like

I only use inner zoom for two things: to add black bars around content, or to properly align the image with straight bezel on + curvature off, as this combination tends to hide more image under the bezel:

DO_CURVATURE = "0.0"
BEZEL_USE_STRAIGHT = "1.0"

DO_CURVATURE = "1.0"
BEZEL_USE_STRAIGHT = "0.0"