Koko-aio shader discussions and updates

It’s always difficult to put observations into words on a forum, rather than a convo…but yes, you understood, and the new screenshots look pretty awesome! Glad to be able to feedback and contribute.

Looking forward to the new setting you dialed in to be added to the ng presets.


Maybe the previous one was more fascinating, but unfortunately it was way too dark and a bit dull with other games. This is another version that probably needs some other work to mitigate moiree.


**slotmask wip preset gm mask, halo bloom, bleed misalignment mitigated, brighter**


#reference "../koko-aio-ng.slangp"
DO_CCORRECTION = "1.000000"
LUMINANCE = "0.200000"
GAMMA_OUT = "0.500000"
OFFSET_STRENGTH = "0.500000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.699999"
IN_GLOW_GAMMA = "2.000000"
IN_GLOW_W = "3.500000"
IN_GLOW_H = "7.000000"
DO_PIXELGRID = "1.000000"
PIXELGRID_MIN_W = "0.050000"
PIXELGRID_MAX_W = "0.800000"
PIXELGRID_H_PRST = "1.000000"
PIXELGRID_MIN_H = "0.250000"
PIXELGRID_MAX_H = "0.700000"
PIXELGRID_Y_MASK = "0.600000"
DO_HALO = "1.000000"
HALO_POWER = "0.430000"
HALO_W = "3.500000"
HALO_H = "3.500000"
HALO_GAMMA = "1.000000"
HALO_VS_SCAN = "0.250000"
DO_BLOOM = "1.000000"
BLOOM_MIX = "0.500000"
BLOOM_GAMMA_OUT = "0.999998"
BLOOM_POWER = "1.000000"
DO_CURVATURE = "1.000000"
GEOM_WARP_X = "0.480000"
GEOM_WARP_Y = "0.510000"
GEOM_CORNER_SIZE = "0.010000"
GEOM_CORNER_SMOOTH = "200.000000"
DO_BEZEL = "1.000000"
BEZEL_INNER_ZOOM = "0.000000"
BEZEL_FRAME_ZOOM = "0.174000"
AMBI_FALLOFF = "0.400000"
AMBI_POWER = "1.000000"
DO_DYNZOOM = "0.000000"
V_SIZE = "2.500000"
V_POWER = "1.000000"
S_POSITION = "194.000000"

It does look worse with altered beast, but better with others (eg: final fight).

I’m starting to think that some game colors were tuned for specific crt or crt calibration settings, or maybe that there were no solid standard to rely on, could it be?

One size fits all seems not possible.

Feedback please?


Altered Beast and other arcade games by Sega or e.g. some Konami games look imho kinda strange by default when viewed on modern displays, they benefit from e.g. adjusting gamma, sometimes you can also find footage from real hardware that indicates this is likely more accurate. Sometimes you can see this when you compare the ports, with Altered Beast and the Genesis / Megadrive this isn’t quite the case though (But then, most people would see it through composite by default…)

1 Like


Unless you can find that one setting that slices all scenarios equally through the middle.

An example of this is Capcom Arcade games. They look great with reduced Gamma. Then if you try those same settings on SNES or other consoles, they’ll look too dark. If you take a highly optimized SNES preset and use it for NES, it’s very likely going to look highly oversaturated.

So one size fits all might be possible but it will probably have to be less than optimal in many areas.

1 Like

Thanks @Jamirus @Cyber, very informative.


1 Like

You’re welcome. I noticed that you’re an LG OLED user like myself and I was wondering if you implemented any special considerations for their mask layouts as there are in CRT-Guest-Advanced and Sony Megatron Color Video Monitor?

They don’t display RGB triads properly compared to regular LED/LCD panel if not coaxed accordingly.

You can read more here:

Not really.

On 4k display, I think we should forget about subpixel masks and rely on the room we have to emulate phosphors and their surrounding instead, That’s the way i’m taking with the new ng/low level phosphor emulation thing.

Maybe I’m doing all wrong, who knows, but i was astonished by the look of this on 55’’ lg c1 with vivid mode, so i’m optimist!


Okay, it might still be some good background information/reading just in case you find these topics interesting.

Or maybe not? How do your macro/close up shots (photos not screenshots) look? Especially of white or grey emulated elements?

1 Like

Indeed I thank you for those links, I think I gave them speedy read time ago, but I will do it again deeply.

As for the shots, my pc isn’t hooked to that display, so it’s a bit problematic everytime.

