Ultima 7 in Windows
A new and exciting era has dawned for fans of Ultima 7, parts 1 and 2. Anyone who has ever played - or tried to play - these immortal classics will know how frustrating and heartbreaking it can be to get them running, especially on a modern computer with a PCI sound card.
Those worries are now over. Thanks to a new and quite brilliant utility, Black Gate and Serpent Isle can be run effortlessly in Windows 95 or 98, with virtually any kind of sound card. With the latest addition (u7xp) it is also compatible with Windows 2000/XP.
Note - U7.DPMI was the author's original attempt to work this particular miracle; it was soon abandoned as the game speed is unbearably slow. However, U7.DPMI will run under Windows 2000/XP (whereas U7Run will not) and with some of the seriously fast processors currently available the performance just might be adequate. It is included for this reason.
This utility was devised by Dragon Baroque, and given to me to evaluate. After testing and fine tuning, it is now offered for general release. A further revision of the utility by George Hayward means that playing the game in Windows XP is at last a feasible proposition.
There is now a choice for Ultima 7 players. You can play the original game, as presented by Origin in 1992, in absolutely pristine condition. Or you can play a reconstructed version, which is almost identical. Follow the links below to sort out your preferences and operating system; you should then have the game running nicely.
I want to pay the original game.
I want to play a reconstruction.
The Original Method
Next question - what is your operating system?
But see the end of the page for an alternative method.
Windows 9x Directions
Using the program is very simple. Download the file U7Win9x.zip,
and unzip it into EITHER your Ultima7 OR Serpent Isle
directory. It will work equally well in either. Making sure that BG or SI are installed and configured
as usual, you activate the program by clicking on the U7Run.com
icon, OR the U7DPMI.com icon.
This program has been designed to run in conjunction
with certain editions only. Practically speaking, if you
have any CD-based edition of Black Gate or Serpent
Isle (These include the Forge of Virtue and Silver Seed
addons) you should be OK. Further details are available
in the readme file. If you have an earlier (floppy disk only)
edition of Black Gate, there is a patch available to upgrade
it to the full version; you can obtain it here. I am delighted to report that Dragon Baroque is now a
full member of the Ultima Dragons. Nevertheless, as was
the case originally, he does not have a web page of his
own; I am priveleged to continue to act as distributor
for this project. The latest update (version 1.20) comes with two files.
U7win9x.zip has the latest version of U7Run, as well as U7DPMI,
if you wish to try that. U7win9xs.zip contains all that U7win9x.zip
does, PLUS the essential "source code" files -
the three .asm files (U7RUN/U7VXD/U7DPMI), the three .LST
files and the generation batch U7GEN. Anyone who wishes
to study the source code, or to port it to Linux or any
other OS, is welcome to download this file. Recent experience of Resonator Dragon suggests that this patch can be
used with localised versions of Black Gate (in this case Die Schwarze Pforte).
The patch will work only with the
US version; however success has been reported if you replace all .exe files
in the local version with those from a US version - EXCEPT Install.exe. Having
done this, you can activate U7Run; it will find and work with the correct U7.com
file, and the "localised" data, which is found in the STATIC directory will be
intact. Disclaimer: Despite extremely encouraging
testing results, it cannot be guaranteed that this
program will work for all users and in all hardware
configurations. The author and I are willing to answer
queries and endeavour to solve any problems, but no other
assurance is given or implied. This program is used at
your own risk. Having problems with memory management? Try
looking here.
If you are running Windows ME, and don't quite have
enough conventional memory to run Serpent Isle, you may
benefit from this link.
It's a small patch which restores your ability to use the
config.sys and autoexec.bat files on bootup - ie, it
restores DOS functionality, which was hidden for some
reason. This program has the natural (and desirable) effect of
slowing the games considerably. If your processor is
within the 200 - 400 range the speed will probably be
"normal". It has been reported that Black Gate
still runs a bit too fast once processor speed gets over
600. It it still easy to slow the game down in this case
- use moslo
or turbo.
The other option is to try the DPMI.com file provided. It is also possible to run Ultima 7 within the OS/2 operating system.
There are a few requirements and warnings: Use DPMI for this; you have to
explicitly enable DPMI support, and you must NOT enable the DOS=HIGH and
DOS=UMB features. This will be sufficient to get Black Gate running;
performance will be slow but better than in Windows 2000. There is also help available if you have trouble
getting good MIDI sound from your PCI card. Dagon has put
together an excellent package - in one download you get: It must be said that, with modern sound cards, some of
the sounds in Ultima 7 are a bit strange. To the best of my
understanding, this relates to the differences in programming for MIDI
sounds in 1992 compared to today. There are a few things you can do
about this: (the following instructions apply to owners of the SB Live!)
Another handy hint: (contributed by
Shigeaki Kobayashi) Windows XP Directions
Windows XP has quite a different kernel structure, and U7Run will not work. Fortunately the utility has been
further modified. Directions are as follows:
Sound Issues
Black Gate and Serpent Isle, being DOS-based, were written before there was such a thing as an
"operating system" (ie, Windows). They are programmed to do everything themselves; included in this is the ability
to send sound data directly to a small number of sound cards, in the format that the card will understand. They can
handle a small range of cards, and will expect to find the card at an ISA-type address. To set up VDMSound:
It has come to light that U7xp will not work with Windows 2000. The patch has been modified, and I can now offer u72k.zip. Try this if you
are running Win 2K. The VDMSound instructions above still apply.
The source file for U7xp is also available for those who can make sense of it. Just click here.
Why does it run slowly?
A few people have asked this question; I'll try to answer as best I can. During the swirly screen (red or blue) at the start of the game, this happens about 5 million times! There is an alternate way you can play this and many other classic DOS games. An emulator called DOSBOX can be downloaded
from here. Briefly, this is a small program which, when run, completely emulates a
full DOS-based computer within your machine. This is done completely with software; the only requirement is that you have a fast processor - it
is pretty demanding.
The Reconstruction
A group of Ultima enthusiasts has spent many hundreds of hours examining and deconstructing the code and data files
of Ultima 7 (and Serpent Isle). With this information, a game engine has been built which will use the data from
your installation of U7, and will run the game for you. This will happen in any operating system, and with any sound card.
It saves the hassle of configuration and worrying about conventional memory constraints.
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.
Any questions, please email me.
If you look with Explorer or My Computer, you will see that the program
creates a couple of new files - U7Run.com and U7vxd.vxd.
Also there is now U7DPMI.com. There will also be a couple
of text files; a readme file with more detailed
instructions about the program, and a technical file for
those who are curious as to how this little bit of magic
works.
****Please read the readme.txt file. It is interesting,
well written, and answers many questions.****
Serpent Isle is a bit more difficult because of its increased conventional
memory requirement, but it can be done. If you are interested please
contact Resonator Dragon for details.
Click here to download the combined setup
utility.
![]()
Click here to download the SB Live soundbank
file.
![]()
Click here for the Ensoniq 8 Mb waveset and instructions.
![]()
Some people have had sound difficulties (no speech, SI
introduction freezing with a black screen at the castle
scene). With a SB Live! this can be overcome by going
into control panel/system etc and examining the settings
for Creative SB16 Emulation. There should be a box for
"Enable IRQ sharing with LPT." This should be
left UNCHECKED.
This remedy may work with other sound cards as well - it
is unverified at this stage. Any feedback will be
appreciated.
Modern sound cards create a problem. Typically, your sound card will be operating on an IRQ of 11, and there is no way
that Ultima 7 can handle this. Also, Windows XP does not allow direct communication between an application (game) and a sound card.
Conventional wisdom says that sound just won't work.
Fortunately there is a solution. Vlad Romanescu of the VDMSound project has come to the rescue. Rather than buying an
extra sound card to plug into your machine, you can use an emulator. VDMSound is just that - it performs the
function of an ISA sound card. For example, if you specify in the INSTALL program of U7 that you are using a Sound Blaster, at IRQ 7, VDMSound will
"catch" the data stream from the game, process it accordingly, and pass it to Windows. You then get the sound output
as it would have been.
Note: VDMSound will only work in Windows 200/NT/XP, not in 95/98/ME.
(Personal note - I have found that Black Gate performs perfectly with Sound Blaster selected. If I select Sound Blaster
in Serpent Isle, the introduction stalls, and I have to Alt-Tab out of it. If I hit ESC as the intro starts, it jumps to
the main game, which runs perfectly. Selecting Roland in Serpent Isle allows the intro to run perfectly. I won't
even try to explain that.....)
Ultima 7, in its natural state, exploits a "glitch" in the Intel architecture. Normally a DOS game (circa 1992 - before DOS extenders
such as DOS4GW came along) would have access to only 64 Kb of memory;
if you can trick the machine into resetting a descriptor as it boots up, you can achieve a DOS-based machine that can see and access 4 Mb of memory. This
is ideal for Ultima 7, and what it needs to run. Hence the tedious config.sys and autoexec.bat setup requirements that used to apply.
When Windows is running, this "glitch" does not exist. There is no way that U7 can access that amount of memory - therefore it can't run.
So how does it work? This is roughly what happens whenever the game tries to access memory (ie, make a Voodoo call):
The end result is a bit like reading a book that you don't actually have access to - if you write away to a friend, and tell him where
you're up to, he can write back and tell you what the next word is. If you are dedicated enough, you can read a whole book by getting one word at
a time in the mail.
Thanks to the processors now available, the mail service is pretty fast, and the game speed becomes acceptable. U7Run (the Win 95/98/ME utility) is
faster; game speed is quite OK. U7.DPMI is diabolical and unplayable. U7.xp is between the two - I find that on a 1.6 Gh Pentium M (which should
outperform a 2.4 Gh P4) the game is a bit jerky but acceptable. Also, when you get to an area where there is lots of scenery or things happening
(lots of memory accesses) you can expect a slowdown.
The Alternative
To run U7 (both versions) you will need to edit the dosbox configuration file; you can easily do this with Notepad. Towards the end of the
file you will find DOS-type entries - the result should look like this:
[dos]
# xms -- Enable XMS support.
# ems -- Enable EMS support.
xms=true
ems=false
This turns off ems, and U7 feels that the computer is properly set up for it. You will probably need to turn up the cycle rate (on my computer,
about 13000 works well). You then get an absolutely original rendition of U7.
Like any reconstruction, there may be small differences visible, and the purists may prefer to play the original game.
Hawever, any differences are minimal, and the game is faithful to the original. Also, when you tinker with something,
you have the opportunity to add stuff in. This version of the game can be run in different screen resolutions, and there
are additional "hot keys" to make life easier.
To play the game in this mode, look at the Exult page.
Follow the instructions here, download the appropriate file, unzip it to your Ultima7 or Serpent folder, and click on
Exult.exe to start the game.