Naturally, the license didn't stop some companies. This included purpose-built ARM-based arcade boards running MAME, to which MAMEDev responded in the most MAMEDev way possible: by cracking their encryption and adding them to MAME as bootleg sets [1].
[1] https://github.com/mamedev/mame/blob/master/src/mame/drivers...
I don't understand what you mean. Why is it bad to draw attention here?
> some contributors didn't want to see commercial MAME arcade cabinets
Why do you suppose that is? It's infuriating to see someone else make a lot of money with something you developed for free?
Surely the world would have been a better place if they allowed all commercial use. Someone would have put marketing money into MAME arcade cabinets, etc., and a lot more people would be using it and aware of it.
Non-commercial use clauses were and are common with emulation software because the perception is that this crosses a potential line into which such litigation becomes clearly justified, and there's legal history to back it up. Both Bleem and Connectix were essentially sued into oblivion for attempting to sell commercial console emulators.
It's also something of an ethical line in the sand. Copying or cloning old games that no one is making money on anymore for personal use is a gray area as it is, but crossing the line into trying to charge money for it was seen as exactly the sort of piracy people associate with shady companies in Hong Kong and bootleggers selling bad CD-ROMs at county fairs.
So it became pretty much standard practice for a lot of emulators and emulation sites to have explicit non-commercial use clauses in their TOS or licenses.
This meant the copyright holders were paying attention to MAME.
MAME didn't want to deal with the lawyers, and wanted to try to stop this piracy.
The vast majority of ROMs are not licensed from the original authors, and are used in violation of copyright. Many people use emulators to run games they don't own; that holds even more true for arcade cabinet ROMs than for home game consoles. And most emulator authors have a passion for the games and systems, and don't actually want to see harm done to those companies; they often build emulators out of the desire to see games and systems preserved and made available to a new generation.
On top of that, many arcade machines already had commercial cloning going on; unlicensed or modded arcade machines with clones of the hardware and copies of the hardware were common.
So, developers didn't want to do anything that would come across as encouraging commercial use of unlicensed game ROMs.
The source code of MAME was done by reverse engineering the ROMs to figure out how they work and emulate the hardware in the arcade machines. MAME emulates a lot of processors and special chips and not all of the code was available for commercial use. It has to be rewritten so that it was different code.
If I recall MESS is included with MAME now as part of some merge. https://github.com/jsmess/jsmess
The JSMESS project has been integrated into the upstream MAME repository at https://github.com/mamedev/mame and this repository is now defunct. Follow the instructions at https://raw.githubusercontent.com/mamedev/mame/master/docs/e... to do an Emscripten compile with unmodified MAME source.
The argument as I recall it from back then was that they did not want to hurt the arcade business, the manufacturers of arcade games would suffer if instead of purchasing their arcade machines, their potential customers would load up a PC with MAME and rig it to a coin-slot/cabinet.
Also the MAME (and MESS which is the same for computers and consoles/handheld) has a policy of not emulating arcades/etc until they are no longer supported/out of circulation.
They probably didn't want commercial coin-op arcade venues setting up shop operating with MAME machines
These are basically trivial now with Raspberry Pis, right?
But beyond that, a commercial MAME cabinet would require ROMs. People have built unofficial cabinets of questionable legality incorporating a pile of ROMs, but a commercial cabinet would require actually licensing specific games.
I ran into problems with NeoGeo games.
Nintendo64 and Playstation emulation on ARM SBCs is probably in a similar state, for a lot of games. Some games will run beautifully, some will be hopelessly slow.
Maybe the ODroid could make it happen but the Pi2 simply cannot.