Koko-aio shader discussions and updates

Recently discovered these shaders and absolutely love them!

I also liked the RGB TV idea from Starman99x but tried something a little bit different.

I removed the Border from the Bezel and tried to fit it in perfectly into the background_over image. The Background Image is transparent and let’s the ambient light shine through.

I absolutely love those results, this is now my go to configuration :slight_smile:

Here are a few examples from Ristar:

2 Likes

@Faolon Really nice atmosphere you achieved there, my congrats!

Are you using the retroarch bundled koko-aio or the dev build?
Asking because in the upcoming version, there is a new parameter that allows you to colorize the foreground image without the need to modify its alpha channel.

Also, what do you mean by “I removed the Border from the Bezel”? If you put the image “over” the game content and the image itself is “holed” to show the content it should simply work.

Care to share your preset for us to cannibalize :slight_smile: ?

@jt.cs: XY problem maybe?
If you want an arbitrary fixed size content display, then no, it is not possible.
If you want to scale at 4x the content, then yes, support for integer scaling with a cap to the maximum scaling has been added some day ago on github repo:

1 Like

I’m using the retroarch bundled version. Real cool, that there will be a parameter for that!

I don’t mind sharing the preset at all…if you tell me how I would best do that :sweat_smile:

The issue with the border from the bezel is, that I made the whole background_over image transparent. Without removing the border, those 2 images overlapped and that just looks weird with the transparency of background_over.

Here is my modified bezel image and the transparent foreground image, maybe it’s more clear then:

Edit: Just had a look at the dev build. With the new parameter you really don’t need the seperate bezel image because there is no need for transparency - very nice!

1 Like

@kokoko3k Yes, arbitrary fixes size display that the bezel is generated around. I don’t use integer scaling, as previously I would specify a 960p viewport and that left content such as PAL Amiga 512p stuff only at 1x, although I guess I can try that and see how integer works with your shader and no specified size.

Quick correction/update: You still see the Border of the Bezel with the new parameter. I guess through the addative method it still displays through the overlay. It blends in so well with this method though, that I don’t think it’s a problem anymore - at least for me anyway.

Here is an example with the new parameter method:

You are still using the transparent texture, dont’you? :slight_smile:

This is stock bezel texture with led power pushed very high:

-edit- For the record, the parameters you want to tweak is “Always colorize foreground image” and probably “Led power” under Ambilight section. You can just load one of the 1084s presets included and push leds there, since colorization is already setted up.

1 Like

Are you kidding me…well that’s embarrasing :rofl: I even double checked exactly that…yes…well…nevermind I’m stupid and copied the wrong file regardless apparently :sweat_smile:

Edit: And here it is with the dev build and no transparent image this time around:

1 Like

You can further tweak “Colorization size” so that the color will spread nearer the tube (see that it stops on the bezel border right now).

Setting that value too high will colorize the game too.

@kokoko3k - regarding wrap mode, please let me ask once again for clarification:

In your current Github repository, you have the wrap mode disabled in line 129 of config.inc. As I have to uncomment this, I am clearly deviating from upstream in terms of wrap mode. And the static option in config.globals.inc is then for convenience, as for this artwork type, there will never be the use case for a mirrored repeat. That’s why I would remain with these two deviations, agreed from your side? Many thanks!

How about a user running the preset on a 21:9 aspect display?

2 Likes

There’s always somebody out there that wants that “other option”.

@kokoko3k Actually, I noticed that the 1084s presents are basically doing something very similar to what I want, just not to the height/resolution I’m looking for, so by playing with Background image enabled (set to on)/Zoom Image I can resize it to the desired 960p resolution with the bezel generated around it - with a different background image of course. Will have to experiment more, but it does look achievable after all. I’m chalking this up to me not explained what I was looking for clearly in my original post :grin:

1 Like

Maybe I did not express myself good, let me clarify better.

Usefulness or different use cases aside, what I was talking about was the possibility to statically set the wrap mode by using a facility already in place in retroarch that i didn’t considered in the first place when i added the support for changing the wrap mode in koko-aio.

That feature lives in the .slangp so it is part of the preset and does not require changes to the shader code; hence, if we exckude the handyness of changing the wrap mode at runtime, you can retain the same functionalities as before without deviating from upstream which, for clarification, is and remains 100% your choice (it does not change much for me).

That said, if you take a look to the main koko-aio.slangp preset, the parent referenced by descendants presets, you can see what I’m talking about:

  • bg_under_wrap_mode = “mirrored_repeat”
  • bg_over_wrap_mode = “mirrored_repeat”

…those directives live in preset files and like any other directive can be overridden by a descendant preset.

So if you include something like: bg_under_wrap_mode = “clamp_to_edge” (or clamp_to_border), in your own presets, you should achieve what you’re after.

Sorry for the long post, I hope to have at least hit the spot.

2 Likes

Well, sure, I was only talking about my artwork, realistic cabinet artwork, where mirrored repeat looks strange. There a black border looks just right for me :slight_smile:.

1 Like

Quick preview of the new “Nightify” feature, experimental and prone to changes:

For now available when using image “over” content only, it darkens the image and the bezel in a realistic way, while leaving reflections at normal brightness.

This is controlled by the “Nightify image” parameter in background image parameters group.

A new parameter has also been added to the bezel parameters group named “Diffusion strength”, that lights the bezel reflective area in an uniform way.

This is the final result when modifying 1084s presets and combining Nightify = 0.8 + Diffusion strength = 0.5 + Ambient ight power = 7.0 and Ambient light falkoff = 0.3

7 Likes

That looks incredible, fantastic job!

2 Likes

Hi again, just to let you know that
bg_under_wrap_mode = “clamp_to_edge” and
bg_over_wrap_mode = “clamp_to_edge”
does not work in my individual presets (your Github version as of today).
While I can modify koko-aio.slangp in that regard (and it works, without the config.inc modifications), the same change in the individual game presets/core preset leads to no result. Any ideas? Cheers!

Nope, not now, it should work regardless of the code in the shader.

I’ll take a look as soon as possible, but it seems a like bug in retroarch or some weird thing in syntax handling going on, can’t say.

Could you post a ‘non working’ preset?

Let me summon preset master: @HyperspaceMadness

Any ideas?

Of course, here is a preset example, where “clamp to border” has no effect. I also did a test by directly referencing to koko.aio.slangp, but that also did not help.

preset starts (you apparently also need the artwork from my repository):

#reference “…/…/shaders/shaders_slang/bezel/koko-aio/monitor-slotmask-bloom-bezel.slangp”
LUMINANCE = “0.000000”
BEZEL_R = “-0.220000”
BEZEL_G = “-0.220000”
BEZEL_B = “-0.220000”
BEZEL_INNER_ZOOM = “-0.110000”
BEZEL_FRAME_ZOOM = “0.090000”
DO_BG_IMAGE = “1.000000”
BG_IMAGE_OFFX = “0.000500”
BG_IMAGE_OFFY = “0.009500”
BG_IMAGE_ZOOM = “0.999500”
BG_IMAGE_ROTATION = “1.000000”
DO_AMBILIGHT = “0.000000”
bg_under = “…/…/shaders/shaders_slang/bezel/koko-aio/textures/arcade_textures/1942.png”
bg_under_wrap_mode = “clamp_to_border”

It looks like you are adding this in your simple presets (simple presets being the ones where there are #reference lines)

This is why it does not work. Only shader parameter values and texture path values are supported to be overridden in simple presets.

2 Likes