Skip to content

cmhobbs/devilutionX

 
 

Repository files navigation

Downloads github stars

Status Platform
CircleCI Linux 32bit & 64bit, Windows 32bit
Build Status macOS 32bit & 64bit
Build status Windows MSVC

Discord Channel Discord Chat Channel

How To Play:

  • Copy diabdat.mpq from your CD, or GoG install folder, to the DevilutionX game directory ; Make sure it is all lowercase.
  • Download DevilutionX, or build from source
  • Install SDL2 (including SDL2_mixer and SDL2_ttf) make sure to get the appropriate 32bit or 64bit version.
  • 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.

Building from Source

32-bit building on 64-bit platforms

Linux

Installing dependencies on Debian and Ubuntu

sudo apt-get install cmake g++-multilib libsdl2-mixer-dev:i386 libsdl2-ttf-dev:i386 libsodium-dev libsodium-dev:i386

Installing dependencies on Fedora

sudo dnf install cmake glibc-devel.i686 SDL2-devel.i686 SDL2_ttf-devel.i686 SDL2_mixer-devel.i686 libsodium-devel.i686 libasan.i686

Compiling

mkdir build
cd build
linux32 cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/32bit.cmake ..
linux32 make -j$(nproc)
macOS

Installing dependencies

Install Xcode 9.4.1 and Xcode Command Line tools, this is the last version with 32 bits support.

Note: Be sure that your to select the command line Xcode if you have more then one installed:

$ sudo xcode-select --switch /Applications/Xcode.app

Verify that you don't have FreeType and HarfBuzz installed from Homebrew, which will cause build errors for SDL2_ttf:

brew info freetype
brew info harfbuzz

If you do have those installed, you'll have to temporarily uninstall them:

brew uninstall --ignore-dependencies freetype
brew uninstall --ignore-dependencies harfbuzz

You can install FreeType and HarfBuzz from Homebrew again after devilutionX builds successfully.

Now you can run the build script:

./macos-build.sh --build-all-x86
Windows via MinGW

Installing dependencies on Debian and Ubuntu

Download and place the 32bit MinGW Development Libraries of SDL2, SDL2_mixer, SDL2_ttf and Libsodium in /user/i686-w64-mingw32.

sudo apt-get install cmake gcc-mingw-w64-i686 g++-mingw-w64-i686

Compiling

mkdir build
cd build
cmake -DASAN=OFF -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake ..
make -j$(nproc)
Windows via Visual Studio

Installing dependencies

Make sure to install the C++ CMake tools for Windows component for Visual Studio.

  • Using vcpkg (recommended)
  1. 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.

  2. 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
  1. Download and place the 32bit MSVC Development Libraries of SDL2, SDL2_mixer, SDL2_ttf and Libsodium in %USERPROFILE%\AppData\Local\Microsoft\WindowsApps\.
  2. 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.

Compiling

  • Through Open->CMake in Visual Studio
  1. Go to File -> Open -> CMake, select CMakeLists.txt from the project root.

  2. Select Build devilution.exe from the Build 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
  1. Input the path to devilutionx source directory at Where is the source code: field.
  2. 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 called build to avoid the binaries being added to the source tree.
  3. It's recommended to input Win32 in Optional Platform for Generator, otherwise it will default to x64 build.
  4. In case you're using 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.
  5. In case you need to select any paths to dependencies manually do this right in cmake-gui window.
  6. Press Generate and open produced .sln file using Visual Studio.
  7. Use build/debug etc. commands inside Visual Studio Solution like with any normal Visual Studio project.

Building for the native platform

Note: Since 64-bit builds are currently not in a playable state, it is advised to build in a 32-bit environment. Another possibility is a 32-bit build on a 64-bit system (see above).

Linux

Installing dependencies on Debian and Ubuntu

sudo apt-get install cmake g++ libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev

Installing dependencies on Fedora

sudo dnf install cmake glibc-devel SDL2-devel SDL2_ttf-devel SDL2_mixer-devel libsodium-devel libasan

Compiling

mkdir build
cd build
cmake ..
make -j$(nproc)
macOS

Make sure you have Homebrew installed, then run:

brew bundle
mkdir build
cd build
cmake ..
make -j$(sysctl -n hw.physicalcpu)
FreeBSD *Note: At the moment this only appears to work from a 32bit system.*

Installing dependencies

pkg install cmake gcc8 sdl2_mixer sdl2_ttf libsodium

Compiling

mkdir build
cd build
cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++8 ..
make -j$(sysctl -n hw.ncpu)
Haiku

Installing dependencies on 32 bit Haiku

pkgman install cmake_x86 devel:libsdl2_x86 devel:libsdl2_mixer_x86 devel:libsdl2_ttf_x86 devel:libsodium_x86

Installing dependencies on 64 bit Haiku

pkgman install cmake devel:libsdl2 devel:libsdl2_mixer devel:libsdl2_ttf devel:libsodium

Compiling on 32 bit Haiku

mkdir build
cd build
cmake -DCMAKE_C_COMPILER=gcc-x86 -DCMAKE_CXX_COMPILER=g++-x86 -DBINARY_RELEASE=ON ..
make -j$(nproc)

Compiling on 64 bit Haiku

mkdir build
cd build
cmake ..
make -j$(nproc)

CMake arguments

General

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.

mingw32

Use -DCROSS_PREFIX=/path/to/prefix if the i686-w64-mingw32 directory is not in /usr.

Multiplayer

  • 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.

Contributing

Guidelines

Modding

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.

Screenshot 1: Monster lifebar+items

Screenshot 2: New trade screen

F.A.Q.

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.

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.

Credits

  • 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

Changelog

From the beginning until release

Legal

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).

About

Diablo build for modern operating systems

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 90.5%
  • C 7.8%
  • CMake 1.2%
  • Shell 0.2%
  • Pawn 0.2%
  • Makefile 0.1%