Hacker News new | past | comments | ask | show | jobs | submit login
MAME is going completely open-source to be a 'learning tool for developers' (gamasutra.com)
193 points by Impossible on May 15, 2015 | hide | past | favorite | 65 comments



How does this work for people who contributed code under one license (thinking it would stay that way) and don't want their contributions released under another license? In practice, I doubt they'll run in to any issues, but what if they wanted to release all the code under a more commercially permissive license and contributors had a problem with that?

Does MAME own all contributions? Could they change the license to require license fees? If not, why can they change the license after the fact?


Answering to "why can they change the license after the fact?" , I think the answer is something close to "Licenses can be changed after the fact, provided the owners/maintainers get permission from each contributor, or rewrite the problematic parts".

VLC went through a similar transition (from GPL to LGPL); jbkempf's blogposts about this experience may be of interest to you:

- http://www.jbkempf.com/blog/post/2012/How-to-properly-relice...

- http://www.jbkempf.com/blog/post/2012/How-to-properly-relice...

- http://www.jbkempf.com/blog/post/2012/How-to-properly-relice...


I don't know what they are doing for people who are no longer reachable online (deaths, disappearances, etc); but in my case, they reached out to me and asked for (and received) my permission.


Others below mentioned that they are getting permission from their contributors. I guess they checked beforehand how the bulk of them feels to make sure there is not to much they have to rip out and replace if someone objects.


A project I contributed to recently switched from GPLv3 to MPL. In order to do so they hunted down every single contributor and got their permission.


Wow, Gamasutra really has no understanding of Free and Open Source Software concepts. That is really not a good place to announce this kind of things. When you read "going completely open source" and see what it actually means, there's only one appropriate reaction: faceplam.


I have tried and tried to get people to acknowledge that "Free Software" and "Open Source" are very different things from "free software" and "open source". Those capitals make all the difference, and I really wish the FSF and OSI would use less ambiguous words.

Tell any lay person on the street that MAME wasn't free software, and they'd ask you how much it cost. Tell them it wasn't open source, and they'd assume it meant the source wasn't available (if they even knew what source code was.)

But it just devolves into endless arguing over semantics. The ideology gets to be so strong that it's almost like religious dogma. And that's really not helping anyone.

Simply stating that MAME was non-commercial would be understood by everyone, and from there you'd be in a perfect position to then explain to people why you felt that all software should be allowed to be sold by anyone for profit. Distro CDs shipping with it, game museums having MAME cabinets set up, etc. Playing word semantics is just going to annoy people not already steeped in the FOSS world.

