On Sunday 19 January 2014 09:21:20 Richard Goedeken wrote:
> I see RA devs are making improvements to the codebase of the libretro port
> of M64+. However, are these changes being ported back into the original
> M64+? If not they really should. It would suck to see the two codebases
> diverge too much.
Unfortunately, we cannot actively search all the time to find possible forks
and sync it. So I wasn't aware of this fork/port for a long time.
This is how it is done in many other projects: Do your changes (even in a
quick and dirty way), clean your changes up, send them to upstream, discuss at
little bit (minimal work with Richard as maintainer) and get it merged. And at
the end everyone is happy (even third party people like mupen64plus-ae,
mupen64plus-pb, mupen64plus-...).
What usually ends bad for at least one of the involved parties: Fork it, do
some quick changes everywhere in the codebase, start to track your changes a
lot later, merge in some things which break it for other people - get some
other people to ask upstream to just drop their stuff and use the "superior"
fork from now on.
I was involved in getting such a problematic state resolved in mupen64plus-ae
in the past and luckily people like littleguy77 also started to fix these
things and send stuff upstream. But it looks more and more like that this in a
problem which happens again and again and again. Sorry, but you have to
understand that the extra thingy called libretro which just runs away alone in
a completely different direction without a sense of how to get everyone one in
the same boat (or at least in boats which wont break each other in the near
future) just gets me frustrated even more.
> I have a novel solution to this. What if the Libretro version was made the
> "main" version, and it was packaged with the RA frontend? It would gain:
>
> 1. A GUI
There are already GUIs/frontends for mupen64plus. The GUI stuff was removed
from the stuff maintained by Richard (now a library) to make it a lot easier
for ports to do their own stuff. Compare for example mupen64plus-ae with
m64py. Both are for completely different target platforms and still are doing
quite well
> 2. Superior synching, through Dynamic rate control
Can you tell us more about it? How is it integrated intro mupen64plus-core,
mupen64plus-video-* and mupen64plus-audio-*?
> 3. Netplay, although 2 player only
Can you tell us more about how they implemented it in the m64p core?
> 4. Shader support
Don't know what you mean here. The plugins are also using shaders. Your
comment sounds like "it has support to support something that is so widely
defined that it could mean that it supports anything"
> 5. The additional consoles that Libretro has been ported to
Are you sure that libretro has the magical powers to fix any architecture
problem just because it gets used? I doubt that.
And just doing a quick check in the source code already showed that the
porters are quite "good" in dropping stuff (instead of using the normal way of
disabling things during the builds) and doing quick hacks. Not sure if this
would please all people. Especially the removal of support for some savestate
types and similar things.
> And since everyone would be working on the same version, all the changes are
> kept in one codebase instead of having them diverge. The only thing is that
> the M64+ devs would have to learn the Libretro API, but I don't think it
> would be that hard.
It didn't seem like a lot of cooperation happened in the past together with
the libretro people. Did they actively tried to get to work with us and to
minimize the work for them and for us? I don't know why this would be changed
when we drop our stuff and start to use the libretro banner.
> For the end user, I don't think it would be a huge difference. They would
> run the .exe, and there would be all the options, like load game, etc. It
> would be packaged with only the M64+ libretro core. It would be easier than
> the current GUI-less arrangement. I can't tell you how many times I've seen
> people complain about the program and say "it does nothing" after double
> clicking it.
I can't say how many times I've seen people... wait, now we already start with
proofs based on anecdotes?
The mupen64plus-core is a library so it can be used quite easily in different
setups. There is an example/reference/... frontend called mupen64plus-ui-
console which gives basic access to everything necessary to get something
started. There are multiple frontend and launchers available which try to do
solve the problem of their specific platform.
Kind regards,
Sven