2011-05-14

Haze WIP - Political Roadblocks / Politics Over Progress (2011/05/12)

Political Roadblocks / Politics Over Progress

Mame 0.142u3 made big strides towards the MAME/MESS codebase merge, however, unsurprisingly the move has since hit political roadblocks, and the majority of the work I put into doing this for the release has once again been reverted.

It’s a shame that in this day and age there are people involved in the teams who have no interest in progress, no interest in advancing the project, but just want to block changes and prevent progress being made entirely for political reasons, and personal grudges.

At least one member of the ‘team’ (if you can still call it that) has stated, explicitly, that he’s opposed to the changes because they would allow me a way back into the project somehow. This isn’t even logical, the official team is meaningless, and there is no reason to be a part of it anymore anyway! The real MAME development is determined by who actually contributes, who actually writes the code and improves the emulator, which is something I’ve continued to do for years even with certain idiots holding grudges against me, acting like I only do anything for personal benefit.

So yes, once again.. Emupolitics, fun, it’s the bane of the scene, and as one other wise person, who has also stopped contributing due to similar political nonsense once said, a huge cancer on the MAME project.

I hold a little hope that common sense will prevail, and that everything will actually be moved to a single, public SVN, with single, public mailing least, and clear public plans, but it seems too many people involved want to hold on to some sense of elitism for that to happen.

If nothing changes then unfortunately the leadership changes will have been nothing but a false dawn, which leaves me at something of an impasse.

If I continue to contribute, I’m doing nothing but feeding a political machine, giving the ‘official’ team a false sense of value, if I don’t contribute, actual arcade games are at risk.

I’ve tried hard to get the project to be more open, for everybody’s benefit, I spent the majority of the time in charge of the project doing the very same thing, bringing source updates, news, progress, and the ability to contribute much closer to the average user, however it seems here my efforts are in vain. There simply will be no progress towards making things better for everybody as long as people on the teams wish to spite me, and go against things, not for any logical reason, but instead just because they were my ideas, or somehow reduce their own personal ‘status’ (meaning they would have to actually contribute to still be considered a part of the project rather than just being on a list)

I’ve tried to encourage people to contribute, the last 3 updates here point out ways in which the project could be improved, ways in which people can contribute directly, but again, I’ve got actual devs saying that they won’t work on the things listed because some of them are ‘skeleton’ drivers I’ve created, that I created them to steal all the fame, and all the glory, and that if they get left in their current non-working state it serves me right for creating them in the first place. Nonsense. Again, it just comes back to the same problem, once the driver is public, at all, it’s no longer ‘elite’ to work on it, they no longer have some kind of exclusive right to work on it because anybody could do it. Again, it’s just political nonsense, and a way to try and spite me and make me look bad for doing a good thing. Are these really people who should be involved in the project anyway, let alone making decisions on it’s direction?

The same people continue to make claims saying that I overstate my own contribution, that I don’t really do anything of note, yet I’m not even sure what more I could be doing to counter that argument? I’ve still involved heavily from day to day, from the smallest changes, to some of the biggest ones, working with huge parts of the codebase, picking up and updating long abandoned drivers, adding new things, getting people involved, and trying to get things moving forward again (albeit evidently failing at that part)

There are a lot of people who don’t contribute to the project because they see it as some kind of political machine, not what it should be, an emulator which emulates whatever it can. Unfortunately times like this simply highlight that they’re correct, for some it’s just a political power game to feed their own egos, regardless of what would actually be best for the project in the long run such as making it more open and making decisions more transparent.

Some food for thought there anyway. All I can say is, I’m sorry guys. I tried.

“Politics Over Progress”

Throughout my life people have told me I should be more selfish, stand up for what I believe in more, take direct action more. Maybe it’s time for that? Doesn’t really suit me tho.

The Alternative Solution

Rather than merge all of MESS into the MAME tree (which some oppose due to the structure), there is always the alternative solution, which would benefit both projects even more quickly.

Step 1.
Make the current public MESS SVN the *single* active SVN, giving developer accounts to any active developers who only currently have (private) MAME SVN accounts. (That would probably be aaron, luca, and.. not many others)

Step 2.
Move mailing list accounts over to the more public MESS lists. In the past this was a problem for MAME because a lot of private discussions took place (rare boards to try and buy etc.) but that’s all handled by the dumping union now, no reason to keep general discussion private. Transparency is good

Step 3.
Create an All.mak target (Micko already provided an example of this) which can be compiled to produce the all in one binary. Then people could choose to compile all.mak if working on stuff (to ensure they broke nothing in either project) or continue to compile the mame.mak and mess.mak targets for distribution. Choice, for everybody.

Step 4.
Continue as normal, but with a far more open project.

If any developers felt their egos couldn’t handle being part of a more public project with steps 1 / 2, they would just find themselves being booted off. You can’t really contribute to an inactive / dead SVN and inactive / dead mailing list.

*edit* I see at least one developer has posted a counter argument to this, manages to completely avoid the developmental benefits to doing this and would rather drag it out (when really it would just be a simple 1 day switch to get everybody working together) while at the same time is posting complete lies and trying to take credit for some of my porting work. Check the last HazeMD release, half the stuff he’s claiming credit for I did there.

The problem is some developers, now seem hellbent on proving that the source tree merging was a bad idea, with weak arguments such as not knowing where to look. If that solution has been completed there would be one place to look, because there would no longer be a mame/mess separation at all. Judging a solution from it’s partial implementation is the same as reviewing a game while it’s still in Alpha, of course there will be transitional issues. Likewise, an illusion that the projects need updating to some kind of standard before it happens. MAME and MESS are judged on functionality, there is already a mess of standards through the codebase come about through the rapid change and deprecating of standards done by Aaron during his time in charge.

Updating everything to one standard is never going to happen because there will be a new standard before it gets done. Updating everything to the standard of today doesn’t improve the emulation if done in a robotic sense because at the end of the day unless significant work is done, it’s just refactoring, so it makes sense that it’s just something which gets done over time in a shared project, not a sticking point for SVN merges unless you want things to simply never happen. What surprises me here is the dev involved has had this happen first hand, he updated half the video implementations in MAME to be devices (not that well IMHO, because he didn’t understand most of them, another reason that trying to batch update everything is bad, most of the Data East untangling I had to do was a result of this.) Anyway, when he was about half way through updating it, those devices were suddenly declared legacy, and would need updating again, and then again. It’s an endless process, which can never be completed and as a result, it makes no difference if working in a single source tree, or a combined one.

Furthermore, even in other areas, this kind of mechanical updating is bad for the project, just because something has been made more modern, doesn’t mean it’s been improved see comments such as the “segas24: Start untangling the Vogon poetry Atari Ace left is his wake. Apply the new timing implementation per cgfm’s analysis. Gain ground is going to be stuck in free play mode. [O. Galibert]“ left in a recent whatsnew. A change made originally as a result of this mass batch process attempt to update the code to some standard which ended up taking more time to untangle than if it had simply been left alone in the first place, much like the Data East stuff. It’s far better that one person spends time updating something they understand, over time, taking real advantage of the new core features where they would benefit rather than somebody batch updating everything just to meet a standard.

I’m not even bothered that that’s not the solution chose, it was just one possible solution towards the goal, one way to get things moving, one way to show that the projects were just the same, and collapse them into a single public SVN for the benefit of everybody. Action gets things moving, unfortunately my concern is now that it will just be back to ‘as you were’

Just last night another potential developer was agreeing with me, that without a public SVN it’s too hard to track the project, and therefore much harder to follow changes and look to make an active contribution. This repeats time and time again, developers are being thrown away over this. I’m trying my best to get people involved, but the projects are too stubborn to make the changes needed to support it. Right now I can only really contribute at all because I’m privileged enough to have access to the private MAME SVN. To me this isn’t fair, at all, I want to be on the same level as any member of the public, and for any member of the public to be on the same level, but as things stand that would make contribution near impossible.

Right now, all the public have are occasional batch syncs from MAME in the MESS tree. This leads to poor SVN logs, and poor SVN history, as the changes lose their context when they’re batch ported. It makes tracking down regressions harder as changes often consist of multiple updates from MAME, all things which having the teams work together in a single SVN would solve. Working together however, seems too much to ask.

