mamedev / mame

MAME
https://www.mamedev.org/
Other
8.25k stars 2.02k forks source link

[Request] Include 6xbrz filter for BGFX backend. #3920

Open LuismaSP89 opened 6 years ago

LuismaSP89 commented 6 years ago

Since the BGFX is the most updated and faster backend of MAME, I think it needs to update the xbr filters on it.

After MAME 0.192, the existing custom shaders for MAME stopped working, because a change in the BFGX backend. But I think is time to include it by default in the MAME builds.

Here´s a comparison between the xbr 3lvl included in MAME and a custom 6xbrz shader, you can see a huge difference in the letters, numbers, and all the edges:

xbrz lvl3: xbr lv3

6brxz: 6xbrz

stilett0 commented 6 years ago

xBRZ is GPLv3 and will therefore likely never be included with the project.

For more info on this matter, see here: http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=360520

What needs to happen is that someone rebuild the xBRZ shaders for BGFX and package them external to the MAME project.

MooglyGuy commented 6 years ago

That doesn't mean that we can't ask them to grant the MAME team use of the shaders under a different license, @stilett0. I'll do exactly that this weekend, I figure the author is probably a reasonable enough person.

That's ultimately what will be necessary, because there are only so many ways to implement the algorithm, and any reasonable implementation would be a largely mechanical conversion of the existing shaders, which would not be a distinct enough work for me to claim license.

stilett0 commented 6 years ago

okay, yeah, that would work too. :)

LuismaSP89 commented 6 years ago

@stilett0 I know that thread, (In fact, I´m the same LuismaSP89 that commented on it some time ago xD.

Btw, I talked a few times with Zenju about the possibility to export his xbrz plugin to MAME, and he´s totally agree, but he doesn´t have the time to do it, and he loves to see his plugin exported to other emulators (SCVUMM, SNES9x,etc) like you can see here: "https://sourceforge.net/p/xbrz/forums/general/thread/018b594a/" or here "https://sourceforge.net/p/xbrz/forums/general/thread/15c6c60c/"

So, the GPLv3 doesn´t matter here, if someone of the MAME devs are able to implement the xbrz into MAME, I´m totally sure that Zenju agrees.

MooglyGuy commented 6 years ago

All the same, we'd need the actual relicensing in writing from Zenju before it could be committed to MAME's repository. I'll try to find time to look into porting it over this weekend so that there's something to relicense.

ghost commented 6 years ago

Robbert is shipping the GLSL versions of shaders with ARCADE afaik, so presumably he's worked out an agreement with the Author. They should be safe to import from ARCADE.

The 6xBRZ.vsh file in ARCADE carries a GPLv2 header

so either an agreement was found, or he's going behind peoples backs? Assuming the license is correct, it should be 100% legal to port that to BGFX / HLSL. http://arcade.mameworld.info/arcade201_64bit.7z see glsl folder

LuismaSP89 commented 6 years ago

@DavidHaywood

The same thing as here in the official forum of Zenju´s Xbrz in .vsh format: https://sourceforge.net/p/xbrz/forums/general/thread/5825b2aa/

Or here, in .json format for BGFX (Working before MAME 0.193): http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=355102&page=0&view=expanded&sb=5&o=&vc=1

As you can see in my previous post Zenju is a reasonable person, he only wants to have his work recognized and if you use his xbrz at least have a mention to him, which is totally normal. Not in vain xbrz is used in a lot of emulators (PPSSPP, Snes9x, Punes, GlideN64 for N64 emulators, SCVMM, Kega fusion, Pete´s opengl2 tweak for epsxe, or pcsx, DOSBOX, etc)

rb6502 commented 6 years ago

GPLv3 GLSL shaders can be included with MAME because they're purely external data files. The fact that BGFX has to translate and compile shaders for its various backends is what's causing the issue here.

LuismaSP89 commented 5 years ago

Info: New Xbrz version 1.7 released last month

changelog:

Fixed asymmetric color distance New parameter: "Center direction bias"