Koko-aio shader discussions and updates

I am ignorant on the technical side of the matter, I base myself on what I see with my own eyes. That’s why I mention your PGRID3 because I really like what I see, at least on smartphones, of course I should just be able to experiment on a PC with a 1080p screen. I speak for my taste, the “dot” effect I love it, and even using methods such as FXAA leaves the image slightly “pixelated” giving the right balance between the past and the present. Certainly it is a matter of memories (altered by time), where one comes from (due to the technical differences of the CRTs and connections from region to region) and pure personal taste. However your packages include more and more options that should please everyone. PS thanks for the advice, but I’m sure that if you make changes they will only improve. You are now a certainty.

1 Like

Is this in the repo?

@ROBMARK85 pgrid3 presets are the ones where every rgb phosphors triad matches the size of the source pixel, so they are bigger. I suppose they work good on small screens if you like to see the pixels one by one (i do). One downside of those presets is that the resulting resolution depends on the content, so you will have giant pixels when trying to emulate an handheld, and tiny ones when you emulate something like gamecube, dreamcast and so on.

@oldpainless: not yet, you may need to adjust the reference path and tweak it, is it a quick draft:

slotmask wip preset green magenta mask
 #reference "../koko-aio-ng.slangp"

shaders = "17"

DO_CCORRECTION = "1.000000"
GAMMA_OUT = "0.500000"
OFFSET_STRENGTH = "0.500000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.999999"
IN_GLOW_GAMMA = "2.000000"
IN_GLOW_W = "3.500000"
IN_GLOW_H = "7.000000"
DO_PIXELGRID = "1.000000"
PIXELGRID_MIN_W = "0.300000"
PIXELGRID_MAX_W = "0.400000"
PIXELGRID_H_PRST = "1.000000"
PIXELGRID_MIN_H = "0.300000"
PIXELGRID_MAX_H = "0.800000"
PIXELGRID_INTR_FLICK_POWR = "0.250000"
PIXELGRID_Y_MASK = "1.000000"
PIXELGRID_Y_MASK_COORDS = "0.000000"
PIXELGRID_Y_MASK_HEIGHT = "-2.000000"
PIXELGRID_Y_MASK_ON_WHITE = "0.250000"
PIXELGRID_Y_MASK_SHIFT = "0.230000"
PIXELGRID_Y_MASK_STEEP = "16.000000"
DO_HALO = "1.000000"
HALO_POWER = "0.400000"
HALO_W = "3.500000"
HALO_H = "3.500000"
HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.300000"
BLOOM_MIX = "0.150000"
BLOOM_SIZE = "3.500000"
BLOOM_QUALITY = "2.000000"
BLOOM_GAMMA = "10.000000"
BLOOM_GAMMA_OUT = "10.000000"
BLOOM_POWER = "10.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"
ALT_BLANK_STRENGTH = "0.000000"
2 Likes

Contast/sat/colour aside for the mo, you can see the artifacts here with 1080p out.

Probably something went bad when copying pasting the preset, as i didn’t see any. I’ll make another one soon.

Have you used the latest code?

–EDIT–

My bad, i forgot to push the commit with support for the new parameter, done just now.

–edit–

i can spot a bit of moiree when the neogeo logo fades from white to black

3 Likes

Will d/l again and have a play.

slotmask wip preset with moiree mitigations
 #reference "../koko-aio-ng.slangp"

shaders = "17"

DO_CCORRECTION = "1.000000"
GAMMA_OUT = "0.500000"
OFFSET_STRENGTH = "0.500000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.999999"
IN_GLOW_GAMMA = "2.000000"
IN_GLOW_W = "3.500000"
IN_GLOW_H = "7.000000"
DO_PIXELGRID = "1.000000"
PIXELGRID_MIN_W = "0.300000"
PIXELGRID_MAX_W = "0.400000"
PIXELGRID_H_PRST = "1.000000"
PIXELGRID_MIN_H = "0.300000"
PIXELGRID_MAX_H = "0.800000"
PIXELGRID_INTR_FLICK_POWR = "0.250000"
PIXELGRID_Y_MASK = "1.000000"
PIXELGRID_Y_MASK_COORDS = "0.000000"
PIXELGRID_Y_MASK_HEIGHT = "-2.000000"
PIXELGRID_Y_MASK_ON_WHITE = "0.350000"
PIXELGRID_Y_MASK_SHIFT = "0.230000"
PIXELGRID_Y_MASK_STEEP = "16.000000"
DO_HALO = "1.000000"
HALO_POWER = "0.400000"
HALO_W = "3.500000"
HALO_H = "3.500000"
HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.300000"
BLOOM_MIX = "0.150000"
BLOOM_SIZE = "3.500000"
BLOOM_QUALITY = "2.000000"
BLOOM_GAMMA = "10.000000"
BLOOM_GAMMA_OUT = "10.000000"
BLOOM_POWER = "10.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"
ALT_BLANK_STRENGTH = "0.000000"
2 Likes

2 Likes

It’s all personal taste. It’s a good looking shader. For me, when I really zoom in, it’s like I’m seeing too much phosphor bleed (even with decon off), which at normal viewing it looks like pixel misalignment.

Not sure if that helps or not.

Thanks.

It is not supposed to be accurate by any means,so it is supposed to be even less accurate when zoomed in. What I like about it is that “pinch/sparkly” look i see on real crts; misalignment is a consequence of the slotmask shift, i think.

1 Like

The previous one used a gm mask; switching to a full rgb one required several modifications and the look changed a lot.
The following also carries halo, bloom, bells and whistles; you can quickly modulate the bleeding by changing the glow power (input signal strength, eg: from 2.0 to 1.4)

slotmask wip preset rgb mask, halo bloom
shaders = "17"
#reference "../koko-aio-ng.slangp"

DO_CCORRECTION = "1.000000"
GAMMA_OUT = "0.500000"
OFFSET_STRENGTH = "0.200000"
DO_IN_GLOW = "1.000000"
IN_GLOW_POWER = "1.799999"
IN_GLOW_GAMMA = "2.000000"
IN_GLOW_SPREAD = "0.000000"
IN_GLOW_W = "0.000000"
IN_GLOW_H = "0.000000"
IN_GLOW_BIAS = "0.000000"
DO_PIXELGRID = "1.000000"
PIXELGRID_MIN_W = "0.100000"
PIXELGRID_MAX_W = "0.860000"
PIXELGRID_H_PRST = "5.000000"
PIXELGRID_MIN_H = "0.300000"
PIXELGRID_MAX_H = "0.800000"
PIXELGRID_Y_MASK = "1.000000"
PIXELGRID_Y_MASK_COORDS = "0.000000"
PIXELGRID_Y_MASK_HEIGHT = "-2.000000"
PIXELGRID_Y_MASK_ON_WHITE = "1.000000"
PIXELGRID_Y_MASK_SHIFT = "0.120000"
PIXELGRID_Y_MASK_STEEP = "8.000000"
DO_HALO = "1.000000"
HALO_POWER = "0.350000"
HALO_W = "3.500000"
HALO_H = "3.500000"
HALO_GAMMA = "1.000000"
HALO_VS_SCAN = "0.350000"
DO_BLOOM = "1.000000"
BLOOM_MIX = "0.250000"
BLOOM_QUALITY = "2.000000"
BLOOM_GAMMA = "1.000000"
BLOOM_GAMMA_OUT = "6.999994"
BLOOM_POWER = "4.999981"
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"
ALT_BLANK_STRENGTH = "0.000000"

3 Likes

Looking good. Perhaps others could try it and report back?

I thought the only way to get a consistent effect with the PGRID is to find standard levels to use based on the resolutions where you run the content, for example a PGRID slotmask or aperture grill tuned for 1080p, or 2K or 4K , trying to keep more or less a narrow dot grid. I actually noticed what you wrote when trying to run GameBoy Advance games. Already the grid using the arcade games (I played Marvel Super Heroes arcade version this weekend) was even more beautiful and pleasant. If you could find a way to play that grid across all content it would probably be the perfect answer to emulating all the old consoles. I’m fantasizing.

1 Like

Thanks, Maybe i’ve also understood what is the misalignment and the bleeding you were speaking about?:

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

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

shaders = "17"

DO_CCORRECTION = "1.000000"
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.300000"
PIXELGRID_MAX_W = "0.400000"
PIXELGRID_H_PRST = "1.000000"
PIXELGRID_MIN_H = "0.300000"
PIXELGRID_MAX_H = "0.700000"
PIXELGRID_Y_MASK = "1.000000"
PIXELGRID_Y_MASK_COORDS = "0.000000"
PIXELGRID_Y_MASK_HEIGHT = "-2.000000"
PIXELGRID_Y_MASK_ON_WHITE = "0.650000"
PIXELGRID_Y_MASK_SHIFT = "0.230000"
PIXELGRID_Y_MASK_STEEP = "16.000000"
DO_HALO = "1.000000"
HALO_POWER = "0.400000"
HALO_W = "3.500000"
HALO_H = "3.500000"
HALO_GAMMA = "1.300000"
HALO_VS_SCAN = "0.150000"
DO_BLOOM = "1.000000"
BLOOM_MIX = "0.150000"
BLOOM_SIZE = "3.500000"
BLOOM_QUALITY = "2.000000"
BLOOM_GAMMA = "10.000000"
BLOOM_GAMMA_OUT = "10.000000"
BLOOM_POWER = "10.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"
ALT_BLANK_STRENGTH = "0.000000"

Old:
image

New, mitigated:
image

6 Likes

Wow. Looks fantastic! I really love it!

3 Likes

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.

2 Likes

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.

Brighter.

**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"
PIXELGRID_Y_MASK_COORDS = "0.000000"
PIXELGRID_Y_MASK_HEIGHT = "-2.000000"
PIXELGRID_Y_MASK_ON_WHITE = "0.100000"
PIXELGRID_Y_MASK_SHIFT = "0.230000"
PIXELGRID_Y_MASK_STEEP = "16.000000"
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"
ALT_BLANK_STRENGTH = "0.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?

5 Likes

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

This.

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.

(Darn.)

1 Like