Koko-aio shader discussions and updates

It appears like the core is telling the shader to use a wrong aspect ratio, that’s why i suggested you to set aspect full and not core provided.

it’s under video/scaling.

1 Like

what about the development code?

I think you’re right, I’ll do the tests later and let you know. Thank you :wink:

1 Like

Perfect, no problems.

1 Like

Weird, time for a new release I guess.

1 Like

Great, thanks for your help. I have a small request, are you planning any preset for Gameboy Color? The ones available for Gameboy Classic and Game Gear are great.

Just tried Aspect Ratio “Full Screen” and it doesn’t work. In the Batocera setting I always set “Core Provided” and it works fine. I do not know what to think

Not really, as I never owned one, so I don t know how they look.

Do the generic handhelds rgb presets look bad for gbc?

You can still force an aspect of 3:4 in the shader and save the preset as override for the game.

1 Like

Generic presets are ok, but the best ones are those that have an overlay with the console and shed light on it (for example, GameGear-Overlay-Night.slangp).

edit: I have one more question (last one, I promise). What do you think about combining presets with video filters (those from retroarch). For example tv_pal_my_old from BLARG NTSC SNES Custom Pseud MD Composite ? From what I know, the mega bezel probably has such mixes.

The question was more like: do you think a preset like generic-handhelds-rgb or the dots one fits gbc display? which one better?

As per the video filters, I don’t think a shader nor a preset has a way to trigger cpu video filters, but I never explored the possibility.

However ypu are free tp use koko-aio features but the NTSC ones and use cpu/core filters for that.

Yes, that’s actually how I do it. But I couldn’t explain why on Batocera it works normally

Unfortunately, I’ve never held a Gameboy Color in my hand :slight_smile: I have zero knowledge about this console.

This is what tv_pal_my_old preset with the ntsc filter looks like. You can get really interesting results, e.g. by emulating Sega Mega Drive.

2 Likes

I’ve just pushed an initial implementation of autocrop feature. I tried hard to make it as light as possible, and finally I decided to make it run via small steps spreaded over frames.

To better explain you how it works, here’s a little video:
https://mega.nz/file/gOkgWQhZ#6-ODLxxMP52PCTN8D3y5eW06ausJvJi2NU3RTBl5oVc

So, there are new parameters:

Autocrop maximum amount:
    The higher, the more solid borders wil be cropped around the image.

Samples per frame:
    Higher values makes the shader search more in a single frame for solid areas.
    This leads to more accurate result in less time, however it will also stress the gpu more.
    Fortunately even low/lighter values like 10 will work good if you're ok
    in waiting 2..3 seconds for the final crop value to be found.
    
Scene change treshold
    When autocrop finds a maximum crop value, it only tries to crop more when the scene changes.
    By lowering this value, you tell the shader to try higher the crop more often.
    
Transition speed
    This modulates the smoothness of the animation between various crop values.

The good news is that even for low values like 10, in a matter of 2…3 seconds it is able to reach almost full precision.

Also, if you plan to use it with games that have well defined solid areas (C64, Amiga), even 1…2 samples per frame are enough.

With default values of 20% autocrop and 10 steps per frame, the performance hit is about 4fps/100 on my Haswell, while the basal hit is about 1fps/110.

Caveats:

  • For performance reasons the function that decides if fake integer scanlines are needed does not take autocrop into account.
  • As soon as autocrop is activated, you’ve to wait for a scene change to see it in action.

Also, a big thanks to fishku from Discord for hints on low discrepancy sequences

There may be bugs and the need to test how parameters interacts each other to find good defaults.

Just pushed some good default (to me), but your mileage may vary and I’ve not tried many games so please, report!

@salty101

6 Likes

2 Likes

I tried to copy megatron in koko😅 and experimente with hdr in retroarch. The deck has a peak brightness of 1000nits. I made a short video here, it looks really close like this in person.

Video in full resolution

https://www.mediafire.com/file/djqzqsceuj4w677/VideoPro_20240414_231033.mp4/file?dkey=42yyl985vqv&r=735

But it seems that I can’t take screenshots in retroarch with hdr enabled

3 Likes

A preset for Game Boy Color would be great ;.)

Already requested, but I’ve still no clue how the display is supposed to look.

I don’t know if this will help, but I found this:

At last, here are Gameboy Color presets.

@Elessar84, @Noromu

Screen has rgb layout, low contrast with big vignette and spots to simulate world light over a passive display and high basal grid level.
No colorization applied, it relies on the default one done by Gambatte core.


Base one is: GameboyColor.slangp

Overlay variants, closeup and taller:

GameboyColor-Overlay.slangp

GameboyColor-Overlay-Taller.slangp

Last, the ones that emulate a IPS modded GBC, so with backlit/brighter colorful display.
There, ambient lights are meant to be inside the transulcent case; closeup and taller versions:

GameboyColor-Overlay-IPS.slangp

GameboyColor-Overlay-Taller-IPS.slangp

13 Likes