mgba-emu / mgba

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

[Feature Request] xBRZ filter #1640

Open xZabuzax opened 4 years ago

xZabuzax commented 4 years ago

This emulator would benefit from the xBRZ filter, it does have a similar filter though but is in the form of "Shaders" and it looks way uglier/worse than the xBRZ filter that VisualBoyAdvance-M use, this emulator needs that filter implemented directly into the emulator, that will "hopefully" make it look prettier or close to the one that VisualBoyAdvance-M uses.

In VisualBoyAdvance-M the xBRZ filter makes the game look crisp and clean, in mGBA though the xBR shader makes the game look... weird... it doesn't look crisp or clean at all.

endrift commented 4 years ago

Unless @zenju decides to relicense xBRZ as something like LGPL instead of GPL I don't see this happening. Moreover it's a C++ filter, as opposed to GLSL, which makes it doubly hard to integrate. Libretro has a GLSL version but it appears to be misattributed to DeSmuME instead of zenju.

xZabuzax commented 4 years ago

Oh I see, that indeed make things complicated. Hopefully Zenju does something about it because that's a nice filter and this emulator would definitely benefit from it.

Jules-A commented 4 years ago

Hmm... I'm actually more interested in xBRZ Freescale as it looks better imo when integer scaling isn't in play. They are implementing it into Citra in this PR but they still don't credit Zenju and instead just add their copyright info stuff on top of the Desmume and Hyllian's xBR licensing.

Currently I don't even bother with mGBA's native app since the filters are pretty garbage compared to xBRz on RetroArch (mGBA is now the only core I use it for...) so it would be awesome if it could be implemented.

endrift commented 4 years ago

Citra is already GPL so they don't have to worry about the license compatibility, but the misattribution should probably be addressed.

I may be able to figure out a way to download shaders after the fact, or pull them in at build time, which would avoid the licensing issues since most of the distributed builds of mGBA are already GPL as a result of linking with ffmpeg.

widget- commented 1 year ago

Algorithms can't be copyrighted because they're effectively just math. Code can be copyrighted though, and Hyllian's version is a bit weird.

It looks like it's mostly a reimplementation, but it also mentions that some of the code is from Zenju's version. Hyllian (I think?) put an MIT license header on the top, but the whole codebase has to be considered GPLv3 if it includes any of Zenju's GPLv3 code. A possible solution is to go and split apart the MIT code from the GPLv3 code and then reimplement the GPLv3 parts from scratch (and it would be best to have the person splitting the code by license to be different from the person reimplementing the missing code.)

I'm looking at the Retroarch version. Maybe there's other versions that are different.

endrift commented 1 year ago

If that can be reasonably accomplished I have no objections to integrating that.