Getting Dwarf Fortress to run under Raspberry Pi OS

25 Dec 2021

Merry christmas! I decided that I wanted to play Dwarf Fortress but had no available x86 based machines. I'm gonna show you how I got it to run under Raspberry Pi OS!

It's no small feat running DF on an ARM host.

This guide is gonna presume you're running a 32-bit Raspberry Pi OS Lite image like I am.

Dependencies

Getting DF to work relies on a lot of stuff.

This command will fetch all the required dependencies for DF and Box86

apt-get install libsdl1.2debian libsdl-image1.2 libsdl-ttf2.0-0 libopenal1 libsndfile1 libncursesw5 libglu1-mesa libgtk2.0 cmake

The DF wiki suggests all but the last three dependencies. Since RPiOS doesn't ship with LibGLU or LibGTK, we need to install those.

CMake is required for the next step.

Building box86

If you thought I would just say "download a binary and you're on your way", no it's not that easy.

You need an x86 to ARM translator: box86.

If you're using a 64-bit environment (when RPi releases the 64-bit edition or you're using Ubuntu/Manjaro), compile box64 instead.

You'll need the source code to build:

git clone https://github.com/ptitSeb/box86.git

Go into the directory and make a directory called build, go into that directory.

Now use cmake:

cmake .. -DRPI4=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

And build and install (use -j2 to make stuff fasterer!):

make -j2
sudo make install
sudo systemctl restart systemd-binfmt

Building takes a good 15-20 minutes to complete.

Downloading Dwarf Fortress

Now is the easy step. Download Dwarf Fortress.

Go to the Dwarf Fortress site: if you use the 64-bit version download the Linux file but if you need the 32-bit version it is available under "All versions"

You will need to then extract DF like so:

bzip -d df_XX_YY_linux32.tar.bz2
tar -xvf df_XX_YY_linux32.tar

There will now be a df_linux folder. Enter it.

You must link some libraries for it to work:

ln -s /usr/lib/libopenal.so.1 libs/libopenal.so
ln -s /usr/lib/libsndfile.so.1 libs/libsndfile.so

If you have a graphical UI setup, type ./df and off you go!

For those without a X11/Wayland server setup:

nano data/init/init.txt

Press Control and backslash together and type

PRINT_MODE:2D

Press enter and then type

PRINT_MODE:TEXT

This switches DF to text mode, now you can run ./df and enjoy DF from the terminal!

Notes on playing the game.

Keep the world relatively simple by setting most settings to low or very low.

Have the world size be below Medium. I had all settings set to Medium and my Pi 3B froze.

You may get better performance on a Pi3B+ or Pi4 but I haven't tested.

Remember this is unofficial and YMMV.


All content on this website is licensed CC BY-SA 4.0 unless otherwise stated. Copyright © Celeste/threeoh6000 2021-2022
All content of the Journal (colean.cc/journal and subdirectories) are licensed under the CC BY-ND 4.0 license unless otherwise stated.