You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Anders Jenbo 45df94053c
Update appveyor.yml
7 years ago
.circleci Reduce required CMake version 7 years ago
.travis Updating build scripts 7 years ago
.vscode Fix macOS compilation errors (#28) 7 years ago
3rdParty Fix missing return in StormLib 7 years ago
CMake Require CMake 3.10 for Windows 7 years ago
DiabloUI Merge branch 'master' of github.com:diasurgical/devilution 7 years ago
Source Merge branch 'master' of github.com:diasurgical/devilution 7 years ago
SourceS Fixes, fix some warnings 7 years ago
SourceX Improve mpq error message 7 years ago
Xcode Keep icon pixilated 7 years ago
docker Miniwin: Port to Linux with stubs 8 years ago
docs Fix debug build as C (#566) 7 years ago
.clang-format Update style to use tabs 7 years ago
.editorconfig Update style to use tabs 7 years ago
.gitignore Adding ignored files of xcode 7 years ago
.travis.yml implementing travis matrix 7 years ago
CMakeLists.txt Reduce required CMake version 7 years ago
Diablo.dsp Merge branch 'master' of github.com:diasurgical/devilution into working 7 years ago
Diablo.dsw fixed a bunch of unmerged stuff 8 years ago
Diablo.ico Add files via upload 8 years ago
Diablo.rc + do not use MFC header in .rc 8 years ago
Diablo.sln Created VS 2017 solution file and project files. (#93) 8 years ago
Diablo.vcxproj + do not use debug info in release build 8 years ago
Diablo.vcxproj.filters Fix junk (#174) 8 years ago
LICENSE Create LICENSE 8 years ago
Makefile The big cheap fix (#446) 7 years ago
MakefileVC MI_Firemove bin exact 7 years ago
README.md Add instructions to build on Fedora 7 years ago
appveyor.yml Update appveyor.yml 7 years ago
defs.h Fix type for 'gpBuffer' (#672) 7 years ago
enums.h Implement ui layout framework 7 years ago
format.sh Use .clang-format config instead of -style command line settings. 8 years ago
resource.h Fix function signatures and others (#158) 8 years ago
structs.h Merge branch 'master' of github.com:diasurgical/devilution 7 years ago
types.h Merge branch 'master' of github.com:diasurgical/devilution 7 years ago
xcode-build.sh Reduce required CMake version 7 years ago

README.md

Downloads github stars

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

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-dev:i386 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

Install the build tools using Homebrew:

brew install automake autoconf libtool

Get SDL2, SDL2_mixer, SDL2_ttf and Libsodium:

./xcode-build.sh --get-libs

Compiling

./xcode-build.sh --build-libs
./xcode-build.sh --build-project
./xcode-build.sh --package
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)

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-dev libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev

Compiling

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

Install the dependencies using Homebrew:

brew install cmake sdl2_mixer sdl2_ttf libsodium pkg-config

Compiling

mkdir build
cd build
cmake ..
make -j$(sysctl -n hw.physicalcpu)

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

After looking at the code some of it is a disaster

That is the result of decompiled code. Whenever a program is compiled, much of the source is optimized and stripped away, so it's nearly impossible to decompile it back. Have patience. Everything will be cleaned up eventually. :)

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

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