As computers evolve, we risk losing classic games from the not-so-distant past. One of these, Ultima 7, an RPG from the early 1990's, still has a huge following, and many consider it to be one of the most immersive games ever produced. Exult is a project to recreate Ultima 7 for modern operating systems, using the game's original plot, data, and graphics files. - Quote from the project page. http://exult.sourceforge.net
In this post i will take you through the steps to get Ultima7 running on Raspberry PI using a recent 1.50 build of the Exult engine.
Exult engine is open source, however you will need a legal copy of Ultima 7 for the game data files. If you have an existing floppy or cd copy those files can be used. The game is also available to buy on GOG.com http://www.gog.com/game/ultima_7_complete configured to run in DOSBOX and includes all the expansions. I'm using the GOG version for this guide.
Warning - .You will need to install the game on a windows PC and transfer some folders to your PI, so you'll need some knowledge of how to transfer files from a windows PC to raspberry (not detailed in this guide). You will also need to edit a config file.
This guide is a work in progress. The steps here worked for me - but i plan to expand the guide with troubleshooting and further information (dependent on feedback/peoples requirements)
Througout the guide I'm using /home/pi as my $HOME directory.
INSTALLING REQUIRED FILES
First bring raspbian up to date. Im using the 2014-01-07 image as a base. Upgrade everything with :
sudo apt-get update && sudo apt-get upgrade
Exult uses SDL 1.2 , timidity for midi playback and/or OGGvorbis for digital music playback.
Install these with.
sudo apt-get install automake autoconf libtool libsdl1.2-dev zlib1g-dev timidity libvorbis0a libvorbisenc2 libvorbisfile3 libvorbis-dev
OBTAINING THE SOURCE.
Exult now uses github. the code is available at https://github.com/exult/exult
create a source code directory, eg /home/pi/exult-source, then within this directory run
git clone https://github.com/exult/exult.git
COMPILING
Now change to the source directory
cd /home/pi/exult-source
Generate a config file with,
./autogen.sh
Now configure the build. Im using --prefix to make everything install under /home/pi/exult. (If you don't use prefix the install will default to /usr/local/share/exult, making things more difficult when we come to install the gamedata)
./configure --prefix=/home/pi/Exult
make (takes around 3 hours on a pi 1)
make install
If all went well you, should now have a folder called Exult in your home directory.
Test this has built and installed correctly by running
/home/pi/exult/bin/exult
You should get a black screen saying Warning - Could not find the static data for Black gate or
Serpent isle. Press a key to return to the shell. This is good news, it means exults installed
correctly, so on to the next step...
GAMEDATA
As mentioned earlier, you need to transfer the game files to your PI.
Im using the GOG version on windows7 which installs to c:\Program files(x86)\gog.com\Ultima VII - Complete\
Here you will find folders called ULTIMA7 and SERPENT
Both of these folders need transferring to the PI. (I use winSCP to copy them across by SSH)
Place them in /home/pi/exult/share/exult
Rename the ULTIMA7 folder to blackgate
Rename the SERPENT folder to serpentisle
We should be ready to play, but the default audio/midi config will upset ALSA and crash exult , so one more stage to go...
AUDIO
First we need the digital music pack - "zipped all in one audio pack-for manual installation" from http://exult.sourceforge.net/download.php
Direct link
http://prdownloads.sourceforge.net/exul ... _audio.zip
Extract this to /home/pi/exult/share/exult/
Now you need to edit the config file with a text editor. It is a hidden file at /home/pi/.exult.cfg
Find the following
Code: Select all
<use_oggs>
no
</use_oggs>
<driver>
gm
</driver>
Code: Select all
<use_oggs>
yes
</use_oggs>
<driver>
Disabled
</driver>
At this point you should be ready to play ultima 7
run it with /home/pi/exult/bin/exult
-----
TROUBLESHOOTING - To do....
-------
Rev 2. initial post