Getting old games to run correctly on modern systems is often a pain in the back, especially if those games are pushing 20/30 years old. Sure, it is possible to just build an old PC and use it simply for old games, but that also comes with its own bunch of problems. So what if you had an application that could run most old games you care about and even add new quality-of-life functions? Enter ScummVM.
Since its inception, ScummVM – its name derived from LucasArts’ Script Creation Utility for Maniac Mansion engine – was never meant to emulate any specific software or operating system. Instead, it’s based on rewriting a game’s original executable using its source code. When this isn’t available, reverse engineering techniques are used to extract the logic contained in the executable, thus rewriting it in C++. The user can play using the replaced ScummVM executable, but all the game’s data files (graphics, audio, scripts, and so on) are still needed. This allows new features to be added, such as cross-platform support and graphical filters, while also introducing new functionalities such as save states or mouse support.

The first step is a doozy
Thinking back to when the project got started, former co-lead Vincent Hamm remembers that he’d been poking around SCUMM-based tools for a while. “Other people had previously worked on the games, but nobody had taken a stab at the scripting language,” he says. “So I started working my way through Maniac Mansion and Zak McKracken. When it came to adding characters, I found a doc online on Monkey Island 2 written by Ludvig Strigeus. I got in touch and he was working on something similar, but was way ahead of me, so I dropped my own project and joined his – that was yet unnamed, as I recall.”
They started working on supporting several LucasArts adventure games, but after finishing work on Monkey Island 2, they hit a wall. “The sound system in Sam & Max and a large bunch of script bits were very different from previous games,” says Hamm. “This was also around the time that Ludvig, whose aim was just to emulate Day of the Tentacle and Monkey Island 2, started to lose interest. He was still around in the chat, but contributed less. By then, though, the project had gained traction, with other people helping. I was still very much involved in the core of the SCUMM interpreter, continuing the work on later [games] – Full Throttle, The Dig – and earlier [ones] – Indy 3 and Loom.”
Once those LucasArts games were also being supported successfully, Hamm would gradually reduce his contributions to the project, though he still stayed in touch with the community he helped foster. “There’s an educational aspect to ScummVM,” Hamm says. “Being open source, everyone can go in and see how those games are made and work, and learn from them. There’s also preservation. Those games were harder and harder to get working, and that was something I wanted to solve in some way. Sure, one could always go back to a virtual machine, but it was a hassle compared to just being able to run the games on a modern OS.”

The project soon saw other leads step in, like Eugene Sandulenko, who’s now been working on ScummVM for almost 20 years. “It was October 2003, I purchased a Russian release of Full Throttle, came home to find a way of running it, and found ScummVM. I ran it and it crashed immediately,” he recalls. “Apparently, there was a problem with the fonts, which I fixed and submitted a patch for in the channel. Then, after playing for a little while, I got a message, ‘You can now jump the gorge’ [a part of the game that only comes after fighting the biker gangs].
“That meant the whole arcade bike fights section wasn’t implemented. I jumped to the IRC channel again and got an explanation. Since I had several years of reverse engineering experience by then, I told them that I’d like to look into it. All I got was a pat on the shoulder and best wishes. If only I’d known!”
Indeed, it was only four months later that Sandulenko would finish working on the INSANE engine that powers the Full Throttle bike fights. “INSANE is a name well-earned,” he continues. “In the end, the developers got fed up with me continuously submitting patches, and I was invited to the main team.”
When asked what made him stay on the project after the Full Throttle engine was completed, he says it was all about the love of reverse engineering. “It definitely feels like solving an enormous puzzle when you’re making sense out of thousands of unnamed functions, variables, and a soup of engine logic. Nowadays it’s easier with disassemblers, but at that time, it was all hardcore assembly work.”

Starting on a project
How does work on a title begin? It’s all down to one person’s determination, Sandulenko explains. “We need a capable developer with enough time, skill, and passion. Sometimes we make contact with the original developers, but, in most cases, it’s just a game executable and you. There are only relatively few engines where we started with the original sources available.
“Once the developers feel like the engine is closer to completion, they submit a code merge request. Then, the engine’s reviewed, brought to our standards, merged, and then the work continues in-tree. Unfortunately, sometimes real life takes over and the devs who started working have no more time and/or motivation to continue. This leads to a stalled engine in our codebase, which we need to remove after no progress has been made for quite a while.”
As the project has gained traction over the years, several people have inevitably tried to take advantage of it economically. There have been several cases of ScummVM being put on Steam, Google’s Play Store, or the App Store without the company publishing the source code or concealing that they were using ScummVM. This goes against the application’s GNU GPLv2 licence, which applies to the modified game executable. The original copyright holder is allowed to bundle ScummVM with the game they’re selling, only by providing a licence notice together with the ScummVM copyright file, and must provide all code modifications, if they were made. Sandulenko angrily recalls when someone took advantage of the application, “one guy was able to run a successful Kickstarter campaign, taking our Dreamcast ScummVM port and the freeware game from the website, and burning them on a CD-R. The Kickstarter raised €4000!”

The advantages of replacing an executable, as opposed to just emulating the game, become clear when looking at some of the latest supported titles. Arnaud Boutonné, one of the developers, got into the project in 2009 to support one of his favourite games, Fascination: “The former main [developer] didn’t want to work on it anymore and told me to do it myself.”
After that, Boutonné worked on support for the Hugo trilogy (a series of parser-based adventures first released in 1990) to make them ready for sale on GOG. Boutonné wasn’t familiar with them, which he recalls as an interesting experience, since when he started rebuilding them – with the help of the original developer – he ended up fixing some of their bugs. “I also added a couple of rooms that were unused but looked fancy, and documented previously unknown Easter eggs,” he says. “[And] we fixed some critical bugs, like we did with Nightlong: Union City Conspiracy. Adding cutscenes is more rare, since most of the games we support came on floppies, and developers were keen on keeping files as small as possible to reduce production costs.
Sometimes, though, tough choices have to be made. Sandulenko recalls having to remove two engines because they had no future: Orion Burger and Igor: Objectivo Uikokahonia.
Drama and misconceptions
Indeed, ScummVM has also seen a fair share of drama over its years. One such example is Another World, as Sandulenko recalls, “aquadran and myself were working on adding the engine, as at the time there was no actual procedure for it. Some of the other developers raised their voices and their arguments were that the game is vector-based, not pixel-based, so it wouldn’t fit on ScummVM. Also, it wasn’t a strict adventure game. A few weeks later Eric Chahi contacted Cyx, the original reimplemented engine author, and asked to hold off since he wanted to release a high-res 20th Anniversary engine, based on cyx’s work. So, the engine got removed from ScummVM”. The engine was indeed removed in a few days, but that wasn’t the end of it.
“Cyx decided to continue to host the engine reimplementation on his site, and then he hid it for a while for the re-release. It was back several years later, though. He still has his own version of ScummVM up on his website, with a lot of his own contributions to it”.

“One great example of restored content is Blade Runner. All the cut content was already present in the data on the CDs themselves – it was just a matter of making it accessible.” With a list of fixed bugs, restored audio, and text running to almost three pages long, the ScummVM version of Westwood Studio’s Blade Runner feels like a Director’s Cut of sorts. Sandulenko recalls that their work on Blade Runner led to an approach from Nightdive Studio, which was working on a remastered edition of the same game.
“We tried to reach an agreement, but it didn’t work out,” he says. “They wanted to be allowed to use our engine, but we couldn’t agree on a price.” Sandulenko also recalls the drama when Nightdive’s Blade Runner was released to harsh reviews and unhappy players. “For a while, GOG removed our version and everyone was forced to buy the enhanced Nightdive edition. Luckily, after a couple of weeks, they came to their senses.”
On the subject of game preservation and its future, several team members express worry that studios still haven’t learned much from the old days of perishable media. “Once, you stored source data on floppies and they might eventually end up being unreadable,” comments Sandulenko. “But what’s their excuse now?”
“Take Nintendo,” says Lothar Serra Mari, who’s been working on ScummVM since 2014. “Except for re-releasing the same titles, they seem not to be doing anything to look after their download-only releases. At some point, I think pirating will be the only way to access most of their library. I think it’s clear by now how digital makes preserving games much harder – often, there’s no apparent way to access the ‘raw’ original files.”

Emulation vs Preservation
Developer Paul Gilbert concurs that preservation still isn’t being taken seriously by enough developers and publishers. “With games getting more complicated, it gets harder and harder to support them without source code. Without sources, it becomes less likely we’ll be able to support anything recent, since even old games require so much work. I’m amazed by the number of new games that we’re still able to support with each release.”
There have been several discussions about the purity of recreating a game engine as it was, versus adding improvements and fixing bugs. Boutonné recalls the team wasn’t always 100 percent pro-enhancements but, over time, several of the more outspoken supporters of “purism” have left the project. “Today, the majority definitely seem to be in favour of ScummVM adding quality of life improvements to the games supported,” he says.
Gilbert, who’s been on the project since 2005, first working on Revolution Software’s Lure of the Temptress, is also a firm believer in adding new features. “I’m always happy when, in some cases, cut content can be restored. I consider it as an homage to the authors’ original intentions.”
Documentation is also a topic related to preservation, since without keeping track of the changes, rebuilding an executable becomes rather difficult. Mari previously translated the GUI and documentation, and recently became one of the co-leads. He enthuses about the project’s constant growth, along with his passion for keeping the experience as close to the original as possible. “I decided to add simulated loading times to the Myst games,” Mari says, “since I didn’t like the instant transitions between scenes.”

Mari also recalls that, until recently, the project didn’t really have a defined process for updating documentation. “If you want to keep track of new features and relevant changes, it’s essential to keep the docs updated,” he says. “But even I’m guilty of being a little lazy about it at times…”
Once solely focused on LucasArts’ point-and-click adventures, ScummVM’s scope has gradually expanded over the years. Sandulenko expresses his wish to have proper Android and iOS devs to further develop mobile ports, which have so far proven difficult.
“We’re continuing our work on Macromedia Director,” he says. “It’s unknown when we’ll finish, but each step takes us closer to supporting many more multimedia titles.”
“With the support of Director, we’re now more than just a convenient way to play adventure games on modern platforms,” adds Boutonné. “The versions of the program we support have been used by thousands of titles of the time, so we’re preserving games and software as well.”
Mari observes that by supporting Director, “we’ll see hopefully more QuickTime-related development soon, since a lot of Director games have QuickTime assets as well. Eventually, we’ll get the best out of two worlds, so many more lesser-known titles can be run without having the original hardware on hand”.
On to greater things
Gilbert, meanwhile, seems to appreciate the project’s new, broadened scope.
“With the inclusion of interactive fiction, ScummVM could be seen as the go-to place for all forms of storytelling games in the future,” he says, since the application now embraces text-based adventures as well as RPGs. “We already support Might & Magic and Ultima titles, and I’d like to see full support for those series. Plus maybe the Wizardry and early Final Fantasy games as well.”
“This change was definitely necessary, since people are essentially working on games they loved when they were younger, and as most of the bestsellers were supported, we had fewer and fewer interesting targets,” Boutonné continues. “So, we were losing developers and not getting new ones. Since we have this new scope, we have a lot of newcomers, and fresh blood is what will keep the project alive.”
Could ScummVM gradually become a platform that will support all kinds of game engines? “Not yet,” says Sandulenko, “and it probably never will, since arcade games or shoot-‘em-ups would clearly be out of our scope. However, there was one idea of turning ScummVM into a library, so any game could be built on top of it, but this is an old dream of mine, and I don’t think we ever put any substantial effort into it.”

On the potential future of the project, some of the co-leads recognise that there’s no easy way to tell where ScummVM will head next. “With all the new changes, the sky’s the limit,” says Boutonné. “We jumped in a short period of time from supporting hundreds of point-and-click games to thousands of titles. The main thing badly missing is time – we all have dozens of titles in mind, and as we aren’t paid for this, we still have to make a living on the side. I’m pretty sure,” he says, “that most of us spend more time reverse-engineering games than actually playing them!”
Over time, Sandulenko has seen several ScummVM developers leave the project due to real-life commitments. In fact, when I mention the need for a RealLifeVM that replaces boring tasks with quality-of-life enhancements, he says that would be very much needed. The team seems to spend most of the time reverse-engineering the games, rather than playing them. Finally, I mention to him, since ScummVM has long ago stopped being simply about LucasArts games, what about a different name? Eugene laughs and says “We get that question a lot around here, we’ve compiled a full page of alternative names, take your pick!”
This is a new edition of a 2022 article originally published for Wireframe magazine, some information might thus be outdated.
–
If you wish to help keep the website alive and running, be sure to check out my patreon to find more exclusive articles. Or, well, offer me a coffee.