(for what it's worth, I also agreed to relicense my code that's inside MAME to GPLv2 for this new effort, so please don't consider me an enemy of GPL or anything.)


Why hasn't "Free as in Freedom" Software been shortened to just Freedom Software? Or Liberal or Liberty Software? This seems like a simple problem to solve honestly.

Given that this issue is still happening after decades... I think it deserves to be addressed.


That's a great question. I've always been partial to "FSF certified" and "OSI certified". Put it right on the organizations that promote the definitions. And it gets those groups extra exposure when people look the terms up. Bonus: we could then pretend FOSS stands for "FSF/OSI Sanctioned Software".

They could even get trademarks on those terms, unlike the failed attempt to trademark "open source".

> I think it deserves to be addressed.

We've gotta get people to budge on this, and see things from the other side. Find a way to do that and I think you could achieve world peace =)


Hah world peace.

I'm curious to why people thought I deserved downvoting. I think it's a reasonable question. When ever I hear "Free Software" said to the layman, it's ALWAYS followed up by "free as in freedom." Then they describe what that "freedom" means to them.

It'd be easier to have just one step of clarification than multiple.


"Libre software" attempted to bring the distinction to the English term without using English, so English speakers never really used it.

It's the L in FLOSS.


I don't understand why they thought it was a good idea to resort to a foreign word to describe freedom. It might make sense in America but not the rest of the English speaking world. I think freedom & liberty are immediately comprehensible in the context of software.


I agree, it was just as obtuse as "free" when other words would have conveyed their intent better.


Gamasutra targets game developers. And there are not many of them that would like to use license that would force them to release their source code. Such licenses (as GPL for example) may be used only for internal tools, and even then it may be a problem (GPL3). For example if you need to work with third-party outsourcing company that would hire people to do extra art for your project, and you need to give them the custom tools, if the latter are using GPL, then who knows what the third-party artists might request.

if MAME is released under MIT/BSD then it can be freely put in consoles, gameboy, psp, etc.


>and you need to give them the custom tools, if the latter are using GPL, then who knows what the third-party artists might request.

At most, source code to those custom tools which contain GPL licensed code.

>if MAME is released under MIT/BSD then it can be freely put in consoles, gameboy, psp, etc.

MAME (as a project) is now to be released under GPLv2 unless I'm missing something, but there is also a lot of BSD licensed code in MAME which can be used in proprietary projects.

That said I don't think the MAME code is of particular interest to game developers, as it's basically cpu and video/sound chip emulation coupled with drivers.


> "MAME's source code has long been freely available, but it's never technically been open source. Instead it's been available under a modified BSID license that prohibits, among other things, commercial use of the code."

Sounds to me that it has long been open source, but not Free software.


"source available" and "open source" are not the same thing; it was neither open source nor free software, the definitions of both of which explicitly disallow restrictions on commercial use.

And if you're suggesting that there's another meaning of "open source": that ship sailed a long time ago, and attempting to use that term for any other purpose can only lead to confusion.


> "source available" and "open source" are not the same thing

To be fair "open source" is a bastard wording in the first place. It was created by people who did not understand the Free Software movement and did not want to relate to RMS. The only true legal term is Free Software, Open Source is close to meaningless without a license attached to the term.


That's a little over the top. While it's true that Open Source was effectively company-friendly branding and marketing for Free Software (and rather effective at that), it still refers to the same software (modulo very nitpicky differences in definition), and Open Source has a clear definition.


As I recall this was to prevent the use of MAME in commercial arcade settings, beyond this MAME has a policy where they will only emulate arcade games which haven't had commercial circulation for a number of years.

Same goes for the sister project MESS (which has now merged with MAME) that is targeting consoles and computers.


> beyond this MAME has a policy where they will only emulate arcade games which haven't had commercial circulation for a number of years.

I wonder how strict they are on that aspect of things, because in Japan you still have a number of arcades with games from the 80s and 90s. Isnt that considered commercial circulation ?

Note that such games actually run on some kind of emulators, too. No idea what they use, but they clearly do not use the original hardware anymore.


>I wonder how strict they are on that aspect of things, because in Japan you still have a number of arcades with games from the 80s and 90s. Isnt that considered commercial circulation ?

By that logic you wouldn't be able to emulate anything, since there are certainly places where old machines are active (as in, coin-operated).

I think the policy regarding emulation is something like 2-3 years after manufacturing of said arcade machines have ceased, but I think that is also on a case-by-case basis, as in sometimes they wait quite a bit longer, shoot'em ups from Cave comes to mind.


Yeah, a bit strange wording, but also the language the project uses, because their license wasn't recognized as open source by the Open Source Initiative.


Excellent news. I might buy an arcade machine to put MAME on it then. Friend of mine had two imported from Japan but unfortunately sold them while I wasn't around. It's a ton of fun to play games with actual arcade controls and the good nostalgia feeling.

There are also multiple online posts about building your own, maybe I'll do that to be even more open. This is the one that I stil have bookmarked: http://www.koenigs.dk/mame/eng/stepprojectmame.htm


Why does it matter for your use case? Or are you planning on putting it somewhere public, like a bar (so the "no commercial use" term might have kicked in)?


For me, it only matters for a strange use case. We wanted to put one up during a community/neighbourhood festival and it was somewhat icky so we didn't. Would be fun to see them in bars, too. I know at least one patron that'll probably put one up someday.


Does anybody know what license they're going to be going for?


From looking at their repo, it looks like standard BSD-3-Clause. They've been tagging all the files with license comments at the top as they go through identifying authors and making sure everything is re-licensed consistently.


I just made a quick browse of the commits and there's a lot of BSD-3 but also GPLv2, so I gather the full MAME project will be GPL licensed, but of course you can use the BSD-3 licensed code in non-GPL licensed projects.


from their site "MAME is free. Its source code is free. Selling either is not allowed."

Wonder how that works with the BSD-3-Clause?


That's referring to the old license. The "selling either is not allowed" part is going to go away under new licensing.


I believe that's the old policy prior to the current relicensing effort.


> Wonder how that works with the BSD-3-Clause?

You can put whatever you want in your license. You can say it's based on GPL and add an non-commercial layer on it. You don't have to restrict yourself to licenses already written.


I got an email about it requesting permission to change the license of my CPU cores. To quote:

> (will be BSD3 for core files and BSD3,GPL2 or LGPL2 for drivers/emulators)


What do you think the feeling among contributors is? Are you happy to change yours?

Doesn't GPL effectively prohibit combining it with a closed source commercial product? That suggests you still won't be able to bundle all of MAME with a ROM.


>Doesn't GPL effectively prohibit combining it with a closed source commercial product?

Well yes, since if you sell it to someone you need to offer them the source code should they want it.

However the incentive here (as I understand it) was to allow MAME to be used in museums and the like where they charge an entry fee (thus commercial use), and not in order to make it easy for people to create closed source commercial forks of MAME.


I wasn't happy that GPLv3 wasn't an option, as I am against TiVoization; but I didn't want to throw a wrench in their efforts, so I accepted GPLv2.

(The older license was more permissive in my opinion; but a TiVo product was less likely if it couldn't be sold for profit.)


TiVoizaton is bad thing of course, but sadly GPLv3 for example won't let to put any app using this code to App Store.

Though weird why don't they at least consider GPLv2 or later as it's give a choice for anyone who may want to maintain GPLv3 forks.


> TiVoizaton is bad thing of course, but sadly GPLv3 for example won't let to put any app using this code to App Store.

That to me feels like more of a problem with the App Store than with the GPLv3.

But, I know that idealism tends to get in the way of pragmatism. I understand why they wanted GPLv2.

> Though weird why don't they at least consider GPLv2 or later as it's give a choice for anyone who may want to maintain GPLv3 forks.

I might say GPLv2-3, but I'd be worried about saying "or later", when I don't know what the GPLv4 will hold. Yet at the same time, if I did end up liking it, I'd hate to then be stuck on v2-v3 only. Very tough problem.


GPLv3 give you full permission to put apps in the app Store, so long you hack the App Store upload system so apple do not add their own code and license to the app. For example, you could bundle a GPLv3 app with a shim that allow users to install and run any program of their choice. The license would be perfectly fine with this, but apple would block it with the full force of their legal team.


I'm fine with the change. I've always allowed anyone special license to use my cores commercially if someone asked. Most of the M680x0 based home releases use it (SNK arcade classics, Metal Slug anthology, various Genesis/Megadrive emus, etc). Not sure who's using the G65816 and SPC700 chips (SNES), but there are probably some out there.


I guess the MAME guys want to create an itunes for the games, that way companies like Namco and so on can sell their games thought Mame. And the Mame gusy would get a 30% as ususal.


That is a misleading headline. MAME always was open source, but it was distributed under its own custom license, which forbade distributing it with ROM images. For example, if Nintendo wanted to distribute its Arcade/GB/GBC/GBA/NES/SNES rom images wrapped with MAME, the current license forbids that.

The reason for that restriction is that the MAME devs were concerned about getting sued by the copyright holders.

That's like saying "Nethack isn't open source", because it has its own custom license rather than one of the more traditional licenses. A lot of older projects have their own custom license, because they started before there were a couple of standardized popular licenses.

They plan to switch to a more traditional license. I think they picked the GPL.

Their plan is to get permission from all the authors, and rewrite the code of people who don't give permission.

Some of the core contributors are POed and refuse to give consent, and they left the project.

I'm not sure how rewriting works, since the hard part really was figuring out how to emulate the rom correctly. If you change the variable names, refactor it, but keep the same core logic, does that count as "different"?


Despite all the fun debating the meaning of "open source", it's still a legitimate headline because it describes the article's position clearly. From the article:

> MAME's source code has long been freely available, but it's never technically been open source. Instead it's been available under a modified BSID license that prohibits, among other things, commercial use of the code.


No, the reason it wasn't open source wasn't that it had its own custom license, it was that that custom license didn't meet the Open Source Definition. The license didn't forbid distributing it with ROM images, it forbid any form of commercial distribution or use. That's clearly not open source.


I don't know who decides the term "open source", but looking at the wikipedia article, availability for commercial use, does not seem to be a core concept of the definition, but rather that source code is available and that people are allowed to modify it.

http://en.wikipedia.org/wiki/Open_source


http://opensource.org/

Their definition usually is accepted (and the MAME project refers to it in its roadmap when describing why they weren't open source before)


The first sentence uses the phrase "Universal redistribution", and forbidding commercial redistribution isn't terribly universal.


I thought there was such a restriction, I read the license and there isn't.

http://mamedev.org/legal.html

I thought "open source" just meant "you can read the source". Some people take a stricter definition.

I.e., if Microsoft chose to distribute the source code for Windows, but not allow people to sell binaries or modifications, that would be "open source".


Shared Source was the way MS did this.

"Open Source" seems to be a mark granted to a license by the OSI - http://opensource.org/about

But I don't know if they have any legal control over the term as a trademark or anything, or if they just give their approval and grant the use of their logo.

Interestingly enough (for me anyway) the BSD style licenses don't seem.to meet their definition of "Open Source" but are approved anyway...


> But I don't know if they have any legal control over the term as a trademark or anything, or if they just give their approval and grant the use of their logo.

The term's entirely uncontrolled.

> Interestingly enough (for me anyway) the BSD style licenses don't seem.to meet their definition of "Open Source" but are approved anyway...

Hm. In what way?


Well their "Open Source Definition" here - http://opensource.org/osd - seems pretty copyleft-ish to my reading, particularly clauses 2 and 7.

I'm not trying to say BSD licensed stuff isn't open source, or anything ideologically driven at all (god forbid I start another license flamewar). Just seems a minor inconsistency.

I may well just be reading it wrong.


The notable feature of copyleft is that it applies to derivatives.

So for 7, some software that incorporated BSD licensed code under some additional terms might not meet the open source definition, but the BSD source project would.

Copyleft requires that a derivative project be available under the same terms as the original work (or so, I guess some licenses might be mixable or whatever).


Ah, right. It's possible to release BSD-licensed works in such a way that they're not open source, yes. But if you do receive the source code, the license grants you all the freedoms you require to be able to satisfy the open source definition.


> I thought "open source" just meant "you can read the source"

It's occasionally used to mean that, but it's not the common definition.


There is no common definition, unlike Free Software which is very clear on what it stands for.


> it forbid any form of commercial distribution or use. That's clearly not open source.

I dont think you have a clear understanding of FOSS / Open Source. Having commercial restrictions does not make it less Open Source.


The rewrites they have done before when people left the project and refused to let their code be used anymore. They usually renamed the ROM images because they merged ROMs of different versions of the machine like US, EU, USA, Japanese, Asia versions.

I've followed MAME for a long time, had to keep getting new ROMS with new versions of MAME. Older ROMs got unsupported.

I used to know a company that restored arcade machines and would dump the ROMs to contribute to MAME. They would also do conversions to convert an arcade machine from one game to another.

My brother built his own MAME Arcade machine, until his sons scavenged the parts to build their gaming PCs.

In some nations the ROMs have fallen into public domain because they have a different copyright law. In the USA the DMCA extends copyright for older software.

I think Microsoft had their Microsoft Arcade and Return of the Arcade that emulated some old arcade machines like Pacman, Asteroids, etc.

The MAME and MESS projects merged, so they do arcade machines and video game consoles and computers all in one code base. I think it is good that they did it because code from one platform can be modified to support a different platform.

When Commodore was rebooted for example and they made a Linux based CommodoreOS they used emulation to run Commodore ROMs and Disk files on CommodoreOS. But the man behind it died, and the company went out of business. He even made PC clones in Commodore 64 and Amiga cases to run CommodoreOS.

Basically I would like to see computer companies use the code to run emulators to run their old software on modern platforms and then charge for the ROMs. On Steam there is a Sega Genesis emulation that does that, you can buy a package of games and it downloads the ROMs and runs them in an emulator.


refactoring certainly doesn't count, since it still is the old code, just changed.

The "proper" way is clean room development: one party writes an abstract specification (that describes what the result is, not how the program gets that result), another party that never has seen the original code writes something that matches the spec.


The practical matter is whether the end result is "distinguishably distinct" - but emulating hardware accurately doesn't leave much room for "independent thought", so if you gave a sufficiently detailed specification to 10 programmers of the same skill level and prevented them from knowing or communicating with each other, chances are they would come up with very similarly structured code.

I am somewhat reminded of some of the GNU projects' sources, which look as if the author(s) were trying really hard to make it look "original", at the expense of being simple and straightforward. It would certainly not be a good thing if MAME took this direction.


There have been sweeping changes to the abstractions used in the emulation, in the sense that all (most of?) the drivers were upgraded to use the new abstractions. So I would assume they tend to be consistent (I used to pay attention to the whatsnew files, I haven't studied the code at all).

If I understand correctly, the machine drivers are very close to being abstract specifications of the hardware.


We changed the title to say "completely open-source"—not sure what that means, but it's language from the article—in an attempt to make it less misleading. If anyone suggests a better title, we can change it again.


glad to hear it. not to start a debate over aesthetics, but I've never been terrible impressed by video game art in museums and galleries - not that the work itself isn't impressive, it's just so hopelessly introverted and codified, that it just hasn't been capable of translating into the gallery/fine art setting yet, in my experience. The two worlds don't undertand eachother, and I'll say the same about 'outsider' art - I never enjoyed it's curation although I've loved the art. I'd love to be proven wrong by someone though, on the video game front, and I'd love that person to be me of course haha, here's to dreaming.


So I can't use the or borrow the mane source code without triggering a derivative?

This whole code base is now forever useless. All of that effort is officially gone to waste.


How so? Why is it useless?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: