libretro / gambatte-libretro

Hard fork of Gambatte to the libretro API.
http://sourceforge.net/projects/gambatte/
GNU General Public License v2.0
104 stars 78 forks source link

Add optional LCD ghosting effect #148

Closed jdgleaver closed 4 years ago

jdgleaver commented 4 years ago

This PR backports the LCD ghosting effects that were recently added to mGBA: https://github.com/libretro/mgba/pull/175, https://github.com/libretro/mgba/pull/176

It replaces the existing Mix Frames core option with Interframe Blending. The old Accurate and Fast frame mixing settings have been renamed to Simple (Accurate) and Simple (Fast) - these perform the same 50:50 mix of the current and previous frames as before, required to achieve correct rendering of games that rely on LCD ghosting for transparency effects.

In addition to these settings, there are now LCD Ghosting (Accurate) and LCD Ghosting (Fast) options. The former recreates the LCD response effect of RetroArch's Gameboy Shader. The latter is similar, but uses a single accumulation buffer - which is more efficient, but lacks the subtlety of the shader implementation.

Here are some stats showing the typical increase in performance overheads when using the various methods: