AmigaGamer
Posts: 92
Joined: Sat Feb 01, 2014 9:02 pm

Ultima 7 on Raspbian guide

Wed May 14, 2014 12:49 pm

Running Ultima7 on Raspbian (Exult engine)

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 uses sourceforge for its official repository. It is available at http://sourceforge.net/p/exult/code/HEAD/tarball
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>
Change it to

Code: Select all

<use_oggs>
yes
</use_oggs>
<driver>
Disabled
</driver>
Save the config file.

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
Last edited by AmigaGamer on Wed Sep 14, 2016 2:37 pm, edited 3 times in total.

gregor3000
Posts: 114
Joined: Tue Nov 20, 2012 12:57 pm

Re: Ultima 7 on Raspbian guide

Thu May 15, 2014 11:12 am

the installer would probably run on Wine (which again runs only on PC not on RPi i believe) if you use Linux on PC.

Furthermore i believe GOG will move some titles to be available in linux as well so let's hope this step can be skipped in the future :)

Ultima series are good games so it's good there is a way to run them on Pi.

AmigaGamer
Posts: 92
Joined: Sat Feb 01, 2014 9:02 pm

Re: Ultima 7 on Raspbian guide

Thu May 15, 2014 6:05 pm

Gregor,

Theres actually a program for extracting GOG windows installers http://constexpr.org/innoextract/
Ill look if that will compile/work on raspberry soon and amend my post.

AmigaGamer
Posts: 92
Joined: Sat Feb 01, 2014 9:02 pm

Re: Ultima 7 on Raspbian guide

Mon Mar 30, 2015 7:26 pm

Few minor updates to the guide including the sourceforge snapshot link .
Im doing some further testing on general midi, but to be honest the OGG soundpacks do a really nice job and are a lot easier to work with than fluidsynth/timidity and soundfonts
Also tested working on raspberry pi 2

AmigaGamer
Posts: 92
Joined: Sat Feb 01, 2014 9:02 pm

Re: Ultima 7 on Raspbian guide

Wed Sep 14, 2016 2:39 pm

updated guide due to move from sourceforget to github.

currently testing new versions as its over 12 months since i revised this. SDL2 testing in progress so ill update the guide again soon .

Code: Select all

/configure --prefix=/home/pi/Exult --with-sdl=sdl2

Return to “Gaming”