Browse by type
| Nightly builds | Platform |
|---|---|
| Linux 32bit & 64bit, Windows 32bit, Nintendo Switch, SDL1 | |
| macOS 64bit | |
| Windows 64bit (MSVC) |
~/Library/Application Support/diasurgical/devilution~/.local/share/diasurgical/devilution/C:\Users\[username]\AppData\Roaming\diasurgical\devilutionsudo apt-get install libsdl2-ttf-2.0-0 libsdl2-mixer-2.0-0./devilutionxLinux
sudo apt-get install cmake g++ libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev
sudo dnf install cmake glibc-devel SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel libasan libubsan
cd build
cmake ..
make -j$(nproc)
macOS
Make sure you have Homebrew installed, then run:
brew bundle
cd build
cmake ..
cmake --build . -j $(sysctl -n hw.physicalcpu)
FreeBSD
pkg install cmake sdl2_mixer sdl2_ttf libsodium
cd build
cmake ..
cmake --build . -j $(sysctl -n hw.ncpu)
OpenBSD
pkg_add cmake sdl2-mixer sdl2-ttf libsodium gmake
cd build
cmake -DCMAKE_MAKE_PROGRAM=gmake ..
cmake --build . -j $(sysctl -n hw.ncpuonline)
Windows via MinGW
Download and place the 32bit MinGW Development Libraries of SDL2, SDL2_mixer, SDL2_ttf and Libsodium in /usr/i686-w64-mingw32.
sudo apt-get install cmake gcc-mingw-w64-i686 g++-mingw-w64-i686
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake ..
make -j$(nproc)
Windows via Visual Studio
Make sure to install the C++ CMake tools for Windows component for Visual Studio.
Don't forget to perform user-wide integration step for additional convenience. 2. Install required dependencies by executing the following command (via cmd or powershell):
For the 64-bit version of the dependencies please run this command:
vcpkg install sdl2:x64-windows sdl2-mixer:x64-windows sdl2-ttf:x64-windows libsodium:x64-windows
For the 32-bit version of the dependencies please run this command:
vcpkg install sdl2:x86-windows sdl2-mixer:x86-windows sdl2-ttf:x86-windows libsodium:x86-windows
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\.File -> Open -> CMake, select CMakeLists.txt from the project root.Select Build devilution.exe from the Build menu.
Through cmake-gui
Input the path to devilutionx source directory at Where is the source code: field.
Where to build the binaries: field. If you want to place them inside source directory it's preferable to do so inside directory called build to avoid the binaries being added to the source tree.Win32 in Optional Platform for Generator, otherwise it will default to x64 build.vcpkg select Specify toolchain file for cross-compiling and select the file scripts/buildsystems/vcpkg.cmake from vcpkg directory otherwise just go with Use default native compilers.Generate and open produced .sln file using Visual Studio.Nintendo Switch
Run:
Packaging/switch/build.sh
This will install the Switch devkit and build a DevilutionX Switch package. If you already have the devkit installed, or are on a non-Debian system, pass the the devkit path to the script like this:
DEVKITPRO=<path to devkit> Packaging/switch/build.sh
The nro-file will be generated in the build folder. Test with an emulator (RyuJinx) or real hardware.
Haiku
pkgman install cmake_x86 devel:libsdl2_x86 devel:libsdl2_mixer_x86 devel:libsdl2_ttf_x86 devel:libsodium_x86
pkgman install cmake devel:libsdl2 devel:libsdl2_mixer devel:libsdl2_ttf devel:libsodium
cd build
setarch x86 #Switch to secondary compiler toolchain (GCC8+)
cmake ..
cmake --build . -j $(nproc)
No setarch required, as there is no secondary toolchain on x86_64, and the primary is GCC8+
cd build
cmake ..
cmake --build . -j $(nproc)
OpenDingux / RetroFW
DevilutionX uses buildroot to build packages for OpenDingux and RetroFW.
The build script does the following:
.ipk or .opk package.The buildroot uses ~2.5 GiB of disk space and can take 20 minutes to build.
For OpenDingux builds mksquashfs needs to be installed.
To build, run the following command
Packaging/OpenDingux/build.sh <platform>
Replace <platform> with one of: retrofw, rg350, or gkd350h.
This prepares and uses the buildroot at $HOME/buildroot-$PLATFORM-devilutionx.
Clockwork PI GameShell
You can either call
Packaging/cpi-gamesh/build.sh
to install dependencies and build the code.
Or you create a new directory under /home/cpi/apps/Menu and copy the file there. After restarting the UI, you can download and compile the game directly from the device itself. See the readme for more details.
Amiga via Docker
docker build -f Packaging/amiga/Dockerfile -t devilutionx-amiga .
docker run --rm -v "${PWD}:/work" devilutionx-amiga
sudo chown "${USER}:" build-amiga/*
The command above builds DevilutionX in release mode. For other build options, you can run the container interactively:
docker run -ti --rm -v "${PWD}:/work" devilutionx-amiga bash
See the CMD in Packaging/amiga/Dockerfile for reference.
Outside of the Docker container, from the DevilutionX directory, run:
cp Packaging/amiga/devilutionx.info Packaging/amiga/LiberationSerif-Bold.ttf build-amiga/
sudo chown "${USER}:" build-amiga/*
To actually start DevilutionX, increase the stack size to 50KiB in Amiga. You can do this by selecting the DevilutionX icon, then hold right mouse button and select Icons -> Information in the top menu.
CMake build options
-DBINARY_RELEASE=ON changed build type to release and optimize for distribution.-DNONET=ON disable network support, this also removes the need for the ASIO and Sodium.-DUSE_SDL1=ON build for SDL v1 instead of v2, not all features are supported under SDL v1, notably upscaling.-DSPAWN=ON build the shareware version, using spawn.mpq from the original shareware; which can still be downloaded for free.-DCMAKE_TOOLCHAIN_FILE=../CMake/32bit.cmake generate 32bit builds on 64bit platforms (remember to use the linux32 command if on Linux).-DCROSS_PREFIX=/path/to/prefix set the path to the i686-w64-mingw32 directory.-DDEBUG=OFF disable debug mode of the Diablo engine.-DASAN=OFF disable address sanitizer.-DUBSAN=OFF disable undefined behavior sanitizer.All games are encrypted and password protected.
DevilutionX supports gamepad controls.
Default controller mappings (A/B/X/Y as in Nintendo layout, so the rightmost button is attack):
For now, they can be re-mapped by changing SourceX/controls or by setting the SDL_GAMECONTROLLERCONFIG environment
variable (see
SDL_GameControllerDB).
List of known mods based on DevilutionX
Wow, does this mean I can download and play Diablo for free now?
No, you'll need access to the data from the original game. If you don't have an original CD then you can buy Diablo from GoG.com. Alternately you can use spawn.mpq from the http://ftp.blizzard.com/pub/demos/diablosw.exe version and compile the with the SPAWN flag defined.
What game changes does DevilutionX provide
DevilutionX's main focus is to make the game work on multiple platforms. An additional goal is to make the engine mod friendly. As such, there are no changes to gameplay, but we will be making some enhancments to the engine itself. For example, the engine now has upscaling, unlocked fps, controller support, and multiplayer via TCP.
Is 1080p supported?
Currently the game simply scales the original 640x480 to best fit, but we are working on widescreen support.
What about Hellfire?
Hellfire is being worked on and is mostly done, though not fully playable at the moment.
Does it work with Battle.net?
Battle.net is a service provided by Blizzard. We are not associated with them, so we have not worked on intergrating with their service.
From the beginning until release
DevilutionX is released to the Public
$ claude mcp add devilution \
-- python -m otcore.mcp_server <graph>