mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.75k stars 795 forks source link

[feature request] Screen Filters like Nintendo Switch Online GBA Emulator #2834

Closed rrrcabral closed 2 months ago

rrrcabral commented 1 year ago

nintendo recently added Gameboy Advance to Switch Online, and their emulator screen filter is absolutely BEAUTIFUL! really feels like original hardware, pixels no longer appear square and jagged. is there a possibility to extract this and add in the MGBA something just as good?

MxSelfDestruct commented 1 year ago

mGBA includes several shaders, which can be enabled under Tools -> Settings -> Shaders. On Linux, the shader files are located in /usr/share/mgba.

endrift commented 1 year ago

It cannot be extracted, but it might be able to be reproduced. However, I don't have NSO+ so I can't even eyeball it directly like I did when writing the AGB-001 and AGS-001 shades.

rrrcabral commented 1 year ago

this talks out the shader: https://www.polygon.com/guides/23593050/game-boy-advance-nintendo-switch-online-filter-classic-feel

here is a screenshot that i've made from 'WarioWare, Inc.: Mega Microgames': https://www.imagebam.com/view/MEJQ3MY

rrrcabral commented 1 year ago

the Ares emulator(emulator of Wonderswan and NeoGeoPocket) also has a beautiful shader called "phosphorish" that looks like a real screen too

profi200 commented 1 year ago

The filters which reproduce the AGB-001 colors the closest are these: https://forums.libretro.com/t/real-gba-and-ds-phat-colors/1540/220 Specifically the "gba-color" shader. Comparison i made a few weeks ago (no color correction vs. gba-color).

The ones Nintendos GBA emu uses on Switch are a trade off between reproducing the colors and saturation if i understand right. So they are by no means accurate. Pokefan531 is trying to reproduce these filters anyway but the current implementation is not completely right yet according to his posts.

endrift commented 2 months ago

I've ported pokefan531's shader over