Fixed DMD incompatibility. Worked on readmes

git-svn-id: https://openmw.svn.sourceforge.net/svnroot/openmw/trunk@57 ea6a568a-9f4f-0410-981a-c910a81bb256
actorid
nkorslund 16 years ago
parent 6ba4040f08
commit 9f1a247312

@ -21,10 +21,11 @@ OpenMW has been tested for the most part on 32bit Ubuntu Linux
distributions. distributions.
FreeBSD is also known to work with recent versions of GDC (the D FreeBSD is also known to work with recent versions of GDC (the D
compiler), but you might need to rebuild most of the dependencies from compiler), but you might need to rebuild some of the dependencies from
source yourself. source yourself. (If you have done this and can give more specific
instructions, please let me know!)
64bit Linux is specifically known NOT to work. 64bit systems are NOT supported.
If you manage to build OpenMW on a platform not listed here, or want If you manage to build OpenMW on a platform not listed here, or want
to try, please let me know! to try, please let me know!
@ -38,15 +39,15 @@ Dependencies needed to build OpenMW:
OGRE 1.4.5 (3d engine) OGRE 1.4.5 (3d engine)
OIS-1.0.0 (input system) OIS-1.0.0 (input system)
Bullet 2.72 (collision and physics library)
OpenAL (3d sound system) OpenAL (3d sound system)
libavcodec, libavcodec,
libavformat (For MP3 playback) libavformat (For MP3 playback)
gcc and g++ (C++ compiler) gcc and g++ (C++ compiler)
GNU make (build tool for C++ files) GNU make (build tool for C++ files)
DMD 1.031 (D compiler) DMD 1.036 (D compiler)
or GDC 4.1.3 (alternative D compiler) or GDC 4.1.3 (alternative D compiler)
The above versions are the ones I have tested recently, but other The above versions are the ones I have tested recently, but other
versions might work. OGRE, OpenAL and the other libraries have versions might work. OGRE, OpenAL and the other libraries have
dependencies of their own, so I recommend using an automated package dependencies of their own, so I recommend using an automated package
@ -56,22 +57,32 @@ try typing:
sudo apt-get install libogre-dev libavcodec-dev libavformat-dev libois-dev build-essential g++ gdc sudo apt-get install libogre-dev libavcodec-dev libavformat-dev libois-dev build-essential g++ gdc
A note about OpenAL: The library found in most Linux distributions A note about OpenAL: The library found in most Linux distributions
(0.0.8 SI) is out of date. Some distributions are now changing to (0.0.8 SI) is outdated. Some distributions are now changing to OpenAL
OpenAL Soft, which is a newer and less hardware-dependent Soft, which has a less hardware-dependent implementation. If you
implementation. If you experience sound problems (like stuttering experience sound problems (like stuttering music), try switching to
music), try switching to OpenAL Soft. OpenAL Soft.
libavcodec and libavformat are part of the FFmpeg package, which is libavcodec and libavformat are part of the FFmpeg package, which is
part of the 'mplayer' project. Note that some of the codecs might be part of the 'mplayer' project. Note that some of the codecs might be
patent protected in your country or area. patent protected in your country or area.
If you want to install Ogre, OpenAL, OIS or FFmpeg manually, try: If you want to install Ogre, Bullet, OpenAL, OIS or FFmpeg manually,
try:
OGRE: http://ogre3d.org/ OGRE: http://ogre3d.org/
OpenAL: http://openal.org/ OpenAL: http://openal.org/
Linux source: http://kcat.strangesoft.net/openal.html Linux source: http://kcat.strangesoft.net/openal.html
OIS: http://sourceforge.net/projects/wgois/ OIS: http://sourceforge.net/projects/wgois/
FFmpeg: http://ffmpeg.mplayerhq.hu/download.html FFmpeg: http://ffmpeg.mplayerhq.hu/download.html
Bullet: (fill in here)
Setting up Bullet
-----------------
Bullet is not yet included in most Linux distributions. Follow these
instructions for setting it up manually.
(to be written)
@ -81,8 +92,8 @@ Choosing a D compiler
The above apt-get command installs the GDC compiler. There are The above apt-get command installs the GDC compiler. There are
currently two choices for the D compiler, DMD and GDC. DMD is the currently two choices for the D compiler, DMD and GDC. DMD is the
"official" compiler and is updated more often, while GDC is a "official" compiler and is updated more often, while GDC is a
completely open source frontend to GCC (The GNU compiler.) Both should completely open source front-end for GCC (the GNU compiler.) Both
work equally well with OpenMW. should work equally well with OpenMW.
If you want to install GDC manually, go to If you want to install GDC manually, go to
http://sourceforge.net/projects/dgcc http://sourceforge.net/projects/dgcc
@ -91,8 +102,7 @@ If you want to use DMD instead, it can be found at:
http://digitalmars.com/d/1.0/dmd-linux.html http://digitalmars.com/d/1.0/dmd-linux.html
Note that the DMD unstable branch (2.000 and up) will NOT currently Note that the DMD unstable branch (2.000 and up) will NOT currently
work with OpenMW. Use the stable branch (1.x) instead. The latest work with OpenMW. Use the stable branch (1.x) instead.
version known to work is DMD 1.031, so I recommend that.
Also note that DMD is only available on 32 bit x86 Linux - other Also note that DMD is only available on 32 bit x86 Linux - other
operating systems or architectures will have to use GDC. Note however operating systems or architectures will have to use GDC. Note however
@ -170,9 +180,9 @@ favor, you should now be able to run OpenMW using the program called
Write openmw -h to see a list of options. Write openmw -h to see a list of options.
Running without parameters should bring you into the cave called Assu, Running without parameters should bring you into the cave called Assu,
or the last cell loaded. You are in free float mode. Move around with or the last cell loaded. Move around with WASD (or arrow keys), change
WASD (or arrow keys), move up and down with left shift and ctrl, exit physics mode (walking, flying, ghost) with 't', exit with 'q' or
with 'q' or escape. escape.
To load another cell, specify the cell name on the command line. Use 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 the 'esmtool' program to get a list of cells. Note that you must use

