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.
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.
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 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.
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. 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
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.
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. (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 SET TEMP=C:\WINDOWS\TEMP 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.
Make a system disk by either:
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 Save this as Config.sys
SET TEMP=C:\WINDOWS\TEMP Save this as Autoexec.bat
Put the floppy in the A: drive and reboot your
computer.
CD\SERPENT 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:
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:
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: What you get is a little driver (umbpci.sys) and a
Word document telling you all about it. Briefly, this
is an extension of Himem.sys, and the latest version
is reputedly much easier to use.
Your autoexec.bat is much the same, except that
you can LH (or LOAD HIGH) in front of the mouse
driver, (eg LH C:\MOUSE.COM) and if you have sound
card drivers you simply have to put in, just LH them
as well. I have tried this utility; it gives over 600
Kb conventional memory free. (Thanks to Quo Dragon
and Werner for pointing this out - it was written by Uwe Sieber.
Thanks! @ECHO OFF Save this on the C drive, as U7.bat. The .bat
extension marks it as a batch file, and therefore
callable by the computer. (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.)
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.
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.
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.
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.
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..........)
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.
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!
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)
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)
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 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
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:
DOS=HIGH
DEVICE=C:\WINDOWS\HIMEM.SYS
FILES=30
BUFFERS=30
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
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:
SERPENT
MEMORY MANAGEMENT ISSUES
DblSpace=0
DrvSpace=0
This book has lots of helpful information by Obtuse
Dragon, including how to set up config.sys and
autoexec.bat files, as well as many helpful hints on memory management.
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:
SET BLASTER=(YOUR APPROPRIATE NUMBERS)
C:\(Your mouse driver).COM
CD\ULTIMA7
MOSLO.COM /50 ULTIMA7.COM
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.
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)
This Ring is
owned
by Kurse
Dragon
This cool site is owned
by
Gaseous Dragon