Username:    Password:    Login
Main  Secrets  Links  Specs  Articles  Forum  News  Downloads  Utilities  SCUMM?  Games  Demos  Contact
Main  Secrets  Links  Specs  Articles  Forum  News  Downloads  Utilities  SCUMM?  Games  Demos  Contact

SCUMM file format specifications and documentation

The Really Useful SCUMM etc. Info File
Maniac Mansion .lfl-files
Additional .lfl info
AKOS format
Preliminary SAN documentation
Monkey Island 1 & 2 costume format
Monkey Island 2 costume format
Monkey Island 2 SCUMM opcodes
SCUMM index files
.bun file format
.lab file format
EMI .lab file format
EMI .til file format
GF/EMI .laf fonts file format
EMI mesh specs

(download file)

The Really Useful SCUMM etc. Info File
by Serge and DaRiuS

This information has been gathered by examining the original
game files (sometimes with a sledge hammer), getting a little
additional information from here and there, and (just a tiny
bit of it) by using the authors' imaginations. Most of this
info should be trusted though. If you happen to find any errors,
or have some additional info, you think might come of use,
please contact us:

Although the authors are inflicted with the development of SCRAMM,
this document has nothing to do with SCRAMM in any way.

Some historical information
SCUMM (Script Creation Utility for Maniac Mansion) was originally
developed in 1987 by Ron Gilbert and Aric Wilmunder, for what was
then called Lucasfilm Games. The reason: A game called Maniac
Mansion (surprised gasp here, please), written by Gilbert and Gary
Winnick for the C64. It basically revolutionized the adventure
gaming industry with an innovative interface, a great story and
some brilliant (OK, for that time) graphics. Since then, this
utility has been used for all games by Lucasfilm Games, or as
they would later be known: Lucasarts Entertainment Company. That
is, until Grim Fandango, their latest game, which will use an
entirely new engine (although ripping some stuff from SCUMM here
and there). While Ron Gilbert left Lucasarts after his master-
piece Monkey Island 2: LeChuck's Revenge, Wilmunder has continued
work on SCUMM up till CMI (and beyond?), converting the system
to different platforms (like the Nintendo), and adding new func-
tionability to it (not alone of course :) )

The important word here is "adding". SCUMM hasn't really been
totally rewritten since the early days, but rather fixed up,
added to, and patched. On the other hand, the same engine version
hasn't been used twice. There's always something new in it for
a new game (ever noticed the addition of 256 color support? ;) )
Check the list below to see some of the engine version numbers
of the various games.

General Info on the structure of a SCUMM game
The SCUMM System consists of two parts, a set of compiler tools
for putting all the parts of the game together, and an inter-
preter, which is the actual game executable (named monkey.exe
for The Secret of Monkey Island on PCs for example).

A sneak peek inside the game files
Distributed along with the executable are some resource files,
and this is where all the fun takes place. In these files are
the scripts, the graphics, the music etc. etc.

Ever since Indiana Jones and the Last Crusade, the resource
file structure hasn't changed considerably. In the early
games, each room was in a different file (titled xx.lfl).
You can check this by swapping two of these files (but don't
touch 00.lfl and sometimes 01.lfl!) - the rooms will swap
too. Along with the room was the sound/music etc, which may
sound weird. But the fact is that Lucasarts have the files
divided into blocks. One block is called ROOM (or RO in the
old files), another is called SOUN (or SO in the old files).
These two go "side by side" in the files (along with some
other stuff, such as the scripts), while a lot of interes-
ting stuff to describe the room is inside the ROOM block -
such things as object images, path finding boxes, object
names etc. All in their own subblock. To get to know more
of this, please wait for SCUMM Revisited to be released ;)

In the later games (from the Secret of Monkey Island and on),
all these room files were bundled into one or more rather
huge files, but the structure of them remained the same. Each
of these room files include scripts, path finding definitions,
graphics (for objects, characters and backgrounds), sound and
music, sometimes cutscenes etc. etc. For most of the games
these files are saved in custom formats and encrypted.