@ -19,6 +19,8 @@ Supported Windows platforms:
Only tested on Windows XP. If you manage to compile or run OpenMW on Only tested on Windows XP. If you manage to compile or run OpenMW on
another Windows platform (9x/Me/NT/2000/Vista), please let me know! another Windows platform (9x/Me/NT/2000/Vista), please let me know!
At the moment, only command line building is supported.
Dependencies: Dependencies:
@ -34,10 +36,10 @@ Note that the "official" D compiler, DMD, will not currently work on
Windows, because it is uses an object format incompatible with most Windows, because it is uses an object format incompatible with most
C++ compilers. C++ compilers.
As of verion 0.4, all library dependencies have been included in the All library dependencies are included in the file
single file openmw-dll-pack.zip for convenience. Simply download the openmw-dll-pack.zip. Simply download this file and unpack it in the
file and unpack it in the same directory as the OpenMW source same directory as the OpenMW source code. You should not need to
code. You should not need to download any other files. download any other dependencies.
@ -75,12 +77,17 @@ OGRE: http://ogre3d.org
OIS: Comes with the Ogre SDK OIS: Comes with the Ogre SDK
OpenAL: http://openal.org/ OpenAL: http://openal.org/
FFmpeg: http://ffmpeg.mplayerhq.hu/ FFmpeg: http://ffmpeg.mplayerhq.hu/
Bullet: (fill in here)
The biggest problem is the lack of a prebuilt SDKs for FFmpeg and
Bullet. You must build these yourself.
The biggest problem is the lack of a prebuilt SDK for FFmpeg. You must FFmpeg must build it under Mingw (not Cygwin!). I found the following
build it under Mingw as well (not Cygwin!). I found the following link link helpful (read the comments as well, not just the post itself):
helpful (read the comments as well, not just the post itself):
http://www.gooli.org/blog/building-ffmpeg-for-windows-with-msys-and-mingw/ http://www.gooli.org/blog/building-ffmpeg-for-windows-with-msys-and-mingw/
Bullet: (not written yet)
Building Building

@ -19,22 +19,19 @@ openmw-0.X.zip - source code
openmw-dll-pack.zip - library pack openmw-dll-pack.zip - library pack
You only need to download either the binary package or the source You only need the binary or the source package, not both. The DLL pack
code, not both. The DLL pack is needed in both cases. The DLL pack is needed in both cases.
does not change from version to version unless specified, so you
should only need to download it once.
If you downloaded the binary release, keep reading. If you got the If downloaded the source release, please read COMPILE-win32.txt before
source release, please read COMPILE-win32.txt first, then return here reading the rest of this file.
for final configuration instructions.
Configuration Configuration
------------------- -------------------
OpenMW assumes you have the Morrowind data files in c:\Program OpenMW assumes you have the Morrowind data files in c:\Program
Files\Bethesda Softworks\Morrowind\Data Files\ . If this is not the Files\Bethesda Softworks\Morrowind\Data Files\ . If this is not where
case, you should edit openmw.ini first. you have installed Morrowind, you should edit the openmw.ini file.
Running Running
@ -42,18 +39,13 @@ Running
Just run openmw.exe and enjoy! ;-) Just run openmw.exe and enjoy! ;-)
We have just updated the sound system, so it is possible things won't
work. If you get error messages related to sound, try disabling sound
with the -ns option. We are working on flattening out the remaining
bugs.
The first time you run OpenMW, you will be asked to set screen The first time you run OpenMW, you will be asked to set screen
resolution and other graphics settings. To be safe, it's not resolution and other graphics settings. To be safe, it's not
recommended to select fullscreen mode on the first run. You can bring recommended to select fullscreen mode on the first run. You can bring
up the dialogue at any time by using the -oc switch. up the dialogue at any time by using the -oc switch.
Move around with WASD or arrow keys, move up and down with left shift Move around with WASD or arrow keys, change physics mode (walking,
and ctrl, exit with 'q' or escape. flying, ghost) with 't', exit with 'q' or escape.
You start in a cell called "Assu". You can change this in openmw.ini or You start in a cell called "Assu". You can change this in openmw.ini or
by specifying a cell name on the command line. by specifying a cell name on the command line.

