![GSoC Logo](/data/news/GSoC2016Logo.png) On Thursday Google announced the list of participants accepted for this year's [Google Summer of Code](https://summerofcode.withgoogle.com/) and we are happy to report that 5 contributors have been accepted to work on various parts of the ScummVM project this summer. * Ankush Dutt will work on an automated system for packaging freeware games with ScummVM for various platforms. The project includes two main objectives: help create standalone game packages bundled with ScummVM, and implement a new mechanism to let users download and install freeware games directly from the ScummVM launcher. You can follow the progress for this task on [Ankush’s GSoC blog](https://blogs.scummvm.org/ankushdutt/). * Harishankar Kumar will work on improving Director 4 Compatibility. The goal is to reach full support for Total Distortion & The Journeyman Project. You can follow the progress for this task on [Harishankar’s GSoC blog](https://blogs.scummvm.org/hsk/). * Kartik Agarwala (aka hax0kartik) will work on porting the CRAB engine to ScummVM. The CRAB engine was developed by Pyrodactyl Games and was used in several of the games which the studio released, most notably [Unrest](https://www.mobygames.com/game/74307/unrest/), a story-driven adventure RPG set in ancient India. You can follow the progress for this task on [Kartik’s GSoC blog](https://blogs.scummvm.org/hax0kartik/). * Abhinav Chennubhotla (aka PhoenixFlame101) will work on a system for verifying game file integrity, validating their checksums against those present in a central database. It will also let users contribute the checksums of game files not on the database. You can follow the progress for this task on [Abhinav’s GSoC blog](https://blogs.scummvm.org/phoenixflame101/). * Wyatt Radkiewicz (akaeklipsed) will work on a smaller project to optimize color blending code for the AGS engine thus making games more smooth and run better, especially on lower-end systems. You can follow the progress for this task on [Wyatt’s GSoC blog](https://blogs.scummvm.org/eklipsed/). Please give them a warm welcome, and visit our [Discord server](https://discord.gg/4cDsMNtcpG) if you want to discuss those projects. After a four week Community Bounding period, the coding period will start on May 29 and you can expect regular updates on these projects on their respective blogs. The team is very excited about the upcoming weeks – and we hope you are as well.
For many years, the GOG.com affiliate program has been a great way to support the project. By using our affiliate links to buy your favorite games, you granted us a small commission from GOG.com – without having to spend more than the original price. Earlier this year, GOG.com announced the discontinuation of its old affiliate program. Instead of using a simple referral link, they are now using two external affiliation networks that contain cross-site tracking, as considered by many ad blockers. Since we have been affiliated with GOG.com since 2009, we were able to use the legacy referral links for a couple of months after they initially discontinued them. Unfortunately, our affiliate links were put to rest effective November 22nd, 2023. Since we don't feel comfortable that you would have to use external affiliation networks just to support the project, and because tracking users is against our project policies, we decided not to join the new program. We still value GOG.com as an excellent source for legally purchasing games supported by ScummVM. Even though we are not affiliated with them anymore, we'll continue to support their releases, e.g. by adding and updating the game data files' signatures for the ScummVM supported games that are available for purchase from GOG.com in our detection database and providing links to their releases in [our list of available games](https://wiki.scummvm.org/index.php?title=Where_to_get_the_games). Thank you GOG.com and everybody who used our affiliate link for your support over the last 14 years!
The end of the year is almost upon us, along with a new release of ScummVM. So here's a quick update for one of the more ambitious sub-projects that has been percolating along in the background: Macromedia Director support! For those who aren't aware, Macromedia Director was a popular framework used for thousands of games, educational titles, catalogues, art pieces, and other multimedia works. ## New Games For Testing First off, the upcoming 2.8.0 release will have some new supported games, and we need your help testing them! *_Alice: An Interactive Museum_ *_Ape Odyssey_ *_Classical Cats_ *_Gadget: Invention, Travel and Adventure_ *_The Cute Machine_ *_The Dark Eye_ *_Wrath of the Gods_ You will need the data files from the games' original install media, and a [daily build](https://www.scummvm.org/downloads/#daily) of ScummVM. For Macintosh editions, you will need to run the disc images through [Dumper Companion](https://www.scummvm.org/dumper-companion) in order to extract a complete copy of the files. In the case of The Dark Eye, you will also need the files created by the installer. As always, if you run into issues, please let us know on the [issue tracker](https://bugs.scummvm.org/). If your favorite isn't in the supported list, don't despair! ScummVM can open Director titles from 1995 and earlier, so grab the latest [daily build](https://www.scummvm.org/downloads/#daily) and give it a try. Titles released after 1995 tend to use Director versions that aren't supported yet. If you get stuck, reach out on the [issue tracker](https://bugs.scummvm.org/) and we can try and help. If you've encountered a Director title that isn't recognized by ScummVM, that's great! Please let us know on the [issue tracker](https://bugs.scummvm.org/) so the title can be added to the detection list. ## Engine versions As of the time of writing, ScummVM can detect **1595** different titles based on Director, with the following counts by Director version: | D0 | D1 | D2 | D3| D4| D5| D6| D7 | D8| D9 | D10 | D11 | |----|----|----|-----|-----|-----|-----|----|-----|----|-----|-----| | 12 | 1| 14 | 288 | 602 | 262 | 194 | 97 | 138 | 31 | 36| 4| ScummVM 2.8.0 will be the first release to include preliminary support for the D5 version of Director! A lot of work has gone into overhauling the codebase to support multiple cast libraries, however there is still plenty of work to be done adding Lingo functions and Xtras. Adding support for a new Director version is a tricky process. First we need to check for any changes to the movie file format, then add in any new engine and Lingo features, and finally start working through issues in a bunch of candidate games. Because of the difficulty of keeping track of facts vs. assumptions, we only enable features for an engine version once they have been confirmed with testing. This is why D6 and higher games will not open at all, even if the code we have would somewhat work. Support for the D2, D3 and D4 versions of Director has steadily improved. We are building up a suite of unit tests, both for Lingo and for the various drawing modes in the renderer. Most of the remaining bugs are related to undefined or incidental behavior: consider how two types in Lingo are compared, or the precise order that events are processed in, or how functions respond when you pass them nonsense data? All of these things are relied upon by thousands of Director products! And ScummVM must support all of them as closely as possible. ## XLibs Macromedia provided a C API with Director, which proved to be very popular for adding new engine features. There are hundreds of XObject and Xtra libraries in circulation, and each has to be reverse engineered and added as code to ScummVM. As of the time of writing, we have added support for **63** of these libraries. A common use case is video; Director includes the ability to play back QuickTime videos as a sprite, but computers of the day would struggle with the added overhead of Director's renderer if the video resolution was larger than a postage stamp. To work around this, several XLibs exist to play back video as an accelerated overlay. Quite a few D3 and D4 titles are missing video playback due to this type of XLib, and we plan on creating a common method of supporting these. The good news is that most uncommon XLibs did only one or two things, and are pretty easy to add initial support for. Part of the XLib format is a list of docstrings explaining each of the functions; there is a script in `/devtools` which can turn these docstrings into stubbed C++ code, saving a lot of hassle. --- That's about it! We have some very dedicated volunteers scouring every corner of the globe for obscure Director titles and testing them; if that sounds like your bag, you can visit them in the #engine-director channel of the [ScummVM Discord](https://discord.gg/4cDsMNtcpG). Until next time!