Ultima 7 for Beginners

Welcome to my Ultima 7 For Beginners page. This page was originally a reference work for those trying to run Ultima 7 in Windows 95/98. Since the arrival of U7Run however, most of the information here is outdated. I have kept the page, and reorganised it into sections, for those who had no luck with U7Run or Exult, or for anyone who needs to know a bit more about the DOS workings of computers and how they apply to Ultima 7 and 8. The page needs to be read in context - I haven't updated it in a looooooonng time! The problems detailed here are real; however there are new solutions, as outlined on my Ultima 7 in Windows page.


INTRODUCTION

This is an attempt to explain the difficulties of running Ultima 7 on Windows 95/98 and modern high speed computers. It arose out of the observation that despite the many good resources available on the Net, many people were still having trouble getting this excellent game to run.

This page makes certain assumptions: that you have Ultima 7, Black Gate (or Ultima 7 part 2, Serpent Isle); that you have a Pentium or similar computer, and that you are running Windows 95 (or maybe 98) as the operating system. It also assumes that you know little about DOS and its intricacies.

I am not a computer guru or a programmer; accordingly the language in this page is fairly non-technical. I am an Ultima fan who has battled with computers since the days of DOS version 5.0, and seeks to help other enthusiasts. I therefore make no warranty as to the accuracy of anything here; if anyone sees anything that is incorrect please notify me and I will correct it.

A SHORT HISTORY OF DOS

DOS is the Disk Operating System of an IBM-compatible computer. It has progressed through several versions, is mechanical, text-based, and somewhat difficult to use. When Ultima 7 was written this was the universal operating system. Background information: In the earliest days of computing, computers had 640 Kb of memory - this is called "conventional" memory. The basic DOS operating system could "address" this memory quite OK. As programs grew in complexity, a need arose for more memory (RAM) - your computer may well have as much as 256 Mb or more of RAM. However, DOS of itself cannot recognise this memory - a little set of instructions had to be written, which is loaded into the computer's memory at startup, and which tells the computer that there is actually more memory "upstairs". These instructions are contained in a system file called HIMEM. (Himem.sys) Without this file the computer cannot access "extended" memory.

There is another memory management system available to computers. Some programs find it necessary to access higher memory "as if it were conventional memory". This is called "expanded memory". This is done with a program called EMM386 - when this set of instructions is loaded into memory, higher memory can be used in this fashion. Not only that, but "device drivers" (sets of instructions, eg mouse drivers, CD-ROM drivers) can be loaded into "upper" memory - that part of memory above 640 Kb and below 1 Mb. This frees up "conventional" memory, which can be important for certain programs.

There are thus three types of memory: conventional (below 640 Kb) upper (above 640 Kb) and extended (above 1 Mb).

When a computer starts up, it first checks the instructions in the Configuration file. This is a System file, which tells the computer what drivers to load etc. It is located in the root directory of the C drive, and is called, appropriately, Config.sys. Next, the computer processes a batch file (a simple list of instructions) which can load further drivers, set up sound card settings and the like. This file Automatically executes on startup, and is called, with stunning originality, Autoexec.bat. These two files are the "startup" files, and are essential for operation. Prior to Windows 95, a computer user would have to spend a fair bit of time revising and modifying the startup files to suit the programs being run.

Ultima 7 is a very demanding game in terms of memory. It only requires about 2 Mb of RAM (so most of your 256 Mb is superfluous) but you MUST have 561,144 bytes of conventional (or "downstairs") memory available (or about 548 Kb). This means that you can load into memory very few device drivers.

A further complication is that Ultima 7 comes with its own memory manager, called Voodoo. This is totally and completely incompatible with EMM386 - you CANNOT run the two together. So using EMM386 to shift device drivers to upper memory is out of the question. If you have EMM386 present you will likely get the message "Something has put your computer into virtual 8086 mode - remove the offending software before continuing."

WINDOWS 95 AND WHY IT IS DIFFERENT

Windows, in its original form, was a software program which sat on top of DOS and transformed this ugly, text-based interface into a nice, graphical point-and-click environment. To run Windows adequately you had to ensure the appropriate drivers were loaded in the startup files. You also had the choice of modifying the files at will to run other programs.

Windows 95 integrated DOS and the graphical interface - suddenly everything is automatic. (no choices to make). If you access your config.sys and autoexec.bat files (eg with Notepad) you will see that they are (probably) empty. This is exactly as it should be - unlike earlier versions of DOS, Windows does not really need to be told what to do, or which drivers to load. If left completely to its own devices, it will automatically load all the drivers it requires (including HIMEM.SYS and the Windows 95 equivalent of EMM386) and the whole bit will be done for you. If you need to tell Windows something - like initialising instructions for a sound card - the config.sys and autoexec files are there for that purpose. To make matters worse, Windows ME has gone one step further towards total automation - the config.sys and autoexec.bat files are there, but they are totally ignored on startup - it's a waste of time trying to use them. This makes adjusting things in Windows ME somewhat more difficult.

Nobody however told Windows 95/98/ME about the need to keep large amounts of conventional memory free, or refrain from loading EMM386-type utilities - most programs tolerate or require EMM386. Therefore it isn't done, and you can't run Ultima 7 in the Windows configuration - even if you Restart in MS-Dos Mode. It is trying to achieve enough conventional memory without using EMM386 that causes all the grief and frustration.

SOUND CARD STUFF

Sound is also a problem. The game itself requires you to select your sound card, and specify the IO address and IRQ settings. (What the hell are they you ask..........)

OK, some basics on sound cards. In 1992 most people, if they had a card, had a Sound Blaster or similar. (It is still the industry standard today I believe - most cards are SB compatible). The basic Input/Output address is usually A220, so that's no problem. When the computer needs to talk to the card (or vice versa) they use a dedicated channel called the Interrupt Request line. Computers have a certain number of these "lines"; the rule is that each line can only do one thing. A sound card can also have Direct Memory Access - High and Low. This uses two lines; it seems to be OK if the High DMA line is the same as the IRQ line.To set up your sound card:

Find it in START - SETTINGS - CONTROL PANEL - SYSTEM - DEVICE MANAGER - SOUND, VIDEO AND GAME CONTROLLERS - (YOUR SOUND CARD). Double-click to open it up, and select RESOURCES.

The basic input/output range (highlighted) should be 0220 - this is OK. Next look for the Interrupt Request and Direct Memory Access. If the IRQ is not 3, 5 or 7 try to change it to one of these numbers. You will be told if there are any conflicts with other devices.

Next, install Ultima 7. If you install it from the CD, you are then given a setup option. You have to choose No card, SB, SB Pro or Ad Lib. Unless you have a fancy card, try selecting Sound Blaster. Next screen - select 220 for the I/O. Next screen - select the IRQ number that you have used for your card.

