Voodoo Memory Manager

From Ultima Codex
Jump to: navigation, search
Voodoo Memory Management System (Ultima VII credits)
Voodoo Memory Manager was the part of Ultima VII engine that handled memory access. It was required because ordinary MS-DOS could only access the 640k 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 quite 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 (for example, DOS can't really make real use of USB devices.)

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 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 dpmi=false.