Exult

Exult is a free software reimplementation of the Ultima VII game engine. It enables play of Ultima VII: The Black Gate and Ultima VII Part 2: Serpent Isle, and their corresponding expansion disks Forge of Virtue and Silver Seed, on modern machines. In order to play these games, data files from the original games are needed. Exult itself is distributed under GNU General Public License.

Exult is included in many free *nix distributions, such as Debian and FreeBSD.

History
Exult originally started as Ultima VII map viewer for the X Window System, but later, as the reverse engineering efforts became more fruitful in finding explanation on the Ultima VII scripting files, the project expanded to become a complete reimplementation of the Ultima VII runtime engine.

Before the project came to fruition, there was a demand for a new implementation of Ultima VII. Original Ultima VII executables started to show their age: they were rather difficult to get working on the systems of even their own era due to their memory management configuration, and in new versions of Windows, the DOS support in general is less and less viable. According to an anecdote by Serpent Isle project leader Bill Armintrout, Origin Systems has lost the source code to both "Serpent Isle" and its add-on "The Silver Seed", and Electronic Arts is not planning on any kind of rewrite for modern systems. The game, however, still has many fans who would like to play the game on their current systems.

Operating system support
Exult has, over time, grown to be almost exact reimplementation of Ultima VII engine, with some notable improvements. The system has been written in C++ with 32-bit architectures in mind. The current graphics code uses the SDL library, which has led to Exult being ported for Mac OS, Microsoft Windows, Sharp Zaurus, Microsoft Windows Mobile, and other operating systems aside from the original "free *NIX" platforms (such as FreeBSD and GNU/Linux). Formerly, Exult was also supported on BeOS. Unofficial ports exist for GP2X, Xbox, Symbian OS and the PlayStation Portable.

Enhancements over original games
Aside of portability and ability to run on modern operating systems, there are also number of enhancements over original games, such as


 * Start screen with game selector - only one executable is needed to play both games. The upcoming version also has the ability to add customised games to the menus, and also add mods as suboptions to each game. Mod savegame and game state data are managed separately from the data of the unmodded game.
 * unlimited number of savegame slots,
 * many usability fixes, including numerous new key shortcuts,
 * ability to use Serpent Isle portraits and character paper dolls in Black Gate,
 * optional statusbar that displays party member health,
 * In-game notebook (in upcoming version),
 * Support for increased display resolutions (not necessarily recommended, as it may lead to unexpected problems in game), with high-quality display scalers (2xSaI family and others),
 * ability to use digital samples instead of MIDI sounds, and digital music in Ogg Vorbis format instead of MIDI music (Hardware MIDI is supported in Win32; upcoming version also supports ALSA), and support for MIDI software synthesis (through TiMidity; Upcoming version also supports OPL3 emulation and FluidSynth).

Exult also includes a comprehensive cheat system, similar to the original Ultima VII.

Exult team members have contributed a large number of custom artwork for the game, primarily to make it possible to use all of the items in Black Gate in a consistent way with the Serpent Isle paper doll graphics.

The upcoming release may also include gameplay fixes to the game usecode itself; effort is underway to fix some of the most troublesome originally unimplemented things in Serpent Isle.

Exult Studio
Exult also optionally includes Exult Studio, which is slowly growing into a very complete and complex tool for modifying the game - even while the game is running. Also included are many command-line tools for manipulating game files.

The editor is built as a separate program that can interface with a running instance of Exult. Changing data files is done in Exult Studio window, while the game world - everything from terrain to objects, creatures and their schedules - can be changed directly through game view.

Also included are compiler, assembler and disassembler (the latter is not built by default) for the "usecode" script file. This file drives the actual game logic. There are also tools that can be used to 'rip' data sections from the file; this is particularly of interest for people who wish to change the name and dialogue sections of the game.