@ -5,10 +5,8 @@ Written by Nicolay Korslund
Email: korslund@gmail.com Email: korslund@gmail.com
WWW: http://openmw.snaptoad.com WWW: http://openmw.snaptoad.com
License: See GPL3.txt License: See GPL3.txt
Current version: 0.4 (still very pre-alpha) Current version: 0.5 (WIP)
Date: 2008 jul. 20 Date: 2008 nov. 4
QUICK NOTE: You must own and install Morrowind before you can use QUICK NOTE: You must own and install Morrowind before you can use
@ -17,63 +15,21 @@ Morrowind installed on your system!
IMPORTANT: OpenMW 0.4 notes
===========================
As of OpenMW 0.4, we have switched sound libraries from Audiere to
OpenAL + libavcodec. This means that:
- you need to install OpenAL
- you must install libavcodec / ffmpeg for mp3 playback
- you no longer need Audiere
See the changelog at the end for an up-to-date list of changes.
Also new in this release is the way files are distributed for
Windows. There is now a separate "DLL pack" that can be used with
either the binary version or the source version. You no longer need to
run around the internet to find various SDKs and such - everything
should be included in the DLL-pack, including the necessary C/C++
header files.
Note: if you are using a localized (non-English) version of Morrowind,
the default starting cell (Assu) might not exist. Try esmtool (see
below) to get a list of existing cells.
On the near-future TODO list:
===========================
- full support for localized versions (with character recoding)
- support for Mac
- collision detection + walk & fall physics
- displaying creatures correcty, animation
- rendering NPCs
- rendering outdoor scenes (exterior cells)
- choosing a GUI/HUD system that plays well with OGRE
Installation Installation
============ ============
Currently supported platforms are Windows, Linux and FreeBSD. Most Currently supported platforms are Windows, Linux and FreeBSD. Most
testing is on Ubuntu 8.04 and Windows XP Professional (in that order). testing has been done on Ubuntu 8.04 and Windows XP Professional.
For instructions, see one of the following: For instructions, see one of the following:
README-win32.txt - instructions for binary Windows release README-win32.txt - instructions for binary Windows release
COMPILE-win32.txt - instructions for building source on Windows COMPILE-win32.txt - instructions for building from source on Windows
COMPILE-linux.tx - instructions for building source on Linux / Unix COMPILE-linux.tx - instructions for building from source on Linux / Unix
Linux 64 bit is known NOT to work, because of current compiler
deficiencies. This will hopefully be sorted out at some point, but
it's not a bug in the OpenMW code.
Linux 64 does NOT work because of problems with the D compiler. This
will hopefully be sorted out at some point, but right now it is not
supported.
@ -92,11 +48,10 @@ niftool - Decodes one or more NIF files and prints the details.
Acknowledgements Acknowledgements
================ ================
Thanks goes out to: Thanks go out to:
- Bethesda Softworks for creating Morrowind! - Bethesda Softworks for creating Morrowind!
@ -104,13 +59,10 @@ Thanks goes out to:
file format. file format.
- Dmitry Marakasov for testing and porting to FreeBSD. - Dmitry Marakasov for testing and porting to FreeBSD.
- Bastien Jansen for testing on 64 bit linux. - Bastien Jansen for testing on 64 bit linux.
- Chris Robinson for OpenAL and MP3 support - Chris Robinson for OpenAL and MP3 support
- Jacob Essex for landscape code (still in progress)
- Various others for testing, ideas and patches - Many others for testing, ideas and patches
@ -119,16 +71,14 @@ Changelog:
0.5 (WIP) 0.5 (WIP)
- working on collision detection with Bullet - Collision detection with Bullet
- working on walk & fall character physics - Experimental walk & fall character physics
- working on fixing sound issues for windows (running out of sound - (WIP) Fixed various sound issues on Windows
resources, music playback doesn't good) - New key bindings:
- new key bindings:
t - toggle physics mode (walking, flying, ghost) t - toggle physics mode (walking, flying, ghost)
n - nighteye, toggle full ambient light n - night-eye: brightens the scene
- added build files for CMake (with CMakeD) and Code::Blocks (neither - Fixed incompatability with DMD 1.032 and newer
are tested yet) - Various minor changes and updates
- various minor changes and updates
0.4 (2008 aug. 30) - latest release 0.4 (2008 aug. 30) - latest release

@ -163,7 +163,10 @@ struct HashTable(Key, Value, Alloc = GCAlloc, Hash = DefHash,
void reset() void reset()
{ {
*this = typeof(*this).init; // This stopped working in DMD 1.032 and later versions.
//*this = typeof(*this).init;
// But this seems to do the trick
*this = (HashTable!(Key, Value, Alloc, Hash, keyFormat)).init;
} }
// Returns number of buckets of each size. Mostly used for testing // Returns number of buckets of each size. Mostly used for testing

Loading…
Cancel
Save