Koko-aio shader discussions and updates

Indeed, I’m noticing artifacts with citra and this layout as well, it is because the resolution by the core dont and cannot reflect the original one.

This problem is not present on the gba which is shared with this core, because gba core exposes the real hardware resolution and the shader draws a mask per input pixel, but with citra this info is lost in the void, so using generic screen coords is needed.

change the reference line, it should look far better.

#reference "/koko/.config/retroarch/shaders/Duimon-koko-aio/Presets/Nintendo_3DS/3DS_Horizontal-[BigSmall]-.slangp"
IN_GLOW_POWER = "1.500001"
DO_FXAA = "2.000000"
DO_PIXELGRID_H = "0.000000"
PIXELGRID_SIZE_W = "1.000000"
PIXELGRID_H_PRST = "2.000000"
PIXELGRID_MIN_W = "0.050000"
PIXELGRID_MAX_W = "0.400000"
PIXELGRID_Y_MASK = "1.000000"
PIXELGRID_Y_MASK_OFFSET = "0.000000"
PIXELGRID_Y_MASK_ON_WHITE = "0.550000"
DO_HALO = "1.000000"
HALO_NO_PREGAIN = "1.000000"
HALO_POWER = "0.500000"
HALO_SHARPNESS = "7.000000"
DO_VIGNETTE = "0.000000"
1 Like

I suggest changing the base shader to the psp one, instead of gba. I did that to all dual screen handheld presets because it looks consistent.

Open the duimon presets, you’ll find a base shader section at the start, change that to reference the psp koko-aio preset.

3 Likes

Since the PSP preset uses the scanlines code to draw the gap between the LCD cells, they are tied to the core resolution as well.

It works for citra core too, because they are turned into fake integer scanlines automatically by the shader when the ratio screen resolution/core resolution is low enough, still, a more robust way to handle this is to use the horizontal mask bounded to the screen coords.

1 Like

I decided to add @Hyllian’s great xbrz to the available antialiasing methods.

While in the past I wasn’t so prone to do that due to its performance, it turns out that you can skip applying it to any uniform zone.

The check is cheap by itself and applied to all of the methods, so you can expect a big speedup not just for xbrz, but for fxaa and xbr-lv1 too.

On my Haswell, xbrz performance now is even faster than fxaa before today commits:

@ROBMARK85 I remember you were asking for something like that since years lol :sweat_smile:

7 Likes

kokoko3k what a nice surprise!! Lately I had abandoned this desire, but I still regularly use your Slotmask preset for consoles and your VGA preset for Windows 98 with great satisfaction. But now that you’ve pulled this surprise out of your hat, I’m happy to also be able to enjoy several games in “remastered” mode!!! Thank you so much - your work is immense and precious. I’m going to download it from the repository right away.

2 Likes

Adaptive strobe has been just upgraded, see here.

As a reminder, albeit its configuration parameters do show up in the shader configuration, the effect is disabled by default in koko-aio, and has to be enabled through config/config-user-optional.txt with:

#define DO_ADPT_STROBE

Hey, hi again buddy. Its been a long time having fun with one of your presets, monitor-ambilight-immersive

I’ve been using for several months an older version from you about this preset and it looked quite good till a couple of days ago.

  1. I updated files from retroarch v1.20.0 up to v1.20.2
  2. updated shaders with online updater

This preset had an interesting effect to give some sort of “glowing” if that’s the correct term for a couple of Letters around a game I play on DOS. Red for example used to look so bright (and cool) prior to update everything and now I tried the same old preset from you, or even most recent version and it no longer show up this way. Now I can see a massive difference with all intense glowing being turned off.

Do you know if this is a known issue or just from my side ? The thing is that some texts used to look so cool but I didnt save a screenshot from main menu in this game which used to show how intense Red colors used to be.

If ever helps, first 2 screenshots are prior to big update i did and the other 2 are post-update

I’ve had this kind of issue before with a couple of saved presets and sometimes, when updating Retroarch, some shaders tend to break so cant find a way to fix because I’m not experienced enough with shaders coding to patch them up.

Thank you for any help.

1 Like

Hi there, I think I know what you mean, and it was an intentional change.

Basically, I tweaked the bloom settings to look less the way you liked, but the good news is that it is a reversible change ; the bad one is that I don’t remember exactly when it changed, nor if it was a one shot change.

Retroarch shader updates are synced to the main development releases, so you can try to pick and older one from here:

and once you find the one that looks ok, it should be enough to copy its bloom section parameters to the new one.

…or just use it as is ofc.

I love this shader and i love the ambi lighting out of the box, but it got me thinking just how much ambient lighting would actually show on an arcade machine placed in the middle of an arcade. I’m going to start looking at footage from inside an arcade to see if i can see the effect. I’m guessing that cab inner sides would catch the light most and the cab face where the artwork normally is …not so much.

With that in mind i’ve had been playing about with the ambi light settings… this is where i’m currently at:

The light position is roughly where the cab inner sides are, with the light falling off again towards the outside edges.

You can only really see the effect on a video tbh, but anyway…what are your opinions on this?

