Koko-aio shader discussions and updates

Nope, vertical games should work out of the box as horizontal ones with 0 as numerator, which means 4/3, as probably 99% of mame games. The shader switches to 3/4 on vertical games automatically. What issue are you experiencing? and why are you using -1 instead of the default 0

Firstly, my monitor is ultrawide, so I don’t know if it happens with all types of monitors. When I use 0 to -4 the screen keeps with aspect horizontal in vertical games. When I set to -5 to correct the aspect and the “Ambiente light Leds” is on, a considerable part of the game screen in the horizontal aspect is reduced, no matter the retroarch is in “Core Provided” or “Full” scale. The only solution at the moment in my case is to leave the retroarch in the “Core Provided” aspect, turn off the shader’s “Ambiente light Leds” and leave the “Aspect Ratio Numerator” with “-5”.

This is weird, if I put retroarch in a window to simulate whatever aspect ratio, even ultrawide, the shader performs as expected. Are the core options left at their default values? I tested that way.

Anyway vertical games handling has been a tricky part, so tomorrow I’ll double check I’ve not broken it by mistake.

Nope, just checked on the fly, and all works as expected with the v3.0 shipped with retroarch and the current git master, into an “ultrawide” window, with default settings everywhere:

1 Like

Thanks, my core options are the defaults.

mame_alternate_renderer = “disabled” mame_altres = “640x480” mame_auto_save = “disabled” mame_boot_from_cli = “disabled” mame_boot_to_bios = “disabled” mame_boot_to_osd = “disabled” mame_buttons_profiles = “enabled” mame_cheats_enable = “disabled” mame_cpu_overclock = “default” mame_lightgun_mode = “none” mame_lightgun_offscreen_mode = “free” mame_mame_4way_enable = “disabled” mame_mame_paths_enable = “disabled” mame_media_type = “rom” mame_mouse_enable = “disabled” mame_read_config = “disabled” mame_saves = “game” mame_softlists_auto_media = “enabled” mame_softlists_enable = “enabled” mame_throttle = “disabled” mame_write_config = “disabled”

I’m pretty sure that stretching the window is a good way to simulate an ultrawide monitor, and as you can see, I’m still unable to replicate the problem on my side.

The same way, you can see if you can reproduce the problem into a 16:9 window; that would exclude 100% an issue related to your monitor aspect.

I’m out of ideas, but everything points to an issue on your settings/core, somewhere.

You tried the vulkan driver?

I use Mame 2003 plus core.

1 Like

I am using vulkan, I download the Mame 2003 plus core and I confirm that vertical mode works correctly. The issue is just on Mame (Current) 0.250.

2 Likes

So, it appears MAME plus and MAME current handles rotated games dfferently.

Background:
For how retroarch works, if you want to draw something outside the game content (bezels, background images, ambient lights or even green pandas), you are required to set the retroarch aspect to FULL.
When you do this, the shader has no f* clue on what was the original aspect ratio, and you are left with the only option to set the aspect ratio by yourself, in the shader options.

Now,
while MAME plus gives the shader the original - unrotated game, as it was made on bare metal, Mame current rotates by its own (tate mode I think is the term for that).
So, if you load a rom with a resolution of 320x224 meant to be played with a physically rotated tube with Mame 2003, koko-aio is able to detect it and rotates the screen for you.

When it comes to MAME current, instead, it first rotates the graphic, then it gives that to koko-aio.
At this point, it has no way to detect that the source has been previously rotated, and treats it like a normal game.
So, if you use koko-aio defaults, which means 4:3 aspect ratio and mame current previously rotated the game, you’ll have a wider picture.

tl:dr, ops, have you already read already? sorry!
You have several alternatives:

  • Switch to MAME 2003 plus :slight_smile:
  • Keep mame current (even if TATE mode is not the way the game was meant to be played, it wooks better on lcd monitors), set aspect ratio to 3:4 for rotated games, I’m going to add a specific “numerator to aspect”, probably “-6” for it in git soon.

