5 - To be in terms with the license (referring to
http://www.mame.net: If you use portions of the MAME source code in your program, however, you must make the full source code freely available as well.)
yeah, this is the issue. I have always had issues with clauses like this in development agreements.
It doesn't really mean what it literally seems to mean....otherwise almost all commercial software would have to be open source. Lots of commercial applications use various linux open source code in their projects.
it just requires the developer using the open source to be a little more organized and creative in how they make their builds....where you can easily separate all your "new" stuff and not release that...but the "full open source" include all but some "new" aspects.
ie. many earlier game engines are available as free open source now...but with the above type of clause.
The real result of that type of clause is that the game itself ends up being freeware....no commercial aspect to it.
The full open source of any games made using these open source game engines is often not available....and few seem to care....including those who released the open source of the engine.
As long as you can't use it for commercial gain they don't care.
In the case of MAME it's a little diffferent...cuz in this case you aren't even releasing a separate/new game...but just a rehash of an existing application with additional features added.
I don't think the source of the additional features needs to be released...as you have full access to the full source of what the actual MAME engine(s) is.
Now if in your build you added changes to the actual emulated game CPUs etc., then I do think the above clause covers that and you would be obliged to release the source of that type of change....cuz that is a change to MAME you are doing...not just some auxiliary module type thing that adds additional features.
That's my take on it.