The engine of engines
Basically, the SCUMM engine is a host for other engines, con-
trolling these to put together the final result.

Some more well known of these are:

iMUSE  : interactive MUsic Streaming Engine
         The most well known of the engines SCUMM uses, this
         one controls (as it says) interactive music, using
         an innovative (and patented) system based on a
         custom iMUSE software sequencer and sysex commands
         stored in the MIDI files for the games. For the
         later SCUMM games, this system turned to digital
         audio, still using commands saved inside the music,
         but with less flexibility.
INSANE : INteractive Streaming ANimation Engine
         For controlling the animation in cutscenes and
         larger ingame animations.

Less known are:

CYST   : An in-game animation engine.
FLEM   : Which places and names objects in rooms.

Some other engines, of which we know less so far, are mentioned

Engine versions:
Below are listed some of the engine versions of various
SCUMM games, along with some of the interesting junk found
in the files. More will be added sometime. The years given
are the ones where the games were trademarked and copy-
righted by Lucasarts.

Maniac Mansion                                          1987
[inven actor room misc script sound]

Zak McKracken and the Alien Mindbenders                 1988
[inven actor room misc script sound]

Indiana Jones and the Last Crusade                      1989
Interpreter Version 3.0.22 (VGA 256)

Loom                                                    1990
Interpreter Version 3.5.37
Interpreter Version 3.5.40 (DISK)
Interpreter Verson 5.1.42 (CD-ROM)

The Secret of Monkey Island                             1990
Interpreter Version 5.0.12
Interpreter Version 5.0.19 (DISK)

[object costume room misc script sound]

Monkey Island 2 : LeChuck's Revenge                     1991
Custom charsets seem to have been added as a keyword in the
SCRAMM engine for this game.

Interpreter Version 5.2.02 (Nov 21 1991 08:35:15)
Interpreter Verson  5.2.28cd (Sep 06 1996 17:32:24) (CD)
iMuse (drivers (C) 1991 LEC)

[costume room sound script charset]

Indy4                                                   1992
Interpreter Version 5.5.00 (May 5 1993 18:15:17)  (CD)
Interpreter Version 5.5.02 (Jul 11 1995 14:12:04) (DEMO)

Day Of The Tentacle                                     1993
Interpreter Version 6.3.9 (May 18 1993 18:48:13) (DEMO)
Interpreter version 6.4.2 (Jun 02 1993 18:04:22) (DISK)
Interpreter Version 6.4.2 (Jun 02 1993 18:04:22) (CDROM)

Sam & Max Hit the Road                                  1993
Interpreter Verson 6.3.0 (May 21 1993 09:28:17)  (DEMO)
Interpreter Version 6.5.0 (Oct 21 1993 16:52:22) (DISK)
Interpreter Version 7.0.2 (Jun 02 1994 13:52:31) (CD)

Full Throttle                                           1994
SPU(tm) version 7.3.5. (May 02 1995 1995 18:02:30)
iMuse v0.21d FT (15:52:52 Apr 12 1995)
[room script sound charset costume verb inventory array object actor]

The Dig                                                 1995
SPU(tm) version 7.5.0 (Oct 27 1995 17:03:32)
iMuse v0.21d DIG (16:59:50 Oct 26 1995)
[room script sound charset costume verb inventory array object actor]

Curse of Monkey Island                                  1997
SPU(tm) version 8.1.0 (Oct 10 1997 13:48:51)
SCUMM.EXE version 8.1.0 (Aug 28 1997 17:50:54)
___Scripts compiled Wed Oct 15 1997 18:21:17

iMUSE (Oct 1997)
VHUMOR (Apr 1996)       (Memory Pool System??)
COMPBUN (Sept 1997)     (C File System Layer??)
SMUSH                   (INSANE animation file format)
INSANE                  (INteractive Streaming ANimation Engine)

[roomimage roomscripts script sound costume inventory
array object actor boxes verb]

"Very Unknown":
uSweat			(token??)
IMHS			(old MMUCUS?)

[The End so far]



SCUMM Revisited screenshot
SCUMM Revisited

Quick & Easy
SCUMM Hacking Forum