Good News

Even though I have failed trying to make U7 run under Windows, Dragon Baroque was more successful. You can find his u7win9x programs here.

Bad News

It is with sadness that I must admit defeat. I have tried to make U7 playable under Windows by removing the "Voodoo" memory accesses. I have succeeded in taking the voodoo out of U7, but unfortunately there appear to be many other incompatibilities, like the sort that make U8 impossible to play in Windows.

Unfortunately, I have neither the time nor the skill to try and fix all these little bugs and problems. I'd never see the end of them, not without the source code to U7, which the Ultima Dragons are trying to recover, unsuccessfully so far.

I'm very sorry that I have to give up this project. In the beginning it looked very promising, but now I don't see a way of continuing. It was worth a try, but you can't win every time...

If you're still interested, here's what I have done so far:

Summary

This patch removes the Voodoo from Ultima VII, and replaces the voodoo memory with something more compatible. At the moment this can be a file on (preferably) a ramdisk, or 2MB of XMS memory. The pre-compiled binaries are set for XMS memory. When the patch is done, Ultima VII will run in 100% real mode, except for the XMS access. Therefore it would run in a Windows DOS box, in Dosemu, or in real DOS, without caring about EMM386 or other problems.

Warning: The latest version is very likely to crash your system. Only try it if you really don't mind a crash.

So far, only the main program can be patched. This means that you don't get the main menu, or the intro, or the character creation. So you must already have a savegame that will be loaded when you start.

Note: This is a beta version. It does not work properly, yet. Even though it doesn't run out of memory anymore it still doesn't work and will probably crash, sometimes taking the system with it. All comments and suggestions are welcome, send them to Josef Drexler (aka Aquamarine Dragon).

Recent Changes

May 7
I've removed the "out of memory" bugs by emulating himem.sys for U7. Note that you still need himem.sys for u7run, because it needs XMS memory. However, now that it doesn't run out of memory anymore, U7 crashes randomly, and so far I haven't been able to determine the cause of these bugs.
April 12
XMS actually works. Tried to make the memory footprint smaller, but didn't succeed. Memory access now uses a 256 byte buffer to speed up string operations. Now it runs out of memory much much faster :)
April 11
Now the program uses 2MB XMS memory instead of a ram disk, which makes things much faster. See for yourself!

The old/ subdirectory contains older versions. Therefore, the appearance of a new subdirectory there means that there is a new version. I won't bother with actual version numbers until it is a bit more stable, instead consider the zip file date and time to be the version number.

The Readme file

U7Patch
-------

Copyright (C) 2000 by Josef Drexler <jdrexler@julian.uwo.ca>

Distributed under the terms of the GNU General Public License.  See the file
COPYING (included in the distribution) for more details.

Usage
-----

1)  Backup u7.exe ("copy u7.exe u7.bak")
2)  run u7patch
3)  Make sure the "TEMP" environment variable points to a ramdisk (hard disk
    is OK, but much slower), with at least 2MB available space
4)  run u7run
5)  Report bugs, problems etc. to jdrexler@julian.uwo.ca