Important: This documentation is for DREAMM 1.0, which is no longer supported. It remains here strictly for archival purposes. If you are running DREAMM 2.0 or later, you are probably looking for the DREAMM 2.0 and later documentation.
DREAMM is a backronym for:
DOS
Retro-
Emulation
Arena for
Maniac
Mansion (and other LucasArts SCUMM Games).
DREAMM is a way to play your original DOS LucasArts adventure games with full fidelity to the original, without the hassle of setting up a general-purpose emulator. It was created by Aaron Giles.
DREAMM is Windows-only at the moment, though eventually it may make its way to other platforms.
On Windows, DREAMM currently runs using no gaming technologies (i.e., no DirectX). This might change in the future if there is reason to use something more efficient or configurable, but for now this keeps the code simpler. I’ve done work to run the video and audio on separate threads, so a modern multi-core system shouldn’t really by sweating.
At this point, DREAMM will run all the known DOS and FM Towns versions of the SCUMM games, along with the Windows-only The Curse of Monkey Island. This includes:
DREAMM will attempt to recognize the game you are running by consulting an internal database of all SCUMM games I have encountered. At this point, it’s still possible you could have a variant I haven’t seen before. In this case you’ll see a dialog like the one to the right. Click the links to email your information in to me so that future versions won’t give you the warning.
Also be aware that DREAMM configures the available options and some behaviors internally based on which game it thinks you’re running. So when you run an unknown version, you may encounter issues with selecting the wrong sound system or other oddities.
In order to run the games, DREAMM needs to know where your game files are. There are many different ways to accomplish this, which are detailed below.
Important: DREAMM only supports DOS, FM Towns, and original Windows versions of the games, and requires the presence of the original executable files.
If you just double-click on the DREAMM application, you’ll see DREAMM’s “Add Games” screen. On this screen, you have a couple of options:
Scan for Games — Click this button to automatically scan for games that may already be installed. DREAMM will look in the following locations for games:
Steam Users: If you purchased any SCUMM games through Steam, DREAMM will not detect them, because the Steam versions of the games are missing key files that DREAMM requires.
Add Game Directory — Click this button to select a directory on your computer where a game is installed (or which contains the installer EXE). DREAMM will scan that directory for game files, and if it finds any games or demos, it will add them to its list.
Add Game Image — Click this button to select a floppy or CD-ROM image file on your hard drive that contains a game. DREAMM supports floppy disk images in .ima, .img, or .vfd format, and CD-ROM images in .iso or .cue/.bin format.
Tip: DREAMM also supports drag & drop, so you can drag directories or image files from Explorer onto the DREAMM window and it will add them. This is by far the easiest method if you want to add a number of games in one go.
Some additional notes about adding games:
Once you have added your first game, you will see DREAMM’s game list screen, showing all the games that you have run. To start a game, double click on it, or select it from the list and click the Run Game button.
When running a game, the frontend window will be hidden, since DREAMM by default will only run one game at a time. Once you exit from the game, the frontend will re-appear so you can select a new game to play, or add more games.
Below the game list you’ll find a button labelled Add Games, which will take you back to the screen where you can add more games. Any time you add new games, they will be marked with a yellow bar just to the left of their icon so you can spot them more easily.
Right-clicking on an item in the list will bring up a small context menu with some options:
DREAMM was designed to work with original game media. This means you should just be able to insert your original game floppy disk or CD-ROM, double-click on DREAMM, and it will detect your game and start running.
However, since the original media are likely nearing the end of their lifetime, DREAMM will stop and offer you the option to copy the game files to your local hard disk instead prior to running them. You can decline the offer if you really desire the old-school gaming experience.
Note: Experimentation has shown that modern CD-ROM drives spend a lot more time spinning up & down than early 1990s-era CD-ROMs did. This means that you may see lots of hiccups in fetching audio when running direct from a CD. For this reason, I recommend allowing DREAMM to copy the game to your hard disk first.
If you’d prefer to bypass the frontend and just run the game directly, you can do that by copying the DREAMM executable and any support files into the same directory as the original DOS executable. When run from this environment, DREAMM will detect the game it lives next to and launch directly into it, no questions asked.
As an alternative to copying DREAMM.exe and its support files into your game’s directory, you can drag the game’s folder onto the DREAMM icon in Explorer.
This section describes the various controls and options available to you when running the games.
At the top of the game window, you’ll find a File menu with the following commands:
The About DREAMM menu item will show you which version you’re running plus a link to this page.
Save or Load Game sends a request to the emulated game to bring up the in-game save/load dialog. Note that this is just a request. If the game is not in a state where a save can happen, the game will just keep on running. Selecting this item is equivalent to pressing the F5 key during gameplay (in fact, it just sends a fake F5 key command to the emulator). The one exception to this is The Curse of Monkey Island, which moved to using the F1 key instead.
View Save Directory will open the folder containing your saved games in Explorer. However, if you have not yet saved anything, this menu item will be greyed out, as DREAMM does not create the save directory until your first attempt to save a game.
Pause Execution (Alt+P) immediately halts execution of the game and dims the screen slightly. The pausing effected by this command is different from the built-in pause feature in the SCUMM games (which is triggered by pressing Space), and will work no matter what state the game is in.
The Automatically Pause in Background option is a feature that automatically issues a Pause Execution command to the game any time you switch away from the DREAMM application. Note that even with this setting disabled, DREAMM will still always pause the game if it displays any prompts or dialogs itself. You’ll see a checkmark next to this item if it is enabled (and it is enabled by default).
The Restart and Exit (Alt+F4) menu items work similarly to the Pause Execution command, in that they will perform an immediate restart or exit regardless of whether the game is prepared to do so. DREAMM will, however, attempt to wait up to one second until it’s safe to perform the operation, so you shouldn’t encounter corrupt files or other problematic issues from doing this.
Within the games, the DOS-era equivalent key combinations (Space for pause, F8 for restart, and Ctrl+C or Alt+X for exit) will still work. However, especially with the earlier games, you may be surprised to discover that you’re not given a chance to confirm before exiting, so be warned!
The Floppy menu controls what shows up in the emulated game’s virtual A: drive. This menu will only appear if you run DREAMM with a physical floppy disk inserted, or if you run with floppy image files. In this case your game (or its installer) will be running from the virtual floppy drive of a classic DOS machine, which in turn means that you will likely be asked to insert floppy disks at certain points to continue playing or installing.
If you are using a physical floppy drive, then you should just eject and insert new disks as requested. No need to touch the Floppy menu. However, if you are using floppy images, things get more interesting.
By default, DREAMM looks for a sequence of floppy disk images with sequential numbering, and mounts them all together as if they were one giant floppy disk. But if you need to manually mount a floppy image, or want to ensure that only a single image shows up in the virtual drive, you’ll want to explore the commands here.
Mount Floppy Disk Image brings up the file selection dialog to let you select a .ima, .img, or .vfd file to mount. Once you’ve selected a valid image, it will appear in the menu, and will be the only image mounted in the A: drive.
Mount Directory as Floppy brings up the folder selection dialog, where you can select a folder whose contents will be mapped to the virtual A: drive. This option is handy if you’ve copied the contents of your physical floppies to a directory on your local hard disk. As with the image mount option above, once the directory is selected, it will be the only thing mounted in the A: drive.
In addition to these menu items, you can also drag & drop folders or .ima/.img/.vfd files from Explorer onto the game window. The folders or files will be mounted and selected just as if you had selected them using the menu items described above.
Below the two mount options you will see a list of paths to images or directories that have been previously mounted. Selecting any one of these will be equivalent to inserting just that image/directory into the A: drive. Note that each item in order has a shortcut key Alt+1 up through Alt+9 assigned to it to make it easier to switch when the menu bar is hidden.
The final option, All Items Combined (Alt+0), mounts a combined set of all files contained in the images or directories in the list above into the virtual A: drive. When running games, this is often enough to make the games work without any Insert Disk prompts. When running installers, it may be sufficient for the installer to complete without requesting disks. However, you may also find some installers get confused with this option, and will only proceed if you mount the individual disks using one of the previously-described options.
The CD-ROM menu is analgous to the Floppy menu and controls what shows up in the emulated game’s virtual CD-ROM drive, which is mapped to D:. This menu will only appear if you run DREAMM with a physical CD-ROM inserted, or if you run something contained in a CD-ROM image file.
As is the case with floppy disks, if you are using a physical CD-ROM drive, then you should just eject and insert new disks as needed.
If you are using CD images, however, DREAMM acts just like it does with floppy images: it will look for a sequence of CD-ROM images with sequential numbering, and will mount them all together as if they were one giant CD-ROM. In general, this works well, but if you need to manually control what appears in the virtual CD-ROM drive, you will need to use the CD-ROM menu.
Mount CD-ROM Disk Image brings up the file selection dialog to let you select a .iso, or .cue file to mount. Once you’ve selected a valid image, it will appear in the menu, and will be the only image mounted in the D: drive.
Mount Directory as CD-ROM brings up the folder selection dialog, where you can select a folder whose contents will be mapped to the virtual D: drive. This option is handy if you’ve copied the contents of your physical CD-ROMs to a directory on your local hard disk. As with the image mount option above, once the directory is selected, it will be the only thing mounted in the D: drive.
In addition to these menu items, you can also drag & drop .iso/.cue files from Explorer onto the game window. The images will be mounted and selected just as if you had selected them using the menu items described above.
Below the two mount options you will see a list of paths to images or directories that have been previously mounted. Selecting any one of these will be equivalent to inserting just that image/directory into the D: drive.
The final option, All Items Combined, mounts a combined set of all files contained in the images or directories in the list above into the virtual D: drive. When running games, this is often enough to make the games work without any Insert Disk prompts.
Next door to the Floppy menu is the Video menu with several controls for how video is presented. All of these options are remembered separately for each game, so if you using DREAMM to run several different titles, they can each have their own settings.
Smooth Graphics — This option, also controlled by the Alt+S key combination, turns on the EPX smoothing algorithm. This algorithm takes the original low resolution 320×200 graphics and upscales them to 640×400 using the EPX algorithm designed by Eric Johnston. EPX was originally developed at LucasArts for the MacOS releases of its early SCUMM games. Note that this option is not available for The Curse of Monkey Island, since it has high-resolution graphics to start with.
Correct Aspect Ratio — Select this option, or press Alt+A, to enable or disable aspect ratio correction. The original SCUMM games ran at a resolution of 320×200, but each pixel in that mode is somewhat taller than it is wide. Modern screens tend to have pixels that are close to square, so if we don’t account for the pixel shape of the original mode, the games come out looking squashed vertically. By default this option is on, and employs a high quality stretching effect to preserve the original look of the game. Note that this option is not available for The Curse of Monkey Island, since it uses a 640×480 graphics mode, which is the correct ratio to start with.
Integral Scaling — This option, which can be toggled by Alt+I, forces the game graphics to only scale by even amounts horizontally when it is enabled. This can help reduce unevenness in the final display, at the cost of shrinking the display area slightly. If you have Correct Aspect Ratio enabled, then there will still be some scaling in the vertical direction, though at some sizes (e.g., 1600×1200), you can achieve pixel-perfect scaling even with aspect ratio correction enabled.
Increase Size/Decrease Size — These options, mapped to shortcuts Alt+= and Alt+- respectively, increase or decrease the size of the game window to the nearest integral size. You can use these commands to snap your window size to an integral scaling factor regardless of the state of the Integral Scaling setting above.
Show/Hide Menu Bar — Selecting this, or pressing F12 on the keyboard, will toggle the visibility of the menu bar at the top of the screen. By default, the menu is visible in windowed mode, but hidden in full screen mode.
Toggle Fullscreen — Also controlled by the Alt+Enter key combination, this option switches between windowed mode and full screen mode.
At the bottom of the Video menu you will find one or more video mode options. Below is a complete list of options you might see.
Note: DREAMM only offers video options that it knows are supported by the game you are running. Later games ended support for CGA, Tandy, and EGA graphics, so those options may not be present.
Warning: Selecting the different video options below requires a restart of the game in order to have them take effect. Be sure you’ve saved your position before proceeding!
Hercules (2 color) — Green-on-black monochrome display using Hercules graphics. Only a few games support this (Maniac Mansion, Zak McKracken, and The Secret of Monkey Island).
CGA (4 color) — This is the classic ugly 4-color CGA mode. It was supported for most of the early games up through The Secret of Monkey Island.
Tandy/PCjr (16 color) — This is the famous “enhanced” CGA mode that the Tandy 1000 and IBM PCjr supported. Enabling this gets you full 320×200 16-color graphics in some games, though if you are running the early versions of Maniac Mansion or Zak McKracken you will find that a chunky 160×200 video mode was used instead.
EGA (16 color planar) — This mode enables 320×200 16-color graphics like the Tandy option, but draws them using the complicated EGA/VGA “planar” modes. Some games leveraged clever tricks in this mode to improve drawing speed, which you probably won’t notice on a modern machine. Some of the later 256-color games supported running in a “Super EGA” (confusingly called SEGA) mode, which ran high resolution 640×200 16-color graphics using dither patterns to fake 256 colors.
VGA/MCGA (256 color) — This is the nice, linear 320×200 video mode that is a staple of VGA games. All the SCUMM games support this mode, dating back to the original Maniac Mansion; however, if the game only has 16 color graphics, it will look the same as EGA or Tandy/PCjr in spite of having access to more colors.
Tip: Some early games allow for changing modes on the fly (try Shift+C for CGA, or Shift+E for EGA, etc). However, the game will only allow you to switch to modes that are compatible with the video option you’ve chosen. For example, if you select CGA in the Video menu, the game won’t let you switch to EGA no matter how hard you try.
The Audio menu presents all the configurable options for audio.
The SCUMM games date from a period where there was no standard mechanism of talking to audio cards (as there is today on modern operating systems), and so each game had to provide its own direct support for the best-sounding, most popular sound cards of the day. DREAMM allows you to choose from all of the supported sound options for each game, so you can experience the differences yourself.
Note: DREAMM only offers audio options are that supported by the game you are running. Early games did not have support for AdLib or later sound chips, and later games dropped support for less capable cards. In addition, some versions of games shipped without the necessary drivers for all the sound options; DREAMM checks for these drivers and does not offer the option if the driver is missing.
Warning: Selecting an audio option will prompt you to restart of the game in order to have it take effect. Be sure you’ve saved your position before proceeding!
Speaker — The option of last resort, the venerable PC speaker offers a single square wave output. It was supported in some capacity all the way until Indiana Jones and the Fate of Atlantis, though due to its shrill output, it is largely relegated to sound effects and only very occasional music. Speaker emulation is provided by a simple internal emulator.
Tandy/PCjr (SN76496) — Both the Tandy 1000 and IBM PCjr offered an upgraded sound system based on the Texas Instruments SN76496 chip. This chip offered 3 channels of square waves, plus a fourth channel of noise. Like the Speaker, it was mostly used for sound effects and occasional music, but its music is definitely a big improvement. SN76496 emulation is provided by an internal emulator.
GameBlaster (2 × SAA1099) — The Creative GameBlaster was the first big step up in audio quality. It used two SAA1099 chips, each of which supported 6 channels of square waves, for a total of 12 voices. For the few games that supported it, you can definitely hear a much richer sound, and the audio was passable enough for music throughout the game. SA1099 emulation is provided by an internal emulator.
AdLib (OPL) — The AdLib sound card was a popular first-generation sound card that offered FM-based sound, using Yamaha’s YM3812 sound chip. This offered 9 channels of highly configurable sounds, and allowed multiple different “instruments” for the first time. YM3812 emulation is provided by my own ymfm library.
SoundBlaster (OPL3) — While the SoundBlaster was primarily known for its digital sound support, it also sported AdLib compatibility via the same Yamaha YM3812. Later versions of the SoundBlaster upgraded to the YMF262, which supported stereo output and 18 channels of sound. While a few of the later SCUMM games had specific drivers to take advantage of the additional channels, most games treated this as basically an AdLib card. YMF262 emulation is provided by my own ymfm library.
Roland MT-32 — The Roland MT-32 was an external box that acted as a MIDI receiver, and came with a full complement of sampled instruments. Music was sent to the MT-32 via standard MIDI commands, with some special extensions available to support new sounds or modify existing ones. For many of the middle-to-late era SCUMM games, the MT-32 is the optimal way to hear the soundtracks. There are several options available for playback of MT-32 audio in DREAMM, but they are extensive enough to warrant their own section.
General MIDI — General MIDI is a standardized set of instruments that allowed multiple manufacturers the ability to produce compatible sound systems. Just before SCUMM hit the fully-digital age, General MIDI was the state of the art for music. Like the Roland MT-32, there are several ways to hear General MIDI music in DREAMM. Check out the next section for details.
Finally, the SoundBlaster Digital option at the bottom of the menu will appear if the game supports digital audio. Select or de-select this to prevent a virtual SoundBlaster from being exposed to the game.
Note: if you choose the SoundBlaster (OPL3) option for music, the SoundBlaster Digital setting will have no effect, as you can’t have the SoundBlaster music without the digital side. You can achieve a similar effect however by choosing AdLib (OPL) instead.
When you select either Roland MT-32 or General MIDI from the Audio menu, you will see a submenu with options for how you want DREAMM to play it back. These require a bit of explanation, as there is a lot of flexibility and power offered here.
Note: To enable several of these options, some support files may be needed. These support files should be copied either to the same directory as DREAMM.exe itself, or placed in the DREAMM directory in your Documents folder.
For the Roland MT-32 only, you have the option of using the munt MT-32 emulator, which does an excellent job of reproducing the original MT-32 audio. DREAMM ships with mt32emu-dreamm.dll, which is the munt library. But in order to activate the munt option in the menus, you will need to provide two ROM files from the original MT-32 system. These should be named MT32_CONTROL.ROM and MT32_PCM.ROM, and placed in one of the locations described above for support files. Once all the pieces are in place, you should see the Emulator: Munt (mt32emu) option appear. Select it for the best quality results when using Roland MT-32 sound.
The next option available to you is to use SoundFonts with DREAMM’s built-in SoundFont synthesizer. Sound fonts have a .sf2 extension, and should be copied into one of the locations described above for support files. Once there, DREAMM will detect and offer them as options for playback, both for Roland MT-32 and for General MIDI.
Note: SoundFonts come in all sorts of varieties, so not all SoundFonts are going to work well. Some are very demanding on the CPU, and some just plain don’t sound good in DREAMM. Experiment and share your favorites!
You will want to find a good General MIDI SoundFont for use in games that use General MIDI. DREAMM can also use General MIDI SoundFonts for Roland MT-32 playback by mapping the MT-32 instruments to General MIDI; this is imprecise however. You’ll almost certainly get better results by finding an MT-32 SoundFont, which will attempt to replicate the MT-32 instruments. DREAMM automatically detects whether you’ve configured a GMIDI or MT-32 SoundFont by examining the order of the instruments in the file.
While I can’t claim to have tested a huge variety of SoundFonts, I can at least recommend the fonts I’ve been using:
If you have positive experiences or recommendations of other fonts, feel free to let me know, and I’ll add them to the list!
Your final option (and the one DREAMM uses if you have provided no SoundFonts or MT-32 ROM files) is to use a MIDI port, which allows DREAMM to send MIDI commands to virtual or external MIDI playback hardware. These options should generally be available to everyone, even if you don’t have an external MIDI device, because Windows by default comes with the Microsoft GS Wavetable Synth, a virtual MIDI synthesizer that does a respectable job of playing back General MIDI.
In addition to the built-in Windows Wavetable Synth, you may also see options for other software and hardware synthesizers. For example, if you install the munt virtual MIDI driver in your system, it will show up as an entry in this menu; this is an alternative to setting up munt directly as described above, and works just as well. And if you have any MIDI-capable hardware, it should be listed as option as well.
For the General MIDI submenu, you will just see a simple list of devices. But in the Roland MT-32 submenu, each device will appear twice: once with (GMIDI Mode) and once with (MT-32 Mode).
For most general purpose devices, you’ll want to select the (GMIDI Mode) variant, which instructs DREAMM to translate the Roland MT-32 commands into General MIDI. However, if you have a real MT-32-compatible device connected to that port, select the MT-32 Mode option instead to send the raw commands in full fidelity to your device. (Yes, this actually works!)
DREAMM can also be run from the command line, if you’re a command line kind of person. The general format is:
dreamm.exe <path-to-game> [options...]
where:
Configuration data, including save states for games and installation directories, is stored in your Documents folder, under the DREAMM subdirectory. Within that directory you will find a config.txt with configuration data, plus an install folder where installed games live, and a gamedata folder where save states and other game data are stored.
#1 reason? It was fun. As you might have gathered, I’m into writing emulators. Working on MAME these days is way more work and stress than fun, so I thought it was time to move on to something new.
I was inspired after doing an interview with mixnmojo.com about my past Windows ports of the SCUMM games. I realized I was still salty after all these years about how they were handled, so I started thinking about how I could resurrect them, at least in spirit.
Thus was born DREAMM, a fully emulated solution specifically tailored to running the SCUMM games, with a friendly interface to make it approachable.
DREAMM gave me a chance to write a new, high-performance i386 emulator from scratch, plus I got to leverage my existing ymfm library and my personal SoundFont synthesizer engine. It was fun to figure out how to implement enough DOS and Windows system calls to fool the games into thinking they were running on the real thing. And I dusted off my classic Win32 programming skills to write a simple GUI frontend.
ScummVM is a modern reinterpretation of the original SPUTM game engine. It has a modern(-ish) interface, and runs lots and lots of games, but its fidelity to the original games is limited to the accuracy of the reverse engineering efforts, combined with how closely the ScummVM developers choose to mimic precise behaviors and details. In general, it does an excellent job at this, but may not achieve 100% fidelity to the original code, due to the fact that it is not actually running the original code.
DREAMM, on the other hand, runs the original SPUTM game engine code in an x86 emulator. This means that fidelity to the original depends largely on how accurately DREAMM emulates the well-documented x86 architecture. Further, it means that you get all the original “chrome” (such as the save/load screens) and behaviors of the original game. Finally, DREAMM provides a streamlined, simple user interface that is customized for running the SCUMM games.
In the end, for most people, the two are probably equivalent for running most games. But if you’d like to experience the games closer to their original form, complete with original bugs and user interface, DREAMM might be closer to what you want. Try them both!
DOSBox is a generic DOS emulator, and has a lot of similarities to DREAMM in how it is constructed. Both DOSBox and DREAMM emulate an x86 machine and all attached peripherals, and offer a fake implementation of DOS to service requests from the games.
But DREAMM takes this concept further by optimizing its experience and interface specifically around the SCUMM games. This means that mouse cursor control is integrated, video updates are done without tearing, and idle time is given back to your system. It also means that DREAMM will help you install your old games into its environment, and will handle all the configuration of video and sound devices.
Finally, DREAMM has the advantage of including a miniature 32-bit Windows implementation as well that allows it to run The Curse of Monkey Island, plus a miniature FM Towns layer that allows it to run the original FM Towns versions of the games that were released for that system!
Other emulators offer lots of (way too many in my opinion) different graphics smoothing and expansion options. For the time being, DREAMM has opted to keep things simple: you can choose to enable aspect ratio correction and/or the original LucasArts EPX graphics smoothing and that's about it.
Future versions may support a couple of additional options, but no, there are no plans to support SuperAdvHQEagleSAI5x or whatever.