Voodoo Memory Manager

From Ultima Codex
Jump to navigation Jump to search
Voodoo memory management system (Ultima VII credits)

The Voodoo Memory Manager was the part of Ultima VII and Ultima VII Part Two engine that handled memory access.

Description[edit]

This memory manager was required because ordinary MS-DOS could only access the 640kb base memory without help. When 32-bit operating systems came to the PC and protected mode became the norm, the need for such extenders dissipated. At the time of Ultima VII's release, however, there were several methods to access the rest of the memory reserves of the computer, while using the 16-bit memory models.

Most of the later "memory managers" used protected mode on top of MS-DOS; however, Voodoo was based on rarer "unreal mode" which allowed a flat memory space for DOS programs.

The failing of Voodoo Memory Manager was that it was difficult to set up; in the late MS-DOS games era, users generally needed separate boot settings or even boot floppies to play, to get a nonstandard XMS/EMS settings resolved and enough free base memory to run the game. Later on, the problem was that unreal mode was completely incompatible with Windows 95 and later, and newer computer hardware is ill-suited to run DOS anyway.

Voodoo Solutions[edit]

If playing Ultima VII on real DOS 6.0 or later, setting up a boot menu makes running it pretty trivial, while keeping compatibility with other programs and no need for separate boot disks. See Setting up DOS boot menu for details.

Today there are three ways to bypass the whole problem with Voodoo:

  • Exult does not rely on original Ultima VII program, and has been written ground up to support modern systems.
  • Under Windows 9x, a patch can be used that helps with Voodoo compatibility somewhat.
  • The DOSBox emulator can be easily set up in a way that will allow Ultima VII to run without any problems. Specifically, the required DOSBox config memory settings for Ultima VII are as follows: Under [dosbox] section, memsize=4 (can be higher, obviously!), and under [dos] section, xms=true, ems=false and (if needed) dpmi=false.

Trivia[edit]

  • Paul Meyer, one of the programmers of Ultima VII, remembered a very telling incident a few years after the game was completed:
    "A few years and a couple of jobs later, when Windows 95 was in early beta, I was part of a program where MS engineers working on it met with developers of entertainment and animation software. The engineer we met proudly proclaimed their goal that 100% of DOS games would run under Windows 95 by the time it shipped - "DOS Mode" would not be necessary. I sadly had to burst her bubble by explaining the "voodoo memory manager". She had a hard time believing it - I guess she just hadn't realized just how hard game programmers worked to squeeze performance out of machines in the bad old days."