I’ll check if I can use some heuristic to detect if tate was enabled.

2 Likes

Thanks for your support, your shader you be used for a large amount of people very soon.

Repeating what I wrote, your shader can simulate crt where others shaders suffer (transparency and dithering), including the Retroarch’s best shader in my opinion “Mega Bezel”.

If you have a time, look how “Mega Bezel” can manipulate rotation, dual screens or even triple screens like the game “Darius”

In a future will be a nice increment too to include a option to create corner radius but keeping the top and down of screen intact, avoiding the effect “ambiente light leds” bleeding a line of pixel top/down.

Keep up the good work. Regards

2 Likes

If you set Retroarch to “Core Provided” aspect, you can modify the corner radius as you please right now, under curvature -> Corner*

If you want to keep retroarch aspect to FULL, then just lower ambient led lights power to 1 and Falloff to 0.1, so that they will be nulled, eg:

You can also set a black background picture, but, as said, the right way is to switch to “core-provided” aspect in retroarch itself.

1 Like

Just a sneak preview of the ntsc color artifacting code added to the ‘already in place’ ntsc preset:

9 Likes

Today i tried my shader on linux with an amd card and faced a similar issue; using the amd driver caused the vertical masks to be just missed every tree columns. I pushed a workaround for it on git, maybe you want to try it too and see if something changes for you. https://github.com/kokoko3k/koko-aio-slang/archive/refs/heads/main.zip

2 Likes

Hi, the problem with your edit is solved. Now I see the colors correctly and everything is perfect. I thank you for your commitment and availability. Unfortunately, in the retrogaming field, AMD drivers have always created a few more problems than the competition, but you were perfect in solving it. Heartfelt thanks, keep it up and I take this opportunity to wish you and the community of the forum a happy new year.

3 Likes

Glad to hear that, but to be honest, I’m not completely sure amd drivers are to blame here, it was literally a borderline case. Happy new year!

3 Likes

most of the GPU/driver-related differences come down to rounding and how they handle exact-integer float values that occur from functions like round(), floor(), mod(), etc.

That’s why a lot of our shaders have little offsets added here and there and use 0.49999 instead of 0.5 and so forth.

4 Likes

Hello Kokoko3k, happy new year first of all. I wanted to let you know that I have used your shaders with GameCube games getting beautiful results and with great lightness in terms of hardware. Now they are my safe alternative when I want to play something and give it an HD/Modern style (I always use the AntiAliasing filter present in your shader). Please keep it up because yours is a wonderful work. Thank you.

3 Likes

true facts! I’ve barely played any games in years for exactly this reason.

5 Likes

Here are the results. I’m using Dolphin core for GameCube emulation, but it doesn’t support Vulkan drivers, only GLCore performance is degraded. In fact, I look forward to a future update of the core or the introduction of a valid replacement for running this fantastic console in the RetroArch environment. I use your slotmask monitor shaders, fxaa enabled and shift RGB component disabled. Of course I use your version which solves that color problem for someone like me who has an ATI AMD video card.

2 Likes

I wanted to clarify that the performance in the screens is also degraded due to the fact that at the time I used RetroArch I had also opened Google Chrome and it was downloading, otherwise I settle on 50 fps, and I have the same performance with the Mega Bezel Shader-Potato-GDV which I use when I want a more retro style on games. The quality/performance ratio of your shader is amazing since I consider it as an HD filter. The fact remains that I’m sure that an update of the Dolphin core, perhaps working with vulkans, would allow me to reach the full 60 FPS, considering that I don’t increase the native resolution or use other improvements.

I have no idea what you are talking about :rofl:

5 Likes

Mmh, They look bad in screenshots, but I understood why just now; it depends on the fact that CG has an “high” output resolution, so the shader consider his content interlaced and emulates the scanline flickering effect, which works good only “in motion” :slight_smile:

2 Likes