In general, a sound card needs "drivers" - ie sets of instructions - so the computer can talk to it and it will work OK. I get the impression that Ultima 7 came with built-in drivers, albeit for a very limited number of cards (There weren't many around then anyway...) If your card IS or CAN PRETEND TO BE a 16-bit ISA Sound Blaster, your worries are over. You don't need DOS drivers; the game handles it.

The above is true for ISA cards - most modern computers use PCI cards. What is the difference?

First, the obvious. Lift the lid on your computer - you will see different slots. The ISA slots are the larger dark brown ones, with bigger notches. The PCI ones are the smaller cream ones, with much smaller notches.

PCI cards are considered better, as the communication between card and processor is much faster, giving better quality sound, and suiting high speed and multimedia intensive applications. However, DOS games are programmed to talk to ISA cards, and they have expectations as to where to find the card (A220, I5 etc...). (As a side note, your typical PCI card will be running on IRQ 11 or something similar - DOS just cannot understand this kind of number). To cope with this, most PCI cards have a "legacy" device - they can emulate an ISA card, and with a bit of electronic wizardry they can convince the game that there really is an ISA card there, at IRQ 7 for instance. To do this, a memory manager usually has to be resident, and this manager is - you guessed it - EMM386. Without this, there is no emulation, and no sound. With it, and Ultima 7 doesn't run anyway. This is the classical Catch-22 situation, and there is no known answer - if you have a Creative PCI 128 or Sound Blaster Live, they are just incompatible with the game. It is possible to buy an old 16-bit sound card (US$10 or $20) and drop it into a spare ISA slot in your computer. For tips on running two sound cards together, click here.
Note - if you have a PCI card, use the above method to locate your card; you should see two cards listed. Look at the DOS resources of the legacy device - these are the ones that are relevant.

There are very few PCI cards known to work with Ultima 7. Doug the Eagle Dragon has an excellent page detailing all cards currently known to work with Ultima 7; check it out here.

The AWE 64 by Creative is difficult to configure for Ultima 7, but it can be done. I have no experience with this, but an excellent review can be found on Contrapuntal Dragon's page.

If your sound card just won't cooperate, you do have the option of selecting "no sound card" in the game setup. This is not quite as satisfying, but it might make the difference between success and failure in running the game at all.

Origin also has a page offering support for those who have "non-standard" sound cards - you may be able to sort out some of your problems here

SPEED CONTROL

Speed is a problem noticed by most who do get the game running sucessfully. The game was written for a 386, running at a minimum of 16 Mhz. (Yep, true!). In 1992 it was obviously not foreseen that machines would be running much faster in future years, and the game speed is geared to the processor speed. There is no "frame limiter" to prevent the game from running insanely fast as the processor speed increases. Running it on a Pentium 200 or higher is not a fun experience!

To overcome this problem, I recommend using moslo. This is a simple program - you can fetch moslo from here. It is a self-extracting file; when you click to run it, it will unpack into moslo.com plus a little text file that tells you how it works. Put simply, it will run the program at any desired percentage of its normal speed.

If you have no joy with Mo'slo, you may wish to try another slowdown utility. Lost Dragon has a whole page of them.

MOUSE DRIVERS

You will need a DOS mouse driver to play the game; the last line of the autoexec.bat file loads it into memory. I can offer three drivers - click on the disk icons below to download one.

Cutemouse version 1.8. A very small mouse driver, thanks to Nagy Daniel. Download the latest version (which takes up about 3.5 Kb) and find out all about Cutemouse from the Cutemouse official page.

The driver I have used for a long time. Reliable, but a bit bigger.

A small and reliable driver (courtesy of Obtuse Dragon). Only takes 11 Kb of conventional memory; I now use it with Serpent Isle, and can load Smartdrive as well.

SHORTCUT SETUP

(This is what worked for me)
  1. Put Moslo.com in the Ultima 7 directory.
  2. Find Moslo.com with Explorer - drag it to the desktop to create a shortcut.
  3. Rename the shortcut (Right-click - rename) to Ultima 7 or whatever you desire.
  4. Right-click on the shortcut; select Properties.
  5. Click Program.
  6. You will see "Cmd Line". This should be changed to C:\ULTIMA7\MOSLO.COM /50 ULTIMA7.COM
  7. The working directory stays as C:\ULTIMA7..
  8. Next, click the "Advanced" button.
  9. Check the "MSDos Mode" box.
  10. Uncheck the "Warn before entering MSDos Mode" box.
  11. Check the button to specify a new CONFIG.SYS and AUTOEXEC.BAT files.

You now get to write your own files (like in the old days!). I will list the commands for the files together with a brief explanation of what they do.
DOS=NOAUTO (Prevents Windows loading all those fancy drivers; it will only do what you tell it from now on)
DOS=HIGH (A fair bit of the operating system can be thrown upstairs, above the 1 Mb mark. This frees up conventional memory)
DEVICE=C:\WINDOWS\HIMEM.SYS (Gives access to extended memory)
FILES=30 (Specifies how many files the system can have open at one time)
BUFFERS=30 (Creates small areas in memory for rapid transfer of data to & from hard drive; 25 is the recommended number)

(IMPORTANT NOTE: In the original documentation which came with Black Gate and Serpent Isle, it recommended FILES=25 and BUFFERS=25. I have therefore recommended these values; however I have also found trouble with getting the sound to work. The simple expedient of increasing the values to 30 solved these problems beautifully, and there are no memory problems. I recommend using these values if you are having sound problems.)

AUTOEXEC.BAT
You will notice that this file already has a few lines in it. These simply set up the little DOS prompt, make arrangements for temporary files, tell the computer how to restart after Ultima 7 finishes, and where to look for commands. They take no memory and can be left in. A couple of lines should be added, and the file should look like this:

SET TEMP=C:\WINDOWS\TEMP
SET PROMPT=$p$g
SET winbootdir=C:\WINDOWS
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
SET BLASTER=A220 I5 D1 H5 P330 T6
C:\(Your mouse driver).COM
There is an extra (optional) line you may insert in the autoexec.bat file, as follows:
C:\WINDOWS\SMARTDRV.EXE 1024

This sets aside a "cache" of 1 Mb in extended memory, for rapid transfer of information to & from the hard drive. It doesn't affect game play at all, but it does make loading and saving a lot faster. The requisite driver for this utility does take up a bit of conventional memory - leave it out if you have problems meeting the memory requirements.

The "Set Blaster" statement merely tells the computer that there is in fact a sound card present, and what lines to use when talking to it. Make sure that you use the same numbers as in system setup and game installation - A = I/O address; I = IRQ no; D = DMA no (low); H = DMA no (high); P = midi input/output address, T = card type.

BOOT DISK SETUP

Some people may find it less stressful to use a boot disk to play Ultima 7. The principles are the same as above; with Mo'slo in the Ultima 7 directory proceed as follows:

Make a system disk by either:

  1. Start - run - type Format a: /s
  2. In Explorer, right-click the a drive icon - select Format, and Transfer System files.

You now have a Win 95 startup disk.

Open Notepad; make two new files as follows and save them to the A: drive

DOS=NOAUTO
DOS=HIGH
DEVICE=C:\WINDOWS\HIMEM.SYS
FILES=30
BUFFERS=30

Save this as Config.sys

SET TEMP=C:\WINDOWS\TEMP
SET PROMPT=$p$g
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
SET BLASTER=A220 I5 D1 H5 P330 T6
(Remember that these numbers must match your system)
C:\(Your mouse driver).COM
C:
CD\ULTIMA7
MOSLO.COM /50 ULTIMA7.COM

Save this as Autoexec.bat

Put the floppy in the A: drive and reboot your computer.

SERPENT ISLE SETUP

This is similar to Black Gate in many respects. It also uses Voodoo, so memory management with EMM386 is out; also memory requirements are even tighter (you need 573 Kb conventional memory free). The only good news is that this game does have a frame limiter, so Mo'slo is not necessary. You can find SERPENT.COM, drag it to the desktop, and proceed as above to create a shortcut. If you are using a boot disk, just replace the final two lines above with:

CD\SERPENT
SERPENT

MEMORY MANAGEMENT ISSUES

If you are using any sort of disk compression utility (Doublespace, Drivespace etc) you should be aware that in order to read and make sense of the compressed disk, the computer needs a driver (set of instructions) loaded. This loads into conventional memory, and usually consumes just enough memory so that it is impossible to run Serpent Isle. To get around this I recommend that you do as follows:

  1. Change the size of the compressed portion - ensure that there is at least 30 Mb uncompressed disk space.
  2. Place Serpent Isle on this uncompressed portion.
  3. Check your config.sys and autoexec.bat files (either shortcut or boot disk) and delete ANY reference to DBLSPACE.BIN, DRVSPACE.BIN or any similar file.
  4. If you are using a boot disk (probably preferred) look for a hidden file on the floppy called DRVSPACE.BIN or DBLESPACE.BIN. Delete this file. (Do not delete it from your C drive!)

Now when you boot up you will not be loading the compression utility. Without it you cannot access the compressed portion of the drive, but you don't want to anyway, and with the utility present it's almost certain that SI will not have enough memory to run.

Some users have reported that their computers (especially with Windows 98) seem to be trying to load Drivespace automatically, even if the hard drive is not compressed. This will take up conventional memory, and prevent Serpent Isle from running. If you have no need for Drivespace, here is the remedy:

  1. Set Folder options to "Show all files"
  2. Find a file on the root directory of the C drive called Msdos.sys
  3. Right-click on this and select Properties.
  4. You will notice it is a "read-only" file. Deselect this option for now so you can edit the file.
  5. Open this file with Notepad.
  6. You will note there is a heading [Options], with a few lines under it, like BootMulti=1, BootGUI=1. In this section, enter the following two lines:
    DblSpace=0
    DrvSpace=0
  7. Save the file; look at Properties again and re-enable the "read-only" option.

You have now instructed your computer not to load Drivespace. Other Issues:

If you are lacking in conventional memory, there are a few things you can do. Firstly, look at my Memory Management page This gives some hints about conventional memory management and how you can control it.

Useful utilities for this include:

SHORTCUT STARTUP METHOD

There is another way of starting up the game, if you wish to avoid boot disks and shortcuts - proceed as follows. Firstly, in Notepad, make up a file with the following lines:

@ECHO OFF
SET BLASTER=(YOUR APPROPRIATE NUMBERS)
C:\(Your mouse driver).COM
CD\ULTIMA7
MOSLO.COM /50 ULTIMA7.COM

Save this on the C drive, as U7.bat. The .bat extension marks it as a batch file, and therefore callable by the computer.
You then start the computer up from cold; as it is powering up press F8 - you will get the Windows 95/98 Startup menu.
Select Step by Step Confirmation.
From this point you say "No" to everything EXCEPT    DEVICE=C:\WINDOWS\HIMEM.SYS.
Having gone through the startup questions, you eventually get to the C:> prompt - this is a very skinny startup configuration. If you now type U7, the computer will execute all the above commands, and will launch the game.

(By the way, it seems to work better if you have a couple of dummy lines - like @ECHO OFF and REM [MOUSE] in your autoexec.bat file - the main one on the C: drive. For some reason the computer seems to be able to find extended memory better if you bypass this file with it's "nothing" lines.)

TROUBLESHOOTING

If the sound doesn't work - this is most likely a IRQ problem. I have no magic solution; it just involves fiddling to find what does work. (For instance if IRQ 5 is no good, try 7. Remember that you have to change it in 3 places - system settings, autoexec.bat and game installation. (Or try Files/Buffers =30, as above)

To change the sound settings in the game, run START - PROGRAMS - MS-DOS PROMPT. This gets you a black screen with C:\WINDOWS at the top. Type CD\ULTIMA7, then type INSTALL. After doing this type EXIT to return to Windows.

SHAKY MONITOR: A number of people have this problem. Typically, after (finally) getting Ultima 7 running, you see the opening scene, the Avatar starts talking to Iolo, then along comes an earthquake and the picture falls off the bottom of the monitor. This usually means that your video card is based on a Riva 128 chip, which doesn't handle this bit very well. It is easily fixable - download and run a little program called qfix from here.

Any more suggestions are always welcome!

Copyright: This page is my own work, but I freely acknowledge the excellent material on the many sites to which I have created links, as well as the input and expertise of many Dragons who helped make this site what it is. Anybody is free to use any of the material on this page for any purpose. (As long as you don't republish it and call it your own!)

After you have got Ultima 7 running, if you would like to find out more about the secrets of this fascinating game, I can recommend a visit to Iolo's Lute.

If you have any suggestions, criticism, correction or feedback, please email me.


This Ring is owned
by
Kurse Dragon

This cool site is owned
by
Gaseous Dragon






Stones - The Ultima 7 Version: copyright Origin Systems Inc.

Back To Top