Tuesday, June 23, 2009

GPL, ScummVM and violations

I am sure you saw the news post item about certain GPL violation.

Let me present here some more details about the case.


Fingolfin and cyx are bound by the agreement signed by the lawyers. They are not allowed to talk about the case. Other developers are not, and there is pretty handful of them who know at least beginning of the situation. We are not happy about the outcome, cyx and Fingolfin included.

Short story

As you may imagine, we are closely watching the market for ScummVM-supported games. One of the main reasons is provide an up to date information on our Where to buy games list. Thus, we were pretty glad and interested to hear that there are upcoming Humongous Entertainment titles on Wii. Thus, as soon as the games were on sale, couple of developers bought them.

Suddenly something quite unexpected happened. I got 2 independent reports from 2 completely different sources, even from different countries that apparently there is ScummVM inside. I was not surprised by the fact of ScummVM usage, as there are already Revolution games and GOG.com who sell ScummVM as part of their distributions, still a surprise was that there were the SCUMM-based games. Thus, I quickly requested to inspect the box for copyright statements, and as such, there came a surprise.

Clearly, it was a violation. Further inspection showed that it was even a blatant violation. I addressed to my friend, google.com search engine, and I found following facts:

  • Apparently Atari contracted porting work to their long time partner, Majesco Entertainment.
  • Majesco Entertainment in turn subcontracted the work to Mistic Software, a Canadian-based game shop
  • Mistic Software has its development office in Chernigov, Ukraine, locally presented as Mistic Soft LLC who did the actual work

These Mistic Soft guys got the game assets and sources (this is obvious from the fact that they were able to insert their names into game credits seamlessly), but instead of performing actual work they went a cheap way.

Inspection of the game binary (we dumped it on SD Card on Wii with homebrew channel, it's pretty small) showed that they based their work on ScummVM 0.9.0, inside there were full credits to ScummVM Team (with couple placeholders for their names, though they left them empty), as well as such goodness as "This might be broken -- please report where you encountered this to Fingolfin" or "Tell sev how to reproduce it". Judging from the symbol names they rolled out their own backend, and used Nintendo tools for that.

Then we performed some playtesting on the real thing in order to find clues that ScummVM is inside. Pretty fast we found a 0.9.0-era bug in Freddi Fish. Let me demonstrate it:

Note that gfx glitch on Freddi's left eye. It is right at the beginning of the game, when Freddi reads a letter from the bottle, and is easy to spot on the console. There could be other bugs, but that was enough. Now this bug is fixed in ScummVM.

The development

We were quite shocked. It looks like Mistic Soft took money for all the porting efforts but instead of that just stacked together a ScummVM build! Of course, it was easier (my estimate, that it requires about 2 full time weeks to port ScummVM to new platform), since as I suspect, original interpreter is not very alignment-safe and is not endianness-agnostic as ScummVM is.

Thus, we started to discuss what should we do with the case, and decided to approach gpl-violations.org. We got a lawyer which specializes on such violations, and pretty soon we sent a letter to Atari in Germany (the fact that the games being sold in Germany eased the work considerably).

First they started to deny everything. This is a pretty common thing among the lawyers, and also as I understand, they were not aware of the issue. Consider this: These programmers from Mistic Soft just provided the binaries to their Quality Assurance department, and the games worked well (as ScummVM does). They found no bugs, passed the work to Majesco, and those reported about successful project completion to Atari. Of course nobody except the developers (and perhaps their immediate managers) knew whose code is in there.

So, first Atari lawyers thought that we are going to sue them for zillions of Euros, and they prepared well for the fight. Once they got to know that only thing we are demanding is stick to GPL, they relaxed and the negotiations went much better.

We discussed that they could put stickers on those games which are being sold, and put ScummVM copyrights on new prints, mention us on their site. And it was really nice at first, but pretty soon the lawyers found that Nintendo explicitely prohibits use of open source software together with their Wii SDK, and as such it was a big fault from Atari side.

Thus, instead of being nice they decided to go and hit us badly.

At this very point let me go a bit astray and explain some things about ScummVM. ScummVM is a collection of game engines. There are two major categories of them. Part of the engines is based on original source codes provided by the IP right holders, and another part is partially produced with reverse engineering. Reverse engineering, and particularly disassembling is legal in majority of countries, Germany included. Another approach for reverse engineering is so called Chinese Wall technique is legal in all countries, US included.

SCUMM engine, later versions of which is used in Humongous Entertainment games is one of the engines which was reverse engineered, and that is what the lawyers tried to blackmail us for. In result this all turned into a completely different, much more complicated case.

Thus, there were two routes: 1. Go to court. Defend ScummVM, defend our techniques, spend a lot of time, money. 2. Arrange some kind of settlement agreement.

The finals

Thus, the facts were:

  • There is a GPL violation (their denial has to be proven in a court, strings in executables and the bug above clearly show it)
  • Atari could not release source codes because of Nintendo NDA
  • Atari could not put GPL clause because of Nintendo NDA
  • Atari could not "buy out" ScummVM from us
  • There is no possibility to double license ScummVM, at least SCUMM engine
  • We do not need any money as a "bribe to keep silent"

And we started to discuss. The rough details of the final settlement were: Fingolfin and cyx can post an agreed "press release." They are not allowed to talk more about it. There is a period of time in which all current copies have to be sold. Any copies beyond this period or any reprints get fined with quite high fine for each new/remaining copy. The remaining stock has to be destoryed. There will be no single usage of ScummVM for any of upcoming games without our knowledge. Atari makes a significant donation to Free Software Foundation. Atari covers all expenses on gpl-violations.org lawyers.

Of course, we are not happy about this, as GPL is being violated, but it was better than to dive into many months long trial case.

So, when you will see Pajama Sam, Freddi Fish or SPY Fox games for Wii now in stores, know, that ScummVM is in there. And when you hear about ScummVM, remember, it is a commercial grade software which even Atari is not ashamed to put their label on.