Koko-aio shader discussions and updates

Oops, my bad, i was almost sure there had been a RA release over the past 3 months, but it seems not, so i confirm the latest 1.15 release doesn’t have that feature.

1 Like

I think @sonninnos had implemented this in our fork of mame current. I’m not sure if that is in the core downloader yet

1 Like

I looked into this and the new Mame Current DOES have the new rotation options, to make it the same as it was before we can use this great option that Sonninos added in the core options:

Go to Rotation Mode and set it to Internal.

image

If it is set to “libretro” mode I was expecting it to work similarly as with FBNeo. I think you may be having the same problem as I have also seen where the rotation is interacting in an unexpected way with the wildcards. I have to look into how it is different than what FBNeo produces.

3 Likes

Hi, in my experience, the libretro rotation option behaves identically to the FBNeo way, which is good for creating presets for both cores :slightly_smiling_face:

1 Like

Yes, it seems the default MAME ‘current’ behaviour is changed in favour of the post-rotation, which incidentally is a good thing for koko-aio, but seems to cause unexpected issues with wildcards.

Yes, the MAME core was standardized to work the same as all other arcade cores handling vertical games : other mame cores, all finalburn cores, flycast, kronos.

I believe MAME2016 is now the only exception to the rotation behavior, it should just be a matter of backporting @sonninnos’s work from MAME for anyone who cares about it.

The “internal rotation mode” core option was added for backward compatibility with shaders that were specifically written to work exclusively with MAME/MAME2016 and their internal rotation. Hopefully every shaders will be standardized to work with the libretro rotation over time and that backward compatibility setting will become useless. Rotation index being passed to shaders will also simplify detection.

3 Likes

Yeah, the issue is that if you have Allow Rotation set to off it passes the rotation index as it is supposed to, but it is also does the rotation internally which for our uses results in an extra rotation in the shader.

It will probably be adjusted sometime soon to work the same as FBNeo to only do internal rotation if it is set to internal, even if allow rotation is off.

1 Like

Hello kokoko3k just wanted to say I really love your work. I can use your shader on a t618 Android device with the ambi lights on. That’s really crazy. I have one question though, is it possible to make the tv-slotmask shader a little sharper?

1 Like

Yes of course, if you know how to edit params, here are the ones that affect blurriness (given that you’re using koko-aio shipped with retroarch):

fxaa, glow/blur sharpness, halo sharpness.

For details, see docs.md linked in the first post.

I’m gonna give it a go. Thanks

1 Like

“Grid Core Level Mask - Core Level Slot Mask” on small screens I think is the ideal solution. The sample screen is with FXAA enabled, but it looks great without it too. Thank’s for your job.

1 Like

The fact that the HMask and Slotmask scale to the native resolution is really fascinating.

Pretty sure that would look nice with psp games

1 Like

Looks nice indeed, and I guess bigger masks make sense on higher dpi screens like smartphones.

Just one thing, when you disable curvature and use a straight bezel, you have also to adjust the inner zoom, or the game content would go under the bezel and the reflections would be messed up.

1 Like

Thanks for the advice, very kind as always. I use everything on a smartphone, but on this model, by testing, I found the best results with this combination. Surely with a computer screen it would be different and it would probably be better to keep only the Slotmask on core level. As soon as I can I have to do some tests.

I have a Retroid Pocket 3+ on which Mega Bezels doesn’t work, despite the instructions and very kind help of their team. Out of curiosity, I tried this famous “Koko-aio” file, and was pleasantly surprised! I use the clean-scanlines-classic_take.slangp shader, then remove the curvature option and get a window that fills the top and bottom, while ambient LED lights decorate the left and right of the image.

But I have 2 problems:

  1. the CPU/GPU load is high (the handheld heats up quite a bit, regardless of the core used to play 8-bit, 16-bits, etc.)
  2. there’s a kind of ghosting that I can’t get rid of, which is very noticeable on games like Sonic on Megadrive.

Would it be possible to find a solution to the above 2 problems? Many thanks for your help.

For the heat, you could try to edit the shader and set the pass that scales to 2x to 1x, it will reduce the hw requirement, but some effects will not work; clean-scanlines should have no problems.

As for the ghosting effect, i fear i don’t know what is the issue, could you explain it better?

Sorry for not being more helping, but i’m on Holiday for 2 weeks now.

The ghosting is because of the panel they choose. It has really good colors and contrast but the pixel response time is really bad. Just scroll through websites fast and you see it how bad it is

@kokoko3k & @ComfyTsu : Thank you very much for your kind help !

  1. Fortunately, I could decrease 1 shader passes from 2x to 1x : this slightly reduce GPU consumption !
  2. About the ghosting effect, by searching the git repo, I’ve found a commit about gameboy motion blur : I understood that Dot matrix emulation parameter has a Refresh inertia : if this one is set to 0, the ghosting effect disappear completely !
  3. Last but not least, some square artefacts was present, and by reading the doc, it was said that when a shader requires a Full aspect ratio in Retroarch Video settings, the shader option named Aspect ratio has to be corrected according to the documentation (ex: for Magadrive, I had to set it up to -4), and the artefact disappear too.

I hope to find tweaks to reduce again the power consumption because I really like the effect, but the heat is not nice to feel. Thank you again !

About the ghosting effect, it is intended, but only on gameboy presets, not on scanlines-clean one. So either you’re victim of some placebo effect, or something weird is going on :sweat_smile:

Further reducing power consumption on scanlines-clean is possible by putting halo sharpness and/or glow sharpness (both horizontal and vertical / X, Y) to the max: 7.0.

I doubt that on small screens you would notice big differences, also those effects work bad anyway when you switch the previous pass to 1x as you already did, so do it safely.