OpenMW - the completely unofficial reimplementation of Morrowind
================================================================

OpenMW is an open source reimplementation of the Morrowind game
engine. For more information, see README.txt or

    http://openmw.snaptoad.com/




Installation from source
========================


Supported Unix platforms:
-------------------------

OpenMW has been tested for the most part on 32bit Ubuntu Linux
8.04. It should, however, also work on most other 32bit
distributions.

FreeBSD is also known to work with recent versions of GDC (the D
compiler), but you might need to rebuild some of the dependencies from
source yourself. (If you have done this and can give more specific
instructions, please let me know!)

64bit systems are NOT supported.

If you manage to build OpenMW on a platform not listed here, or want
to try, please let me know!



Dependencies:
-------------

Dependencies needed to build OpenMW:

OGRE 1.6.2         (3d engine)
OIS-1.0.0          (input system)
MyGUI 2.2.2        (GUI system for OGRE)
Bullet 2.74        (collision and physics library)
Monster 0.12       (scripting engine, included)
OpenAL             (3d sound system)
libavcodec,
  libavformat      (For MP3 playback)
gcc and g++        (C++ compiler)
GNU make           (build tool for C++ files)
DMD 1.036          (D compiler)
  or GDC 4.1.3     (alternative D compiler)

The above versions are the ones I have tested recently, but other
versions might work. OGRE, OpenAL and the other libraries have
dependencies of their own, so I recommend using an automated package
tool to install as many of these as possible. On Ubuntu, for example,
try typing:

sudo apt-get install libogre-dev libavcodec-dev libavformat-dev libois-dev build-essential g++ gdc

On Arch Linux, get the following packages from AUR:
ogre
mygui-svn
bullet-2.75
openal
ffmpeg
ois
dmd
libphobos
dsss

(On Arch you also need to change the Bullet libraries to
-llBulletDynamics -llBulletCollision -llLinearMath in dsss.conf, or
similarily in the Makefile if you prefer building with make.)

A note about OpenAL: The library found in most Linux distributions
(0.0.8 SI) is outdated. Some distributions are now changing to OpenAL
Soft, which has a less hardware-dependent implementation. If you
experience sound problems (like stuttering music), try switching to
OpenAL Soft.

Note to UBUNTU 8.10 users: There's a problem with Pulseaudio in this
Ubuntu version. If you find that sound doesn't work or you get error
messages related to sound, try this page:
http://idyllictux.wordpress.com/2008/10/29/alsa-instead-of-pulseaudio-for-ubuntu-810-intrepid-a-non-destructive-way/

libavcodec and libavformat are part of the FFmpeg package, which is
part of the 'mplayer' project. Note that some of the codecs might be
patent protected in your country or area.

If you want to install Ogre, Bullet, OpenAL, OIS or FFmpeg manually,
try:

OGRE:             http://ogre3d.org/
MyGUI:            http://www.ogre3d.org/wiki/index.php/MyGUI
OpenAL:           http://openal.org/
  Linux source:   http://kcat.strangesoft.net/openal.html
OIS:              http://sourceforge.net/projects/wgois/
FFmpeg:           http://ffmpeg.mplayerhq.hu/download.html
Bullet:           http://bulletphysics.com/
Monster:          Included with OpenMW.


Setting up Bullet
-----------------

Bullet is not yet included in most Linux distributions, and must
usually be compiled manually. Consult the documentation included with
Bullet for instructions on compiling.

After compiling, you should have the files libbulletdynamics.a,
libbulletcollision.a and libbulletmath.a. (Depending on build method,
you may end up with names like libLibBulletDynamics.a instead.) Copy
or link these to bullet/ in the openmw directory (and rename them to
the libbulletdynamics.a etc if necessary.)

Example:
cd openmw/bullet
ln -s ~/software/bullet-2.74/src/BulletCollision/libbulletcollision.a .

Next, create a link to the "src" directory in openmw/include/bullet/ .

Example:
cd openmw
mkdir -p include
cd include
ln -s ~/software/bullet-2.74/src bullet


Setting up MyGUI
----------------

Like Bullet, MyGUI is still too fresh to be prepackaged with the major
Linux distros. To make matters worse, there's not even a recent source
package. You'll need to get the source from svn (at
https://my-gui.svn.sourceforge.net/svnroot/my-gui/trunk ). Revisions
at around 1738 should work, but newer revisions are probably better.

Once you've compiled the sources, install normally using 'make
install' (check the MyGUI docs for any instructions), and the OpenMW
makefile should pick up its location automatically.


Choosing a D compiler
---------------------

The above apt-get command installs the GDC compiler. There are
currently two choices for the D compiler, DMD and GDC. DMD is the
"official" compiler and is updated more often, while GDC is a
completely open source front-end for GCC (the GNU compiler.) Both
should work equally well with OpenMW.

If you want to install GDC manually, go to
http://sourceforge.net/projects/dgcc

If you want to use DMD instead, it can be found at:
http://digitalmars.com/d/1.0/dmd-linux.html

Note that the DMD unstable branch (2.000 and up) will NOT currently
work with OpenMW. Use the stable branch (1.x) instead.

Also note that DMD is only available on 32 bit x86 Linux - other
operating systems or architectures will have to use GDC. Note however
that GDC might be unstable on these platforms as well, especially on
64 bit platforms.



Building:
---------

After installing all the dependencies, you can try running "make cpp"
first to see if the C++ parts compile. You may need to alter the
Makefile if you are using non-standard include paths, etc. If you have
DSSS installed (a D build tool), type:

dsss build

If you do NOT have DSSS, try using make

make all

You might need to edit the Makefile to match your setup. If you are
using DMD instead of GDC, try changing the compiler from "gdmd" to
"dmd" in the Makefile.

If all else fails, you can try the build script:

./build_openmw.sh

This build method is deprecated and only works with gdc.




Configuration
=============

Before you can run OpenMW, you have to help it find the Morrowind data
files. The 'openmw' program needs the files Morrowind.esm and
Morrowind.bsa, and the directories Sound/ and Music/ from your
"Morrowind\Data Files\" directory. By default it expects to find these
in the data/ directory. (This can be changed in openmw.ini)

I recommend creating a symbolic link to your original Morrowind
install. For example, if you have Morrowind installed in:

c:\Program Files\Bethesda Softworks\Morrowind\

and your windows c: drive is mounted on /media/hda1, then run the
following command:

ln -s "/media/hda1/Program Files/Bethesda Softworks/Morrowind/Data Files/" data

Also, if you have OGRE installed in a non-standard directory (ie. NOT
in /usr/lib/OGRE), you have to change the PluginFolder in the file
plugins.cfg.linux.

The first time you run openmw you will be asked to set screen
resolution and other graphics settings. You can bring this dialogue up
at any time with the -oc command line switch. I don't recommend using
fullscreen mode yet, since it might mess up your screen and input
settings if the program crashes.




Running OpenMW
==============

If Azura is with you and all the stars and planets are aligned in your
favor, you should now be able to run OpenMW using the program called
'openmw'.

Write openmw -h to see a list of options.

Running without parameters should bring you into the cave called Assu,
or the last cell loaded. Move around with WASD (or arrow keys), change
physics mode (walking, flying, ghost) with 't', exit with 'q' or
escape.

To load another cell, specify the cell name on the command line. Use
the 'esmtool' program to get a list of cells. Note that you must use
quotation marks "" if the cell name contains spaces or other weird
characters.

Enjoy! ;-)
