Wednesday, July 17, 2013

A breakthrough

After a long while I finally managed to get first graphics displayed in ScummVM...
Of course, this also includes full code for scene loading. I would say, that the engine is way over-engineered. Read More...

Sunday, November 29, 2009

A New Nice Port

A new nice port is in the works:


It is the very first screen shot. Hkz is working on it. ScummVM portability is demonstrated at its most. Read More...

Wednesday, July 8, 2009

Steam Releases vs ScummVM

Today LucasArts re-released some of their adventure classics on Steam. Immediately people started to wonder about ScummVM. Let's see...

It came out of the blue, and nobody ever expected such turn. We even had internal jokes that LEC would rather release "Jedi Fights the Green Tentacle" than another Monkey Island game or any of their old adventures.

I think ScummVM did its job really well. We kept a big fan base of the games alive and even growing. We released our software for number of platforms, including such hot devices as iPhone and Wii. Finally LucasArts seemed to realize that there is market for 2D point and click adventures, and their new re-releases are geared towards just that. Well, kind of.

There was a certain speculation on the technical side of the re-releases, basically whether they will be ScummVM-compatible or not.

Thus, we already checked the binaries of some of the games, no surprise there, they use Windows port by Aaron Giles, not ScummVM. As of the ScummVM compatibility, we see that here were some changes that make the games incompatible with the current ScummVM version. They are very trivial changes, though (moving the content of one file into another), and do not seem to constitute any kind of copy protection. Of course one can wonder if they did this deliberately to break compatibility with ScummVM, but since it is so trivial to deal with this change, this seems somewhat unlikely.

Thus, it is matter of five minutes hack for adding support of these games to ScummVM, as basically it is just a slight format change, not any kind of copy protection or encryption. Adding such kind of support would remain completely legal, just as ScummVM was always legal with running other game versions, and nobody rights will be violated.

However, we decided to abstain from it at least for now. It seems that LucasArts' folks are pretty aware about us, we've been even mentioned on their twitter account, and there is a chance that we could be contacted. We do not want to interfere with their sales and/or any upcoming plans for other platforms. Also we are really open for cooperation in this regard and will be more than happy to make any upcoming releases run with use of ScummVM.
Read More...

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.


Disclaimer


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.

Read More...

Saturday, January 17, 2009

The oldest public ScummVM screenshot (probably)

In the last years ScummVM became one of the most known open source projects. But it was not always like this.


Today eriktorbjorn stumbled upon the very first mention of ScummVM on Slashdot. What is amazing about this that some comments have links to screenshots posted, and one of them is still alive! I'm attaching the mentioned screenshot, as the server which hosts the original is quite slow. The screenshot is dated Sun, 04 Nov 2001 07:44:03 GMT which was "2nd pre-alpha release," or 0.0.2. It was after 45 commits to public CVS!



Of course, it was not just the beginning of the development, as with his first commit Ludde submitted an already semi-working engine, still you may see this piece of our project history.

At the time ScummVM consisted of 13,658 SLOC (physical source lines of code) and was able to run 6 games, including monkey1, monkey2, indy4, indy4 demo, DOTT and Sam&Max. Compare it with today's 663,214 SLOC, and I am not ready to tell how many games we do support :).
Read More...

Wednesday, January 14, 2009

Disco Music

I think you're aware of James Woodcock's Music Enhancement Project. James was applying his talent to rearranging music for several titles supported by ScummVM.

One of his projects included complete soundtrack for Discworld.

During last several weeks he renewed his work on this project, and finally there are noticeable results. This is a huge step forward in the game atmosphere (though some may complain about not being faithful to origial), and I expect that many of our users will choose play this marvelous classic on new highs of audio experience.

James recorded a sneak peak preview of the soundtrack in action which you may see in the attached video.

The work performed is huge. It is over 100 minutes of music significantly rearranged and recorded on a modern Yamaha-branded sound equipment. It took almost 2 years for him to work over all 107 tracks. Besides, the work has been blessed by Terry himself, so this is going to be first sound pack officially supported by ScummVM and distributed from our site.

You will be able to play any version of the game with this new sound track, it will be just matter of extracting the archive into the game directory. Of course, original untouched MIDI music will be still present for those seeking true nostalgia (Who may also prefer to play fullscreen with 320x200 resolution:) ).

Stay tuned!

And now is the promised video:


Read More...

Sunday, January 4, 2009

The Ultimate AGI Specification

As you perhaps know, for last 1.5 years ScummVM serves as an Ultimate AGI engine, especially since Kari Salminen aka Buddha^ joined us first as a GSoC member and then as a full-blown developer.

To the date ScummVM covered more AGI games than any other open AGI interpreter. The missings are AGI0, AGI1, AGI2.01 games as well as Tandy CoCo3 conversions.

Though there was a thing which bothered me for quite time, that is the fact that famous AGI Specifications is not fully converted on our Wiki. Important sections were missing, and not all existing text was in a good shape. So, finally I got some time and completed the project.

Now you may go and explore it on our Wiki. The big help for me was a wonderful online HTML to Wiki Converter - tables tool written by Borislav Manolov. I highly recommend it. Read More...