For Game Boy shaders to work correctly, you need to set the aspect ratio in retroarch to match your screen. 16:9 for example, if you use a 16:9 display.
Furthermore, you need to make sure you have configured the core to disable any and all color correction or LCD emulation settings. You need to configure the core to output a raw image. The shader will apply its own color correction and LCD emulation, so if you also have those options enabled in the core, those effects will be applied twice, resulting in wrong color, wrong brightness and wrong LCD ghosting emulation.
The best way to handle the aspect ratio setting is to create a retroarch config override for the core.
For example if you use the SameBoy core, then first start a game, then go to Settings->Video->Scaling->Aspect Ratio and set it to 16:9 (or whatever your display is.) Then go back to the “Quick Menu”, select “Overrides” and then choose “Save Core Overrides”. This will create an override for just that core that forced aspect ratio to 16:9.
This override file will be saved in the core’s config folder. For SameBoy, the file is:
You can edit it with a text editor like Notepad if you want to remove settings from it that you don’t want to get overriden or you can also add more by hand (if you know the name of the setting.)
For example, my
SameBoy.cfg file looks like this:
aspect_ratio_index = "1"
input_overlay_enable = "false"
run_ahead_enabled = "true"
run_ahead_frames = "1"
run_ahead_secondary_instance = "true"
video_shader_enable = "true"
This forces 16:9, disables overlays (since I use a GB border shader instead of overlays to get borders), enabled run-ahead with 1 frame and second instance, and also enables shaders.
This is just an example. You can handle your override files however you want.
If you don’t want the overrides at all anymore, you can delete that file.
One thing to note about
.cfg overrides is that the settings in them can get deleted by retroarch whenever you select “Save Core Overrides” in retroarch. It’s a good idea to either backup your
.cfg override files or make then read-only.