v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "v0.34:Installation"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
(→‎Linux: alternative with windows emulation added)
 
(71 intermediate revisions by 25 users not shown)
Line 1: Line 1:
 +
{{av}}
 +
<br/>
 +
{{quick download|0.34.11}}
 +
<br/>
 +
__TOC__
 
= Download =
 
= Download =
__NOTOC__
+
You can always get Dwarf Fortress as [[Main:Toady One|Toady One]], the developer, released it from the [http://www.bay12games.com/dwarves/ Bay12 site] (listed at the top of the page).
You can always get Dwarf Fortress as [[Main:Toady One|Toady One]], the developer, released it from the [http://www.bay12games.com/dwarves/ Bay12 site] (check the top of the page).
 
  
 
You can also download the latest version here:
 
You can also download the latest version here:
{{News/Mirrors/{{current/version}}}}
+
{{News/Mirrors/0.34.11}}
Windows users: Use the "Main" version unless there's some reason not to.
 
== Third-Party Packages ==
 
  
*[[Main:Lazy Newb Pack|Lazy Newb Pack]] (Windows Only) - the full game plus utilities and graphics sets in one big package
+
Windows users should generally download one of the "Main" (SDL) versions (listed in the first row), unless the "Legacy" version is required for some reason. The "1" and "2" links are mirrors (but should be identical to their Bay12-hosted counterparts), and the "Small" link does not include [[music|sound]].
*[http://www.bay12forums.com/smf/index.php?topic=106790.0 MacNewbie] - same thing as LNP, just for Mac users
 
*[http://www.bay12forums.com/smf/index.php?topic=53180.0 Ironhand's Graphics Set] - improves the look of tiles
 
*[http://www.bay12forums.com/smf/index.php?topic=57557.0 Phoebus' Graphic Set] - another graphics set
 
*[[Utilities#Dwarf_Therapist|Dwarf Therapist]] - Utility for managing dwarves
 
  
The Dwarf Fortress community often creates custom [[Graphics set repository|graphics sets]] and [[Tilesets|tilesets]]. They're like graphical mods that make DF look prettier or just different. A lot of people pack the game folder with the tileset installed and everything already set up, so all you have to do is extract and play. Among the most popular of these are [http://www.bay12forums.com/smf/index.php?topic=53180.0 Ironhand's Graphics Set] and [http://www.bay12forums.com/smf/index.php?topic=57557.0 Phoebus' Graphic Set].
+
Mac and Linux users should generally download the SDL version for their platform. While it is possible to run the Windows version under wine, it is often slower and less stable than the native version.
  
There's also the (Windows only) [[Main:Lazy Newb Pack|Lazy Newb Pack]] which has several tilesets and utilities gathered together to make it easier for new players to get started and to experiment with the different tilesets. The only disadvantage to downloading LNP is that there is usually some lag time between when a new version of the game is released and when the LNP is updated to include it. So, if a new version of the game has just been released it may not be in the LNP yet.
+
== Third-Party Packages ==
 
+
These packages include the game as well as several utilities, graphics sets, and bugfixes (through [[Utility:DFHack|DFHack]]), configurable with an included launcher.
As for Mac, there is [http://www.bay12forums.com/smf/index.php?topic=106790.0 MacNewbie], which also contains some tilesets and utilities (even DFHack). There is also user-friendly init editor, which features colors and some most popular options to edit. Also, this pack is autoupdate-enabled so you don't need to check for updates manually.
+
*[http://www.bay12forums.com/smf/index.php?topic=126076 PeridexisErrant's Dwarf Fortress Starter Pack] (Windows) - A more comprehensive, and more importantly, up-to-date implementation of LusasUP's original Lazy Newb Pack.
 +
*[http://www.bay12forums.com/smf/index.php?topic=128960 Fricy's MacNewbie] - essentially the Lazy Newb Pack, for OS X.
 +
*[http://www.bay12forums.com/smf/index.php?topic=130792 Linux Lazy Newb Pack - '''unmaintained'''] - exactly what it says.  This will also try to find missing dependencies and so on.
  
Also see [[Utilities]] for a long list of utilities that people have created, including the incredibly useful [[Utilities#Dwarf_Therapist|Dwarf Therapist]], something that many people won't play the game without.
+
The Dwarf Fortress community often creates custom [[Graphics set repository|graphics sets]] and [[Tilesets|tilesets]]. They're like graphical mods that make DF look prettier or just different. A lot of people pack the game folder with the tileset installed and everything already set up, so all you have to do is extract and play. Among the most popular of these are [http://www.bay12forums.com/smf/index.php?topic=53180.0 Ironhand's Graphics Set] and [http://www.bay12forums.com/smf/index.php?topic=57557.0 Phoebus' Graphic Set].  Most notable graphics sets are included in the packs above.
  
 
= Installation =
 
= Installation =
Line 31: Line 31:
 
Make sure to actually ''extract'' the archive; do not just open the archive and run the game from the window that appears. If you do this then it may appear to work, but your save game data will get discarded. This is the cause of many "my saved games keep getting deleted" complaints. The game also needs to be able to write to its own folder, so do '''not''' install it in C:\Program Files if you are running Windows Vista or later.
 
Make sure to actually ''extract'' the archive; do not just open the archive and run the game from the window that appears. If you do this then it may appear to work, but your save game data will get discarded. This is the cause of many "my saved games keep getting deleted" complaints. The game also needs to be able to write to its own folder, so do '''not''' install it in C:\Program Files if you are running Windows Vista or later.
  
== Mac ==
+
== OS X ==
 
 
The Mac version is not a single application bundle, but like the Windows version it consists of a folder containing the application along with data files and there is no installer. The entire folder can be dragged into the Applications folder or placed elsewhere. As with the Windows version, the game must be able to write to its own folder.
 
  
To start the game execute the launch script "df".
+
The OS X version is not a single application bundle, but like the Windows version it consists of a folder containing the application along with data files and there is no installer. The entire folder can be dragged into the Applications folder or placed elsewhere. As with the Windows version, the game must be able to write to its own folder.
  
=== OS X 10.7 Lion ===
+
To start the game execute the launch script "df". Launching "dwarfort.exe" by itself will ''not'' work (since the "df" script sets up [[wikipedia:environment variables|environment variables]] pointing to DF's libraries).
  
When first running Dwarf Fortress on 10.7 Lion, you may be startled to discover that Terminal crashes without so much as a by-your-leave. Don't worry; Dwarf Fortress will still run on Lion. The issue lies in the libraries; they haven't changed from the ones in Snow Leopard, but their naming scheme has. The fix is a quick one. Open up the "df" launch script in a text editor of your choice (TextEdit is the default), and locate the following lines:
+
For development purposes (such as changing libraries or patching), you may want to install [http://developer.apple.com Apple's developer tools].
  
:export DYLD_FALLBACK_LIBRARY_PATH=${PWD}/libs<br/>
+
On OS X 10.8 and above, you will need to download [http://xquartz.macosforge.org/landing/ XQuartz] to run Dwarf Fortress, which is no longer bundled with OS X by default.
:export DYLD_FALLBACK_FRAMEWORK_PATH=${PWD}/libs
 
 
 
Change them to read as follows:
 
 
 
:export DYLD_LIBRARY_PATH=${PWD}/libs<br/>
 
:export DYLD_FRAMEWORK_PATH=${PWD}/libs
 
 
 
With the change, Dwarf Fortress should run normally.
 
  
 
== Linux ==
 
== Linux ==
Line 55: Line 45:
 
The Linux version of the game is shipped as a compiled 32-bit x86 (Intel/AMD) application. It will also run on a system with a 64-bit AMD or Intel processor and a 64-bit kernel, provided that you have the (32-bit) shared libraries available that the program needs.
 
The Linux version of the game is shipped as a compiled 32-bit x86 (Intel/AMD) application. It will also run on a system with a 64-bit AMD or Intel processor and a 64-bit kernel, provided that you have the (32-bit) shared libraries available that the program needs.
  
Dwarf Fortress for Linux is meant to be run from a terminal (command-line) interface, and so the instructions here will assume you know how to login and get to a command prompt.  At least in the default mode, however, Dwarf Fortress is an X client program, so you should be in a terminal inside an X session before starting the game.  Dwarf Fortress will create a new X window outside of the terminal window, so don't worry about the size of the terminal.
+
Dwarf Fortress for Linux is meant to be run from a terminal (command-line) interface, and so the instructions here will assume you know how to login and get to a command prompt.  At least in the default mode, however, Dwarf Fortress is an X client (graphical desktop) program, so you should be in a terminal inside an X session before starting the game.  Dwarf Fortress will create a new X window outside of the terminal window, so don't worry about the size of the terminal.
  
 
* '''Unpacking''': Dwarf Fortress is shipped as a (bzip2) compressed tar archive.  It will extract into a new directory called '''df_linux'''.  So, cd to wherever you want the game to be unpacked, and then run '''tar xjf /path/to/df_XX_YY_linux.tar.bz2''' (where df_XX_YY_linux.tar.bz2 is the filename).  Then run '''cd df_linux''' to change into the new directory.
 
* '''Unpacking''': Dwarf Fortress is shipped as a (bzip2) compressed tar archive.  It will extract into a new directory called '''df_linux'''.  So, cd to wherever you want the game to be unpacked, and then run '''tar xjf /path/to/df_XX_YY_linux.tar.bz2''' (where df_XX_YY_linux.tar.bz2 is the filename).  Then run '''cd df_linux''' to change into the new directory.
 
* '''Running''': Run '''./df''' to execute the Dwarf Fortress wrapper script.
 
* '''Running''': Run '''./df''' to execute the Dwarf Fortress wrapper script.
 
* '''Troubleshooting''': If you get an error like this:
 
* '''Troubleshooting''': If you get an error like this:
./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_image-1.2.so.0:
 
cannot open shared object file: No such file or directory
 
: it means that your system is missing one or more shared libraries.  See below.
 
* '''Upgrading''': Since every new version of Dwarf Fortress unpacks in a directory named '''df_linux''' you have to manage upgrades yourself.  You should '''not''' unpack a new version of DF on top of an old version's directory -- this will cause things to break, usually in subtle and mysterious ways.  Instead, you should either delete or rename the old '''df_linux''' directory first, before extracting the new version.
 
  
Alternativly, downloading the windows version and running it with the vine emulator works fine. This also avoids any issues with 32-bit versus 64-bit mode.
+
  ./libs/Dwarf_Fortress: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or
 +
  directory
 +
 
 +
it means that your system is missing one or more shared libraries.
 +
 
 +
To fix this problem run the following command in a new terminal:
 +
 
 +
Ubuntu 16:
 +
 
 +
  $ sudo apt-get install libsdl1.2debian libsdl-image1.2 libSDL-ttf2.0-0
 +
 
 +
Ubuntu 14 (or systems without ia32-libs):
 +
$ sudo apt-get install libgtk2.0-0:i386 libglu1-mesa:i386 libsdl-image1.2:i386 libsdl-sound1.2:i386 libsdl-ttf2.0-0:i386
 +
 
 +
Ubuntu 13 and below:
 +
$ sudo apt-get install ia32-libs libsdl-image1.2 libsdl-sound1.2 libsdl-ttf2.0-0
 +
 
 +
After the last command has finished (it should take about 5-10 minutes) go back to the old terminal and retry the ./df command.
 +
 
 +
Linux Mint 18 will produce this error
 +
 
 +
  ./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_ttf-2.0.so.0: cannot open shared object file:
 +
  No such file or directory
 +
 
 +
Simply download and install the missing library with:
 +
 
 +
  $ sudo apt-get install libSDL-ttf2.0-0
 +
 
 +
 +
* '''Upgrading''': Since every new version of Dwarf Fortress unpacks in a directory named '''df_linux''' you have to manage upgrades yourself. As on all systems, you should '''not''' unpack a new version of DF on top of an old version's directory -- this will cause things to break, usually in subtle and mysterious ways.  Instead, you should either delete or rename the old '''df_linux''' directory first, before extracting the new version.
 +
 
 +
Alternatively, downloading the windows version and running it with the wine emulator works fine. This also avoids any issues with 32-bit versus 64-bit mode.
 +
 
 +
If you get errors, it is likely that others will have had the same problem; Try searching the bay12games forum with the error message.
  
 
=== 32-bit vs. 64-bit systems ===
 
=== 32-bit vs. 64-bit systems ===
Line 71: Line 90:
 
Modern desktop PCs (of the Intel/AMD persuasion) contain CPUs that can run in either 32-bit or 64-bit modes.  When you install Linux, you choose one of these architectures.  The programs on your system will then be compiled either for the 32-bit (i386, x86) arch, or the 64-bit (amd64, x86_64) arch.  If you've forgotten which one you have, you can check:
 
Modern desktop PCs (of the Intel/AMD persuasion) contain CPUs that can run in either 32-bit or 64-bit modes.  When you install Linux, you choose one of these architectures.  The programs on your system will then be compiled either for the 32-bit (i386, x86) arch, or the 64-bit (amd64, x86_64) arch.  If you've forgotten which one you have, you can check:
  
  $ file /bin/ls
+
  $ uname -m
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs),
+
  x86_64
  for GNU/Linux 2.6.18, stripped
 
  
 
The above would indicate a 64-bit system.  Here's one from a 32-bit system:
 
The above would indicate a 64-bit system.  Here's one from a 32-bit system:
  
  $ file /bin/ls
+
  $ uname -m
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs),
+
  i686
  for GNU/Linux 2.6.18, stripped
 
  
 
Dwarf Fortress is compiled for 32-bit systems, so if you're on a 32-bit system, things will be slightly easier.  If you are getting errors about missing SDL_image libraries (etc.) then you simply need to install them.  Use your distribution's package manager for this -- details will be extremely distribution-specific.  You don't need the development versions of the packages with the headers (although that won't hurt) -- you just need the runtime versions, with the actual shared libraries.
 
Dwarf Fortress is compiled for 32-bit systems, so if you're on a 32-bit system, things will be slightly easier.  If you are getting errors about missing SDL_image libraries (etc.) then you simply need to install them.  Use your distribution's package manager for this -- details will be extremely distribution-specific.  You don't need the development versions of the packages with the headers (although that won't hurt) -- you just need the runtime versions, with the actual shared libraries.
  
If you're on a 64-bit system, then things get a bit trickier.  Since DF is a 32-bit application, it needs 32-bit versions of the shared libraries.  Some Linux distributions provide these in one or more packages that you can download.  For example, in Debian, the ia32-libs package contains most of the common 32-bit libraries, including libSDL. Unfortunately, it does ''not'' include the SDL add-on libraries such as libSDL_image and libSDL_ttf.  If your distribution does not include these, then you may have to supply them manually.
+
If you're on a 64-bit system, then things get a bit trickier.  Since DF is a 32-bit application, it needs 32-bit versions of the shared libraries.  Some Linux distributions provide these in one or more packages that you can download.  For example, in Debian, the ia32-libs package contains most of the common 32-bit libraries, including libSDL. If your distribution does not include these, then you may have to supply them manually.
 +
 
 +
==== How-to for Debian and similar ====
 +
 
 +
On Ubuntu/Debian and its derivatives, installing 32-bit libraries is as easy as appending ":i386" to the name of the library.  For libsdl-image and libsdl-ttf, this amounts to:
 +
 
 +
  $ sudo dpkg --add-architecture i386
 +
  $ sudo apt-get update
 +
  $ sudo apt-get install libsdl-image1.2:i386 libsdl-ttf2.0-0:i386 libgtk2.0-0:i386 libjpeg62:i386 libglu1-mesa:i386 libopenal1:i386
 +
 
 +
'''Sound'''
 +
 
 +
After doing this, DF will run, but will complain that it cannot find the OpenAL library and cannot play sounds, even when OpenAL (i386) has been installed. This is due to a bug/feature in which there is no link from the name of the library that DF is looking for ("libopenal.so") to its implementation ("libopenal.so.1" - technically another link). To fix this, simply provide the necessary links in DF's own ''libs'' directory:
  
It should be noted that on Ubuntu/Debian and it's derivatives, installing 32-bit libraries is as easy as appending ":i386" to the name of the library.  For libsdl-image and libsdl-ttf, this amounts to:
+
  $ cd df_linux/libs
 +
  $ ln -s /usr/lib/i386-linux-gnu/libopenal.so.1 ./libopenal.so
 +
  $ ln -s /usr/lib/i386-linux-gnu/libsndfile.so.1 ./libsndfile.so
  
$ sudo apt-get install libsdl-image1.2:i386 libsdl-ttf:i386
+
==== Manually installing 32-bit libraries ====
  
If this is the case, then the first step is to figure out where you will be putting them.  Check to see where your other 32-bit libraries are already installed; for example, on Debian, some are in /lib32 and others are in /usr/lib32.  Since libSDL is in /usr/lib32 on a Debian system, that's where we'll want to put libSDL_image and libSDL_ttf.  On other distributions, the path could be different.
+
If you do need to manually install the libraries, then the first step is to figure out where you will be putting them.  Check to see where your other 32-bit libraries are already installed; for example, on Debian, some are in /lib32 and others are in /usr/lib32.  Since libSDL is in /usr/lib32 on a Debian system, that's where we'll want to put libSDL_image and libSDL_ttf.  On other distributions, the path could be different.
  
 
The second step is to get the 32-bit libraries.  You can typically do this by downloading them directly from your distribution's 32-bit package repository.  Again using Debian as our example, we can perform a search at http://packages.debian.org/ for files containing the word libSDL_image for the Intel x86 architecture.  This takes us to [http://packages.debian.org/search?searchon=contents&keywords=libSDL_image&mode=filename&suite=stable&arch=i386 a results page] from which we can proceed to [http://packages.debian.org/squeeze/libsdl-image1.2 the libsdl-image1.2 package page] with a list of download links arranged by architecture.  Grab the i386 package from here, and repeat this for the libSDL_ttf package, and whatever other library you are missing.  Store these package files somewhere convenient.
 
The second step is to get the 32-bit libraries.  You can typically do this by downloading them directly from your distribution's 32-bit package repository.  Again using Debian as our example, we can perform a search at http://packages.debian.org/ for files containing the word libSDL_image for the Intel x86 architecture.  This takes us to [http://packages.debian.org/search?searchon=contents&keywords=libSDL_image&mode=filename&suite=stable&arch=i386 a results page] from which we can proceed to [http://packages.debian.org/squeeze/libsdl-image1.2 the libsdl-image1.2 package page] with a list of download links arranged by architecture.  Grab the i386 package from here, and repeat this for the libSDL_ttf package, and whatever other library you are missing.  Store these package files somewhere convenient.
Line 97: Line 128:
 
* cd into some temporary working directory such as /tmp
 
* cd into some temporary working directory such as /tmp
 
* Extract the files from the .deb archive, which is in ar(1) format:
 
* Extract the files from the .deb archive, which is in ar(1) format:
   ar x /path/to/libsdl-image1.2*_i386.deb
+
   tar x /path/to/libsdl-image1.2*_i386.deb
 
: This creates three files: debian-binary, control.tar.gz and data.tar.gz.  We only care about data.tar.gz.
 
: This creates three files: debian-binary, control.tar.gz and data.tar.gz.  We only care about data.tar.gz.
 
* Extract data.tar.gz:
 
* Extract data.tar.gz:
Line 115: Line 146:
 
cd to the correct directory, then use ln as shown above.
 
cd to the correct directory, then use ln as shown above.
  
Another common difficulty with 64bit systems is related to the art packs. When DF is run on most (?all) 64bit Unix systems, it generates error messages related to the PNG variants of the art files, errors which prevent the game from starting.
+
==== How-to for Fedora 20 ====
  
To solve this problem, you must first edit the ''/data/init/init.txt'' file and set the game to use the BMP variants of the art files, instead of the default PNG. This should solve all the error messages except for one: "''Not found: data/art/mouse.png''" since there is no setting in the ''init'' files to change it. The workaround for this is to edit the ''Dwarf_Fortress'' file found in the ''/your/path/df_linux/libs'' folder which contains the setting for the mouse cursor.
+
  sudo yum install gtk2-devel.i686 SDL_image.i686 mesa-libGLU.i686 SDL_ttf.i686
 +
 
 +
And you need to employ the fix for preloading zlib by adding this line on line 2 of the df shell script.
 +
 
 +
  export LD_PRELOAD=/usr/lib/libz.so.1
 +
 
 +
==== "Not found: /data/art/mouse.png" and similar errors ====
 +
===== Fix 1: Preload zlib=====
 +
Due to incompatibilities between DF's included zlib and newer versions of zlib, libpng can fail on newer systems. A solution is to add this line to the beginning of <code>/your/path/df_linux/df</code> (or <code>/your/path/df_linux/dfhack</code> if you use [[DFHack]]):
 +
export LD_PRELOAD=/usr/lib/libz.so.1
 +
Note that this path can vary - be sure that it is referring to a '''32-bit''' zlib.
 +
===== Fix 2: Use bmp instead =====
 +
Another solution (if preloading zlib doesn't work) is to force DF to use the BMP versions of image files. You must first edit the ''/data/init/init.txt'' file and change all occurrences of "png" to "bmp". This should solve all the error messages except for one: "''Not found: data/art/mouse.png''" since there is no setting in the init files to change it. The workaround for this is to edit the ''Dwarf_Fortress'' file found in the ''/your/path/df_linux/libs'' folder which contains the setting for the mouse cursor.
 
If you don't know how to do that, you can try this:
 
If you don't know how to do that, you can try this:
 
* cd to the ''/df_linux/libs'' folder
 
* cd to the ''/df_linux/libs'' folder
Line 136: Line 179:
  
 
Now the game should work properly. Have fun!
 
Now the game should work properly. Have fun!
 +
 +
=== Install on Arch Linux ===
 +
Although Dwarf Fortress may be installed using the method above (with some modifications), it is available through pacman (Arch Linux's package management system), in the [community], for 32-bit, and the [multilib], for 64-bit, repositories. These packages are updated as Dwarf fortress is updated, and handle required dependencies. 
 +
 +
==== 32-bit ====
 +
All of the following commands must be run as root
 +
 +
First, download and install Dwarf Fortress with pacman
 +
  pacman -S dwarffortress
 +
Any required dependencies will be installed, too.
 +
 +
Next you need to add the user(s) that will be playing to the game to the games group
 +
  gpasswd -a [users] games
 +
 +
Any users you added to the games group must now be logged out, if they were logged in
 +
 +
Now Dwarf Fortress should be playable by typing:
 +
  dwarffortress
 +
As any user in the games group
 +
 +
==== 64-Bit ====
 +
Installing Dwarf Fortress on 64-bit installs of Arch Linux is the same as installing it on 32-bit systems, with the exception of the [multilib] repository needing to be enabled prior to install. 
 +
 +
These commands also must be run as root.
 +
 +
To enable the [multilib] repository run:
 +
  nano /etc/pacman.conf
 +
And delete the pound symbol(#) in front of these three lines (Make sure the top one says #[multilib] NOT #[multilib-testing]
 +
#[multilib]
 +
#SigLevel = PackageRequired
 +
#Include = /etc/pacman.d/mirrorlist
 +
So that they look like this
 +
[multilib]
 +
SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
Save the file by typing
 +
  ctrl x
 +
 +
Then run:
 +
  pacman -Sy
 +
 +
After that you can continue the install as detailed in the 32-bit section. Required 32-bit dependencies will automatically be installed, however you may have to install more dependencies, depending on what sound support you use, and you graphics card
 +
 +
If you use alsa sound, install lib32-alsa-lib with:
 +
  pacman -S lib32-alsa-lib
 +
 +
If use use pulse sound install lib32-libpulse with:
 +
  pacman -S lib32-libpulse
 +
 +
If you have ATI graphics install lib32-catalyst-utils with:
 +
  pacman -S lib32-catalyst-utils
 +
 +
If you have Nvidia graphics, install lib32-nvidia-utils with:
 +
  pacman -S lib32-nvidia-utils
  
 
= Documentation =
 
= Documentation =
Line 150: Line 247:
  
 
{{Getting Started}}
 
{{Getting Started}}
{{Category|Guides}}
 

Latest revision as of 00:50, 21 January 2017

This article is about an older version of DF.


Download: Linux · Mac OS X ·Windows · all versions · starter packs


Download[edit]

You can always get Dwarf Fortress as Toady One, the developer, released it from the Bay12 site (listed at the top of the page).

You can also download the latest version here:

Windows Main 1 2 Small
Legacy 1 2 Small
Linux SDL
Mac (Intel) SDL

Windows users should generally download one of the "Main" (SDL) versions (listed in the first row), unless the "Legacy" version is required for some reason. The "1" and "2" links are mirrors (but should be identical to their Bay12-hosted counterparts), and the "Small" link does not include sound.

Mac and Linux users should generally download the SDL version for their platform. While it is possible to run the Windows version under wine, it is often slower and less stable than the native version.

Third-Party Packages[edit]

These packages include the game as well as several utilities, graphics sets, and bugfixes (through DFHack), configurable with an included launcher.

The Dwarf Fortress community often creates custom graphics sets and tilesets. They're like graphical mods that make DF look prettier or just different. A lot of people pack the game folder with the tileset installed and everything already set up, so all you have to do is extract and play. Among the most popular of these are Ironhand's Graphics Set and Phoebus' Graphic Set. Most notable graphics sets are included in the packs above.

Installation[edit]

Also see: System requirements

Windows[edit]

There is no installer for the game. Simply extract the archive file to a folder somewhere and run the game from within the folder.

Make sure to actually extract the archive; do not just open the archive and run the game from the window that appears. If you do this then it may appear to work, but your save game data will get discarded. This is the cause of many "my saved games keep getting deleted" complaints. The game also needs to be able to write to its own folder, so do not install it in C:\Program Files if you are running Windows Vista or later.

OS X[edit]

The OS X version is not a single application bundle, but like the Windows version it consists of a folder containing the application along with data files and there is no installer. The entire folder can be dragged into the Applications folder or placed elsewhere. As with the Windows version, the game must be able to write to its own folder.

To start the game execute the launch script "df". Launching "dwarfort.exe" by itself will not work (since the "df" script sets up environment variables pointing to DF's libraries).

For development purposes (such as changing libraries or patching), you may want to install Apple's developer tools.

On OS X 10.8 and above, you will need to download XQuartz to run Dwarf Fortress, which is no longer bundled with OS X by default.

Linux[edit]

The Linux version of the game is shipped as a compiled 32-bit x86 (Intel/AMD) application. It will also run on a system with a 64-bit AMD or Intel processor and a 64-bit kernel, provided that you have the (32-bit) shared libraries available that the program needs.

Dwarf Fortress for Linux is meant to be run from a terminal (command-line) interface, and so the instructions here will assume you know how to login and get to a command prompt. At least in the default mode, however, Dwarf Fortress is an X client (graphical desktop) program, so you should be in a terminal inside an X session before starting the game. Dwarf Fortress will create a new X window outside of the terminal window, so don't worry about the size of the terminal.

  • Unpacking: Dwarf Fortress is shipped as a (bzip2) compressed tar archive. It will extract into a new directory called df_linux. So, cd to wherever you want the game to be unpacked, and then run tar xjf /path/to/df_XX_YY_linux.tar.bz2 (where df_XX_YY_linux.tar.bz2 is the filename). Then run cd df_linux to change into the new directory.
  • Running: Run ./df to execute the Dwarf Fortress wrapper script.
  • Troubleshooting: If you get an error like this:
 ./libs/Dwarf_Fortress: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or 
 directory

it means that your system is missing one or more shared libraries.

To fix this problem run the following command in a new terminal:

Ubuntu 16:

 $ sudo apt-get install libsdl1.2debian libsdl-image1.2 libSDL-ttf2.0-0

Ubuntu 14 (or systems without ia32-libs):

$ sudo apt-get install libgtk2.0-0:i386 libglu1-mesa:i386 libsdl-image1.2:i386 libsdl-sound1.2:i386 libsdl-ttf2.0-0:i386

Ubuntu 13 and below:

$ sudo apt-get install ia32-libs libsdl-image1.2 libsdl-sound1.2 libsdl-ttf2.0-0

After the last command has finished (it should take about 5-10 minutes) go back to the old terminal and retry the ./df command.

Linux Mint 18 will produce this error

 ./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_ttf-2.0.so.0: cannot open shared object file: 
 No such file or directory

Simply download and install the missing library with:

 $ sudo apt-get install libSDL-ttf2.0-0


  • Upgrading: Since every new version of Dwarf Fortress unpacks in a directory named df_linux you have to manage upgrades yourself. As on all systems, you should not unpack a new version of DF on top of an old version's directory -- this will cause things to break, usually in subtle and mysterious ways. Instead, you should either delete or rename the old df_linux directory first, before extracting the new version.

Alternatively, downloading the windows version and running it with the wine emulator works fine. This also avoids any issues with 32-bit versus 64-bit mode.

If you get errors, it is likely that others will have had the same problem; Try searching the bay12games forum with the error message.

32-bit vs. 64-bit systems[edit]

Modern desktop PCs (of the Intel/AMD persuasion) contain CPUs that can run in either 32-bit or 64-bit modes. When you install Linux, you choose one of these architectures. The programs on your system will then be compiled either for the 32-bit (i386, x86) arch, or the 64-bit (amd64, x86_64) arch. If you've forgotten which one you have, you can check:

$ uname -m
x86_64

The above would indicate a 64-bit system. Here's one from a 32-bit system:

$ uname -m
i686

Dwarf Fortress is compiled for 32-bit systems, so if you're on a 32-bit system, things will be slightly easier. If you are getting errors about missing SDL_image libraries (etc.) then you simply need to install them. Use your distribution's package manager for this -- details will be extremely distribution-specific. You don't need the development versions of the packages with the headers (although that won't hurt) -- you just need the runtime versions, with the actual shared libraries.

If you're on a 64-bit system, then things get a bit trickier. Since DF is a 32-bit application, it needs 32-bit versions of the shared libraries. Some Linux distributions provide these in one or more packages that you can download. For example, in Debian, the ia32-libs package contains most of the common 32-bit libraries, including libSDL. If your distribution does not include these, then you may have to supply them manually.

How-to for Debian and similar[edit]

On Ubuntu/Debian and its derivatives, installing 32-bit libraries is as easy as appending ":i386" to the name of the library. For libsdl-image and libsdl-ttf, this amounts to:

 $ sudo dpkg --add-architecture i386
 $ sudo apt-get update
 $ sudo apt-get install libsdl-image1.2:i386 libsdl-ttf2.0-0:i386 libgtk2.0-0:i386 libjpeg62:i386 libglu1-mesa:i386 libopenal1:i386

Sound

After doing this, DF will run, but will complain that it cannot find the OpenAL library and cannot play sounds, even when OpenAL (i386) has been installed. This is due to a bug/feature in which there is no link from the name of the library that DF is looking for ("libopenal.so") to its implementation ("libopenal.so.1" - technically another link). To fix this, simply provide the necessary links in DF's own libs directory:

 $ cd df_linux/libs
 $ ln -s /usr/lib/i386-linux-gnu/libopenal.so.1 ./libopenal.so
 $ ln -s /usr/lib/i386-linux-gnu/libsndfile.so.1 ./libsndfile.so

Manually installing 32-bit libraries[edit]

If you do need to manually install the libraries, then the first step is to figure out where you will be putting them. Check to see where your other 32-bit libraries are already installed; for example, on Debian, some are in /lib32 and others are in /usr/lib32. Since libSDL is in /usr/lib32 on a Debian system, that's where we'll want to put libSDL_image and libSDL_ttf. On other distributions, the path could be different.

The second step is to get the 32-bit libraries. You can typically do this by downloading them directly from your distribution's 32-bit package repository. Again using Debian as our example, we can perform a search at http://packages.debian.org/ for files containing the word libSDL_image for the Intel x86 architecture. This takes us to a results page from which we can proceed to the libsdl-image1.2 package page with a list of download links arranged by architecture. Grab the i386 package from here, and repeat this for the libSDL_ttf package, and whatever other library you are missing. Store these package files somewhere convenient.

The third step is to extract the libraries from the packages and get them in the proper location. You probably won't be able simply to install the packages using your package manager, because they are for the wrong architecture. Instead, you'll probably have to extract them by hand. The steps for doing this are distribution-specific, so when in doubt consult your distribution's help resources. I'll show the steps for a .deb package.

  • cd into some temporary working directory such as /tmp
  • Extract the files from the .deb archive, which is in ar(1) format:
 tar x /path/to/libsdl-image1.2*_i386.deb
This creates three files: debian-binary, control.tar.gz and data.tar.gz. We only care about data.tar.gz.
  • Extract data.tar.gz:
 tar xzf data.tar.gz
This creates a subdirectory named usr with various files inside it. We only care about usr/lib/libSDL_image-1.2.so.0.8.2 (or whatever precise version yours has).
  • Move the shared library into place:
 sudo mv usr/lib/libSDL_image-1.2.so.* /usr/lib32/
  • Create a symlink to it:
 cd /usr/lib32
 sudo ln -s libSDL_image-1.2.so.0.* libSDL_image-1.2.so.0
 cd -

Repeat this for libSDL_ttf and whatever other libraries are required.

NOTE: If you get the error that libsndfile.so is not found, you must use the following:

 find */libsndfile.so*

cd to the correct directory, then use ln as shown above.

How-to for Fedora 20[edit]

 sudo yum install gtk2-devel.i686 SDL_image.i686 mesa-libGLU.i686 SDL_ttf.i686

And you need to employ the fix for preloading zlib by adding this line on line 2 of the df shell script.

 export LD_PRELOAD=/usr/lib/libz.so.1

"Not found: /data/art/mouse.png" and similar errors[edit]

Fix 1: Preload zlib[edit]

Due to incompatibilities between DF's included zlib and newer versions of zlib, libpng can fail on newer systems. A solution is to add this line to the beginning of /your/path/df_linux/df (or /your/path/df_linux/dfhack if you use DFHack):

export LD_PRELOAD=/usr/lib/libz.so.1

Note that this path can vary - be sure that it is referring to a 32-bit zlib.

Fix 2: Use bmp instead[edit]

Another solution (if preloading zlib doesn't work) is to force DF to use the BMP versions of image files. You must first edit the /data/init/init.txt file and change all occurrences of "png" to "bmp". This should solve all the error messages except for one: "Not found: data/art/mouse.png" since there is no setting in the init files to change it. The workaround for this is to edit the Dwarf_Fortress file found in the /your/path/df_linux/libs folder which contains the setting for the mouse cursor. If you don't know how to do that, you can try this:

  • cd to the /df_linux/libs folder
  • open Dwarf_Fortress in vi or any other editor of your choise:
 vi ./Dwarf_Fortress
This opens the file for editing (text mode). If you are not familiar with vi, it would be a good idea to follow these steps exactly and not press any other keys since they all activate specific commands. If you do press a key though, you can press the ESC key a few times to cancel the command.
  • With vi open, write the following string and press Enter:
 /mouse
This will search for all the strings that contain the word "mouse" and place the cursor on the first match. Pressing the n key will cycle through all the matches.
  • Press the n key until the cursor moves to the desired string, which is "data/art/mouse.png". If you accidentally move past the string, you can cycle back through the matched strings using the N key (shift + n).
  • Once you find the right string, you will have to move the cursor over the "p" in "[..]/mouse.png". You do that by pressing the l key which will move the cursor to the right. There is also the h key to move the cursor to the left, in case you move past it.
  • With the cursor in the right position press the following key sequence:
 xxxibmp
This will replace the .png extension with the .bmp one which solves the problem of the missing /data/art/mouse.png error.
  • All there is left to do is to save the modifications to the file and quit vi. For that, press the ESC key once or twice and then press the following key sequence after which you press Enter:
 :wq
This saves the changes and quits 'vi'

Now the game should work properly. Have fun!

Install on Arch Linux[edit]

Although Dwarf Fortress may be installed using the method above (with some modifications), it is available through pacman (Arch Linux's package management system), in the [community], for 32-bit, and the [multilib], for 64-bit, repositories. These packages are updated as Dwarf fortress is updated, and handle required dependencies.

32-bit[edit]

All of the following commands must be run as root

First, download and install Dwarf Fortress with pacman

 pacman -S dwarffortress

Any required dependencies will be installed, too.

Next you need to add the user(s) that will be playing to the game to the games group

 gpasswd -a [users] games

Any users you added to the games group must now be logged out, if they were logged in

Now Dwarf Fortress should be playable by typing:

 dwarffortress

As any user in the games group

64-Bit[edit]

Installing Dwarf Fortress on 64-bit installs of Arch Linux is the same as installing it on 32-bit systems, with the exception of the [multilib] repository needing to be enabled prior to install.

These commands also must be run as root.

To enable the [multilib] repository run:

 nano /etc/pacman.conf

And delete the pound symbol(#) in front of these three lines (Make sure the top one says #[multilib] NOT #[multilib-testing]

#[multilib]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

So that they look like this

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Save the file by typing

 ctrl x

Then run:

 pacman -Sy

After that you can continue the install as detailed in the 32-bit section. Required 32-bit dependencies will automatically be installed, however you may have to install more dependencies, depending on what sound support you use, and you graphics card

If you use alsa sound, install lib32-alsa-lib with:

 pacman -S lib32-alsa-lib

If use use pulse sound install lib32-libpulse with:

 pacman -S lib32-libpulse

If you have ATI graphics install lib32-catalyst-utils with:

 pacman -S lib32-catalyst-utils 

If you have Nvidia graphics, install lib32-nvidia-utils with:

 pacman -S lib32-nvidia-utils

Documentation[edit]

Fortunately the documentation on this wiki is very detailed and extensive. You may want to start out with:

Then move on to: