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.


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

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/ libs/ ln -s /usr/lib/ libs/ 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-ND 4.0 unless otherwise stated. Copyright © threeoh6000 2021-2023
Powered by ewfm.