There _have_ been extensive discussions on these things over the last year, if not 2, but ultimately they end up being blocked by egos and such, people desperate to hold on to that last bit of power that a public project could take away from them, people who aren’t passionate about the emulators in the way I am, but care only for what the emulator can do for them. Sad, isn’t it. It’s even more ironic that I’m being accused of refusing to take part in discussions on lists over it, when the very people making the accusations didn’t want me on the lists in the first place, one of the reasons for that being I didn’t simply agree with everything being said and done. If the lists were public, with open debate, so the public could see the reasoning (and how pathetic some of it is) it might make more sense. Locking everything up in private lists doesn’t. My attempts to discuss this in public (for public benefit, and public input) instead are continually censored which are why I’m having to post things here instead.

Maybe some people see this as controversial, the same way that me currently supporting somebody adding proper 3d rendering to MAME is seen as controversial. The problem is, right now, because of the lack of vision MAME is becoming a laughing stock. Who wants to work on an emulator where you’re not allowed to use 3d rendering? Why are all the best devs now working on their own emulators, as opposed to in the past, when all the best devs came to work on MAME?

If you look at other emulators, MAME and MESS are the only ones forcing such artificial limits on the coders. Demul does Dreamcast, Naomi, even the Cave SH3 games. Nebula (and other similar emulators) do NeoGeo, AES, NeoCD, CPS, CPSChanger. WinUAE does all the Amiga range, as well as Arcadia (haven’t checked to see if they’ve added Cubo32 recently). FreeDO will probably end up adding support for the coin mechanism to run obatack. Retrocopy runs both SMS and System E. FinalBurnAlpha has Megadrive support. SNES emus do SNES and Nintendo Super System. NES emus do NES and VSNes. The Acorn Archimedies emulators do the AA as well as the arcade games based off it (Erotictac, Poizone) There is good reason all these emulators are far superior to MAME / MESS for their systems, they have a better development philosophy and are more attractive prospects to work on. Basically this artificial divide is something of the stone age, and only exists in MAME.

Other developers, on other projects have seen that the only way to develop good support for systems is to simply not care, not create this artificial divide, and to support everything needed to have as many test cases as possible. With the current divided MAME/MESS structure you don’t even have this option, you have to compile two separate (yet 95% identical) projects and schizoflip between them for each and every change you want to test. This makes it *unattractive* to developers, and again, a laughing stock when they can code in their own emulators to a better standard without having to worry about silly political divides. Even the developers of some of the derivative MAME builds have seen that it’s a bit of a joke, and merged in various parts of MESS.

Let’s quote another mail I just got just today. “One common SVN that the ‘normal’ people can actually follow would probably make matters easier.”

MAME and MESS need to stop being *unattractive* if there is to be real progress. There are multiple parts to this. Being more open, encouraging contributions, not applying artificial walls to development are just a few. I can do my part, but other people need to start doing theirs, pull a few strings, and flick a few switches if all of this isn’t to be for nothing.












News Source: Here

8 Comments:

  1. Haze throwing a hissy fit, part N.

    ReplyDelete
  2. I've no idea what any of this is about, but if "3d rendering" means 3D acceleration using graphics cards, he's got my vote!

    ReplyDelete
  3. I would support hardware acceleration if that if you had the option to turn it off and if adding this in did not slow down emulation when the option is bypassed. Watching EPSXE pure software looks better but really only my desktop can do that and we are talking a 5th gen home console not even more modern arcade systems that MAME is starting to tackle. I wish we all could be friends I love MAME and all you have done and hate all barriers to progress. At least in the world of emulation its rarely about who is getting how much money. The number one reason technology advances at a crawl.

    ReplyDelete
  4. too long to read what is point

    ReplyDelete
  5. I totally agree to Haze.

    ReplyDelete
  6. mame is dog slow in modern games, because the developers dont want to use 3d rendering(your graphic card) so all the games that require heavy 3d will run like shit, that or wait 20-25 years to play 2000 games so pcs are powerful enough so they dont needs the graphic card to work

    ReplyDelete
  7. #8 is right , integrate 3d acceleration and rendering making effective use of modern gfx cards , and stop work on useless old games and get masterpieces like

    Deathsmiles
    Mushihimesama
    Soul Blade
    Tekken Tag
    ... make them work , and good speed. todays pcs are more than enough

    ...if not most of mame devs are lame and useless...

    ReplyDelete

Can't post a comment? Try This!