Status | Platform |
---|---|
Linux 32bit & 64bit, Windows 32bit, SDL1 | |
macOS 64bit | |
Windows MSVC |
- Copy diabdat.mpq from your CD, or GoG install folder, to the DevilutionX install folder ; Make sure it is all lowercase.
- Download DevilutionX, or build from source
- Install SDL2 (including SDL2_mixer and SDL2_ttf)
- Run
./devilutionx
Please keep in mind that this is still being worked on and is missing parts of UI and some minor bugs, see milestone 1 for a full list of known issues.
Linux
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 ..
cmake --build . -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)
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 ..
cmake --build . -j $(nproc)
Windows via Visual Studio
Make sure to install the C++ CMake tools for Windows
component for Visual Studio.
- Using vcpkg (recommended)
-
Install vcpkg following the instructions from https://github.com/microsoft/vcpkg#quick-start.
Don't forget to perform user-wide integration step for additional convenience.
-
Install required dependencies by executing the following command (via cmd or powershell):
vcpkg install sdl2:x86-windows sdl2-mixer:x86-windows sdl2-ttf:x86-windows libsodium:x86-windows
Note: this command installs libraries compiled for x86 but it's not hard to do the same for x64 libraries if you need it
- Manually
- Download and place the 32bit MSVC Development Libraries of SDL2, SDL2_mixer, SDL2_ttf and Libsodium in
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\
. - If dependencies are not found or you wish to place them in other location - configure required path variables in "Manage Configurations..." dialog inside Visual Studio or in cmake-gui.
- Through Open->CMake in Visual Studio
-
Go to
File -> Open -> CMake
, selectCMakeLists.txt
from the project root. -
Select
Build devilution.exe
from theBuild
menu.Note: By default Visual Studio only creates configuration x64-Debug, to add the new configuration (e.g. x86-Debug) please click "Manage Configurations..." in combo box on the top and then on button with green plus to add a new configuration
- Through cmake-gui
- Input the path to devilutionx source directory at
Where is the source code:
field. - Input the path where the binaries would be placed at
Where to build the binaries:
field. If you want to place them inside source directory it's preferable to do so inside directory calledbuild
to avoid the binaries being added to the source tree. - It's recommended to input
Win32
inOptional Platform for Generator
, otherwise it will default to x64 build. - In case you're using
vcpkg
selectSpecify toolchain file for cross-compiling
and select the filescripts/buildsystems/vcpkg.cmake
fromvcpkg
directory otherwise just go withUse default native compilers
. - In case you need to select any paths to dependencies manually do this right in cmake-gui window.
- Press
Generate
and open produced.sln
file using Visual Studio. - Use build/debug etc. commands inside Visual Studio Solution like with any normal Visual Studio project.
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:
- Downloads and configures the buildroot if necessary.
- Builds the executable (using CMake).
- Packages the executable and all related resources into an
.ipk
package.
The buildroot uses ~4 GiB of disk space and can take almost an hour to build.
For OpenDingux builds mksquashfs
needs to be installed.
The RetroFW build uses the buildroot at $HOME/buildroot-2018.02.9-retrofw
.
Packaging/OpenDingux/build-retrofw.sh
This OpenDingux build uses the buildroot at $HOME/buildroot-rg350-devilutionx
.
Packaging/OpenDingux/build-rg350.sh
This OpenDingux build uses the buildroot at $HOME/buildroot-rs90-devilutionx
.
Packaging/OpenDingux/build-rs90.sh
The default build type is Debug
. This can be changed with -DBINARY_RELEASE=ON
. Independently of this, the debug mode of the Diablo engine is always enabled by default. It can be disabled with -DDEBUG=OFF
. Finally, in debug builds the address sanitizer is enabled by default. This can be disabled with -DASAN=OFF
.
You can also generate 32bit builds on 64bit platforms by setting -DCMAKE_TOOLCHAIN_FILE=../CMake/32bit.cmake
(remember to use the linux32
command if on Linux).
Network support can be disabled using -DNONET=ON
, this also removes the need for the ASIO and Sodium dependencies.
You can compile the shareware version with -DSPAWN=ON
this will allow you to try the game using spawn.mpq from the original shareware which can still be downloaded for free.
Use -DCROSS_PREFIX=/path/to/prefix
if the i686-w64-mingw32
directory is not in /usr
.
Pass -DUSE_SDL1=ON
to build with SDL v1 instead of v2.
Note that some features are not yet supported in SDL v1, notably upscaling, and fullscreen.
- TCP/IP only requires the host to expose port 6112
- UDP/IP requires that all players expose port 6112
All games are encrypted and password protected.
Below are a few examples of some simple improvements made to the game. It is planned in the future to create tools for designing dungeons and graphics.
Click to reveal
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. Alternatively you can also use spawn.mpq
from the http://ftp.blizzard.com/pub/demos/diablosw.exe version and compile the with the SPAWN flag defined.
Cool, so I fired your mod up, but there's no 1080p or new features?
We're working on it.
What about Hellfire?
Hellfire was a bit of a flop on the developer's part. Support may come in the future once the base game is finished.
- Reverse engineered by GalaXyHaXz in 2018
- sanctuary - extensively documenting Diablo's game engine
- BWAPI Team - providing library API to work with Storm
- Ladislav Zezula - reversing PKWARE library, further documenting Storm
- fearedbliss - being awe-inspiring
- Climax Studios & Sony - secretly helping with their undercover QA :P
- Blizzard North - wait, this was a typo!
- Depression - reason to waste four months of my life doing this ;)
And a special thanks to all the support and people who work on Devilution to make it possible! <3
From the beginning until release
Devilution is released to the Public Domain. The documentation and function provided by Devilution may only be utilized with assets provided by ownership of Diablo.
Battle.net(R) - Copyright (C) 1996 Blizzard Entertainment, Inc. All rights reserved. Battle.net and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.
Diablo(R) - Copyright (C) 1996 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.
Devilution and any of its' maintainers are in no way associated with or endorsed by Blizzard Entertainment(R).