2 Likes

I don’t know,

for the effect you want to simulate, the cab sides where the light reflects on should orthogonal to the screen (?), but it doesn’t seem the case by the overlay you’re using.

-edit- oh yes, seen them, very tiny, I think it’s ok then.

As a side note, led “slowness” should be set to its minimum.

1 Like

Yeah I’ve set it to lowest… I find the whole effect subtle but good. I’m not saying it couldn’t be better though.

Hi there, have a look at my 1942 implementation, which also works with ambilight, maybe you get inspiration for your own usage:

Cheers :slight_smile:
1 Like

Hey @kokoko3k, with the wild hack suggested by @Starman99x, I got a dual screen game & watch game running with koko-aio shaders:

But which handheld presets should I use? This one is with Generic-Handheld-RGB.slangp, which comes with a strange flicker. The Dots presets also provide strange results. Any ideas from your end? Cheers!

Edit: For some reason, the VirtualBoy preset seems to give me the most stable picture without flicker…

2 Likes

There is no handheld preset made for such lcds, but I can make one ofc.

The speedy new xbrz AA method and a slight shadow will fit it :wink:

1 Like

That would be really great! I shall then wait for a g&w preset then…

Do you have something on your repo for me to test?

Starting from koko-aio-ng.slangp, I found the culprit: Scanlines Flicker must be off. I also applied the dot matrix, and this looks already quite good! I would DM you the files if that is ok with you?

Sure!

…twenty characters limit

1 Like

Hi there, here we are:

I used this shitty image as reference:

This is your preset, tweaked, paths need to be fixed.

#reference “/koko/koko-aio-slang/koko-aio-ng.slangp”

TATE = "0.000000"
PIXELGRID_INTR_DISABLE_Y = "2.000000"
PIXELGRID_INTR_FLICK_MODE = "0.000000"
DO_DOT_MATRIX = "1.000000"

DOT_M_G_SHARP = "9.750000"


DO_GLOBAL_SHZO = "1.000000"
GLOBAL_OFFY = "-0.002500"
GLOBAL_ZOOM = "0.990014"
DO_BG_IMAGE = "1.000000"
BG_IMAGE_OVER = "1.000000"
BG_IMAGE_ZOOM = "1.003000"
BG_IMAGE_NIGHTIFY = "0.300000"
BG_IMAGE_WRAP_MODE = "1.000000"
DO_AMBILIGHT = "0.000000"
bg_over = "/koko/koko-aio-slang/textures/arcade_textures/gnw_dkong.png"


DO_CCORRECTION = "1.000000"
TEMPERATURE = "6000.000000"
COLOR_MONO_COLORIZE = "0.100000"
COLOR_MONO_HUE1 = "0.160000"
COLOR_MONO_HUE2 = "0.160000"
DO_FXAA = "3.000000"
    DO_DEDITHER = "0.000000"
    RESSWITCH_SYNC_SPEED = "1.000000"
    MIN_LINES_INTERLACED = "0.000000"
DOT_M_G_STR = "0.000000"
DOT_M_MBLUR_STR = "0.600000"
    DOT_M_MBLUR_MODE = "0.000000"
    DOT_M_SHADOW_STR = "0.500000"
    DOT_M_SHADOW_OFF = "2.000000"

BACKDROP_JUST_TUBE = "1.000000"
DO_VIGNETTE = "1.000000"
V_SIZE = "0.390000"
UNIFORMITY = "0.800000"
DO_SPOT = "1.000000"
S_POSITION_X = "0.300000"
S_POSITION_Y = "0.600000"
S_SIZE = "1.309999"
S_POWER = "0.250001"
DO_DYNZOOM = "0.000000"

#set this 1 and pause with "K" to preview how it would look with a static noise pattern.
DO_RF_NOISE = "1.000000" 
RF_NOISE_STRENGTH = "-0.200000"
RF_NOISE_SPARK = "-0.200000"

What I did:

  • Activated color correction
  • Set a bit of monochrome colorization with both dark and light hue set to the one i found from the reference picture background (a bit yellowish)
  • Switched upscaler/antialiaser to xbrz (you need latest koko-aio dev version, it is also alot faster in applying antialiasers/upscalers)
  • Disabled dedither (what was the point in having it enabled?)
  • Disabled resolution switch glitch (is not a crt)
  • Disabled screen breathing (is not a crt)
  • Activated vignette and set screen uniformity brightness to the lowest level; this simulates the lights around the player that slowly moves over time.
  • Disabled dot matrix grid, it is not a dot matrix screen
  • Moved casted shadow to bottom-right
  • Activated a light spot in the upper left corner so that it is coherent with the casted shadow
  • Added static noise to the image, so it looks more like the reference image. (You need the dev version, the static noise commit has been just added and added in my gameboy mono presets too)

You can notice how activating the spot lights the black area in the upper part of the screen; this should be easy fixable by blanking that part with a black color, removing alpha, making it opaque.

…feel free to tweak further ofc, the noise is probably a bit too high.

7 Likes

Did you make that vector G&W?