But why you asks for them, i’m unable to see the submask with that 55’ even at 1meter, so i think it is not / cannot be an issue. What I can tell you is that I showed it live to an ignorant friend, same age of me, and it just said ‘wow’ woth a weird expression on his face lol. If you are used to oled, maybe you will not be that surprised, but you could give it a go, even by just loading the screenshot on your oled if not the whole preset (I may have changed a thing that screwed it today, not sure/have to check), and see by yourself if it is really something or just a matter of my initial impression.

1 Like

Well this would depend on what TVL CRT you are looking to represent as well as viewing distance and personal preference as going up close to the screen and seeing those triads can remind one of the nostalgic times.

It might also help from a technical perspective as well, some good examples of this are the comparison shots on the Sony Megatron Color Video Monitor thread (the first post has many) and some comparison shots with a real CRT posted on @RetroGames4K thread, which I also reposted on Reddit in the CRT Gaming subreddit and even the folks over there couldn’t pick the CRT from the CRT Shader.

I’ll give it a check sometime soon. Possibly later. I was looking forward to trying it on my broadwell IGP laptop whenever I get around to repairing it.


The other thing to keep in mind is the default color temperature in different regions. This is what I found from Google:

The color temperature of most home TV sets is considerably higher than 6,500K – commonly 7,100K in the United States and **9,300K** in Japan.

I find increasing the color temp on a lot of games helps get rid of the yellow cast that I don’t think we should be seeing


1 Like

Looking good - will play.

1 Like

Small tweaks to your settings posted above:

LUMINANCE = “0.300000” CONTRAST = “0.050000” TEMPERATURE = “7000.000000” GAMMA_OUT = “0.530000” SATURATION = “1.050000” DO_SHIFT_RGB = “1.000000” OFFSET_STRENGTH = “0.200000” IN_GLOW_H = “5.999996” PIXELGRID_Y_MASK_SHIFT = “0.230000” HALO_POWER = “0.500000” BEZEL_REFL_STRENGTH = “0.200000” DO_BG_IMAGE = “1.000000” DO_VIGNETTE = “1.000000”


Damn you, looking good!

I’ve had just pushed mine with modifications; more or less resambling yours (more colors, more gamma, vignette and so on), but it seems your settings are better.

I’ll turn the color slightly colder as you and activate decon.


Last tweak from me:

CONTRAST = “0.050000” TEMPERATURE = “7000.000000” GAMMA_OUT = “0.530000” SATURATION = “1.050000” DO_SHIFT_RGB = “1.000000” OFFSET_STRENGTH = “0.200000” IN_GLOW_H = “5.999996” TATE = “1.000000” PIXELGRID_INTR_FLICK_POWR = “0.150000” HALO_POWER = “0.680000” BEZEL_CON = “5.000020” BEZEL_REFL_STRENGTH = “0.200000” DO_BG_IMAGE = “1.000000” DO_VIGNETTE = “1.000000”

1 Like

Hi guys, what I’m seeing is amazing, thanks for the work you do, it’s not obvious.


Just added a new parameter in phosphor emulation section, named:
“Sparkling look punch”, it works by exagerating the look of the level 2 vertical mask and compensate that by a gain on the source color, the result is a pinchy image:



This looks good at 1080p, i’ve tuned it after the one I made for oleds, but can run fairly well at 1080p. This carries some slight brightness pushes here and there so that it can be used on displays with a decent black level.

The horizontal mask is doubled in width and follows game pixel size. To keep slotmask offset even/odd not to wide, i used a green/magenta mask, so just 2 phosphors which is capable of displaying RGB, maybe with an halved precision on red and blue channel, but it does not seem an issue.


With a bit of help of IA scaling, I made a new gba overlay, nothing fancy, quite light in size since it’s a jpg meant to go under the main content:

However, while playing with it trying to get a convincing nightify effect with added ambient light, the result was this:

…quite bad, because the nightify function operates on saturation too, and pushing ambient light back over it did not restore the lost colors; it wasn’t noticed in the old presets because basically iy operated on gray bezels and background images only; so i made a change to the nigtify function to take into account ambient lights and modulate its strenght according to it, this is an extreme case where nightify is at its maximum strength, still not perfect, but better:

The following are a more realistic use from GameboyAdvance-Overlay-Night.slangp

While this is without the night effect: GameboyAdvance-Overlay.slangp