ScummVM for N64


Growing up in the late 90s, one of my favorite game companies was LucasArts. For us N64 fans, they're best known for their groundbreaking Star Wars games, even Indiana Jones and the Infernal Machine turned out seriously great. Some of these games were also released on Windows PCs, a platform most would consider to be the homebase for LucasArts. For the PC crowd, they became famous for their excellent point 'n click adventure games. Maniac Mansion, Monkey Island, Indiana Jones and the Fate of Atlantis and many others would all become fan favorites of the genre. Those games received many ports to different competing systems of the time, but with the fall of LucasArts in the 2000s, these games would end up falling into obscurity with no official re-releases. That's when ScummVM comes into the picture.

ScummVM was started in 2001 and at first focused on LucasArts titles, but quickly expanded to cover many different engines by different studios who developed point 'n click adventure games. It was also built in easily portable code, leading ScummVM to become one of the most frquently ported open source applications. This finally leads us to the subject of this very special article, ScummVM for Nintendo 64.

Over the years, there haven't been many homebrew source ports to the Nintendo 64, it just hasn't been a very active platform. There's been the odd emulator like Neon64 and source port games like Doom, but these are very sparse. From that perspective, ScummVM is definitely an interesting piece of software. What's more fascinating is, well for one, it works on the N64, which is a very good thing for an N64 fansite. Moreover, as far as closed hardware systems go, the Nintendo 64 might just be the oldest host platform supported by ScummVM, being originally released in 1996. For comparison, the Dreamcast first launched in Japan in 1998 and the PS2 was out in 2000, the next two oldest closed game systems also supported by ScummVM. If we're counting all hardware and software platforms, Windows 95 would have the N64 beat for being the oldest.

As for ScummVM itself, the latest build for N64 is version 1.6.0, fairly out of date now but it can still run a large variety of games. The current build package includes individal N64 binaries for different game engines, such as Scumm, AGI, Sierra and individual titles like Lure of the Temptress, Beneath a Steel Sky and Flight of the Amazon Queen. Some of these engines require additional data files, which are included in the build package.

The 1.6.0 release binary package can be found using this link.

Setting Up ScummVM for N64

Although this article is primarily meant to demonstrate this open source project, during our research into ScummVM for N64, we found a lot of users have experienced difficulty and confusion in getting it to work on real hardware. To that end, we'll be covering all the steps needed to get you up and running, then go over the features of the ScummVM program itself.

Because the N64 is considered to be an embedded platform, one that does not readily support homebrew, you first need something that can run N64 rom files. ScummVM for N64 was developed back when the most one could get was a copier like the Mr. Backup Z64, Doctor V64 or a NeoMyth N64 flash cart. Today, we have the 64Drive, Everdrive 64 and ED64Plus. For this article, we'll be using the relatively easy to find Everdrive 64 v2.5 as our main demonstration device, but also test the ED64plus where applicable.

You're also going to want some ScummVM games, most of which are not freeware and might not ever be. In many cases, they can still be purchased on digital storefronts like gog.com and steam. Some games aren't, it depends on who owns the rights now. These digital releases usually come with the individual core game files compatible with ScummVM, so buying digital is a viable option here.

There are a few freeware adventure games like Beneath a Steel Sky though. Those can be downloaded at the scummvm.org site

The full list of games supported in ScummVM 1.6.0 can be found here

The next step is the hardest part for most. Due to the closed nature of the N64, the ScummVM program needs to be specially bundled with separately obtained games in a cartridge rom image. It's not as hard as it sounds though.

In short, to use ScummVM for N64, you need the following:

  • An N64 copier or flash cart
  • N64 Expansion Pak (optional but highly recommended)
  • N64 Controller/Memory Pak (for saving)
  • 64DD Mouse controller (optional, but recommended)
  • The ScummVM 1.6.0 N64 port release package
  • Games to run in ScummVM
  • Linux or Windows computer to build rom images

Detailed instructions for building a ScummVM rom image are a bit too lengthy to keep in this main article page. Please use the links below for detailed guides on building N64 rom images.

Linux Instructions
Windows Instructions (under investigation)

If you don't have Linux or might not be comfortable with a command line, we went ahead and pre-compiled a few of the freeware games from scummvm.org into N64-compatible rom images. These were checksum corrected and tested on an Everdrive 64. However, they were not padded to specific sizes so they might not work with copiers like the Doctor V64.

N64 ready ROM files:

NOTE: In our testing, Dreamweb would boot to a black screen after loading it at the ScummVM in-game menu, but we're including it for completeness as Dreamweb is officially supported.


Using ScummVM for N64

The Controls

  • Control Stick -> Mouse Movement
  • D-Pad -> Slow Mouse
  • L Button -> ESC Key (skip cutscenes)
  • R Button -> On-Screen Keyboard
  • A Button -> Skip dialogues in some games
  • B Button -> Right Mouse Button
  • Z Button -> Left Mouse Button
  • C Buttons -> Numeric Keypad Keys

When you first start up ScummVM for N64, you'll see the main menu. From here, you'll want to use the add games button, then pick each game folder one at a time, this will populate the main menu list.

Like other versions of ScummVM, there are options available per game or globally to adjust graphics, sound and other things, but given the embedded and low-powered nature of the N64 hardware, the actual customization isn't quite as flexible as with newer host hardware. About the most you can do is enable MT-32 emulation, as long as you have the correct MT-32 ROMs which we can't share here. In the Paths tab, it's good to know the "Extra" path is intended for music and support files for particular games, but you're not likely to be getting .ogg music files due to cartridge space limitations.


Something users new to ScummVM may not notice in the options menu is the very last tab, Misc. You have to use the arrow keys in the upper-right corner to access it. There's not much to change in here sadly, only one menu theme is included, probably for memory constraint reasons. There is also an autosave feature which, for some ridiculous reason is set by default to never.

Like in many other ports of ScummVM, there's also an on-screen keyboard, assigned to the R button. It's used during games or when manipulating save files to enter specific commands. For SCUMM games and many newer titles, you don't really need the on-screen keyboard, but early Sierra titles do need it.

Beyond that, ScummVM for N64 is just like playing it on any other port of the software. It all comes down to the type of game you're playing, really. It's certainly playable with a regular N64 controller, but for a really authentic home computer experience, we recommend the Nintendo 64DD mouse controller.

Saving & Loading

The wiki.scummvm.org page for N64 already has information on saving progress in ScummVM, but that article was written before the Everdrive 64 existed and some details aren't quite as clear as they should be.

The two supported saving options are "FlashRAM" and Controller Pak.


The Controller Pak (or third party memory cards) plug into the controller and doesn't offer much storage space, only 32KB. Some games may exceed this space and not save properly.

FlashRAM on the N64 means 128KB of room for save files, which is plenty for ScummVM. However, FlashRAM is more complicated than that. ScummVM may support FlashRAM, but it seems it only works on old copier devices. Hardware like the Doctor V64 and others required a boot cartridge of some sort, usually a retail game or a dedicated copier boot device, containing an original Nintendo CIC chip. If you used a retail game that used FlashRAM, ScummVM would be able to use that chip or saving progress.

If you don't have a copier and instead are using an Everdrive 64 (or ED64plus), it doesn't seem capable of FlashRAM saving. Even if the save type for your ScummVM rom image is forced to FlashRAM in the Everdrive 64 OS menu, a .FLA file is created but never filled with data.

We also tested the controller pak saving method on the Everdrive 64 2.5 and ED64plus flash carts. It seems not only does FlashRAM not work, the controller pak doesn't work either. We're not sure why this is, perhaps ScummVM behaves in a way the Everdrive 64 or ED64plus isn't expecting. We don't have a 64Drive, NeoMyth or copier device to test with. From the looks of things, ScummVM would need an update in order to save correctly with the Everdrive.

For a lot of folks who only have Everdrives, this is likely a deal breaker, especially with games from Sierra where saving frequently was an absolute necessity, due to all the ridiculous ways one could die in their games. For the more popular LucasArts games, most aren't actually that long and can be finished in an afternoon if you know what you're doing or are fairly puzzle-savvy. No saving is a bit of a bummer, but it doesn't take away from the technical feat of all this.

Technical Details & Limitations

At first, this appears to be a full-fat port of ScummVM 1.6.0, but instead of being one big executable binary with support for every game (as of 1.6.0), the N64 port of ScummVM has been divided into individual binaries per engine or standalone game. This means it's entirely possible some games aren't supported, mainly the miscellaneous games that didn't have a common shared engine, like Drascula.

The available binaries are:

  • AGI (Sierra)
  • AGOS (Adventuresoft / Horrorsoft)
  • CINE
  • Dreamweb
  • GOB (Coktel Vision)
  • Kyra (Legend of Kyrandia series)
  • Lure (Lure of the Temptress)
  • MADE (Activision)
  • Parallaction
  • Queen (Flight of the Amazon Queen)
  • SCI (Sierra)
  • SCUMM (Humongous Entertainment)
  • SCUMM (LucasArts)
  • Sky (Beneath a Steel Sky, previous internal name was BASS)
  • TeenAgent

The full list of supported games by engine can be found here

There are some hard limits with the N64 though. Most flash carts max out at 64MB for rom images, they can't run roms bigger than that. This means pretty much no talkie version of a game will work. In fact, with only .ogg and uncompressed pcm audio being supported, even getting CD soundtracks working is also a bit of a pickle, due to lack of space. That said, if using floppy versions, it's possible to fit multiple games into one scummvm-n64 rom image. However, in our testing of different games, we did notice the floppy version of Day of the Tentacle actually has some voice clips, so there's that at least.

There's also the issue of CPU and graphics muscle on the N64, which for an open source program designed for decades-newer hardware, isn't much. The simpler SCUMM games work alright, but as they get more complicated and use full VGA graphics, the framerate goes lower.

Lack of RAM is also a concern. Because the stock 4MB on the N64 isn't enough for most games, the expansion pak is highly recommended. Lower end EGA and VGA titles should be alright, SVGA might be too much even with an Expansion Pak.

After testing many games with the Expansion Pak equipped, for the most part games run fairly well, the simpler ones run better than more complicated ones. Later made games like Day of the Tentacle on a rare occasion can crash or bring up a missing savestate error and then lock up. It's a bit annoying but with frequent saving, it's not too bad... If you are using a device that supports saving that is.

One other limitation is resolution. The N64 supports 320x240p, 640x480i and some odd in-between resolutions. This covers most games supported by ScummVM, but things like pixel filters don't really work when the N64 can't do resolutions higher than what these ScummVM games could originally do.

Final Thoughts

As far as homebrew projects go on the N64, ScummVM is by far one of the coolest. It's hard to believe the N64 is even capable of running it. What's more impressive is it's a very usable port of ScummVM, at least for games that use CGA, EGA and simpler VGA graphics. For actually playing games using ScummVM, it seems the saving and loading function doesn't work on Everdrives, which limits a lot of the appeal this homebrew software could have had. Most people are far more likely to have an Everdrive than a Doctor V64. Still, all the simpler games we tried work great, so if nothing else this is a great way to experience something new on the N64.


Links

N64-Ready ScummVM ROMs:

Written by Aaron Wilcott
April 30th 2020