DevilutionX::SDL carried libdevilutionx_sdl2_to_1_2_backports, so linking SDL pulled in our own compatibility shims, and with them libdevilutionx_strings and libdevilutionx_utils_console. Anything that only wanted the SDL headers got a chunk of devilutionX behind them. Drop it from DevilutionX::SDL and let the targets that actually use the shims say so. That is every target whose objects reference a symbol defined by sdl2_to_1_2_backports.cpp, found by matching the undefined symbols in each object library against the ones it defines. Object libraries do not link, so a missing dependency here is invisible at build time: the archive reached the executable through whichever target happened to name it. The dependency is PUBLIC where one of the target's own headers reaches utils/sdl2_to_1_2_backports.h and PRIVATE where only its .cpp files do. libdevilutionx_paths already declared it and is moved to PRIVATE on the same rule: only utils/paths.cpp includes the header, utils/paths.h does not. Co-Authored-By: Claude Opus 5 <[email protected]>
(The health-bar and XP-bar are off by default but can be enabled in the game settings. Widescreen can also be disabled if preferred.)
What is DevilutionX
DevilutionX is a port of Diablo and Hellfire that strives to make it simple to run the game while providing engine improvements, bug fixes, and some optional quality of life features.
Check out the manual for available features and how to take advantage of them.
For a full list of changes, see our changelog.
How to Install
Note: You'll need access to the data from the original game. If you don't have an original CD, you can buy Diablo from GoG.com or Battle.net. Alternatively, you can use spawn.mpq from the shareware [2] version, in place of DIABDAT.MPQ, to play the shareware portion of the game.
Download the latest DevilutionX release and extract the contents to a location of your choosing or build from source.
- Copy
DIABDAT.MPQfrom the CD or Diablo installation (or extract it from the GoG installer) to the DevilutionX folder. - To run the Diablo: Hellfire expansion, you will also need to copy
hellfire.mpq,hfmonk.mpq,hfmusic.mpq, andhfvoice.mpq.
For more detailed instructions: Installation Instructions.
Contributing
We are always looking for more people to help with coding, documentation, testing the latest builds, spreading the word, or simply just hanging out on our Discord server.
Mods
We hope to provide a good starting point for mods. In addition to the full Devilution source code, we also provide modding tools. Check out the list of known mods based on DevilutionX.
Test Builds
If you want to help test the latest development version (make sure to back up your files, as these may contain bugs), you can fetch the test build artifact from one of the build servers:
Note: You must be logged into GitHub to download the attachments!
Building from Source
Want to compile the program by yourself? Great! Simply follow the build instructions.
Credits
- The original Devilution project: Devilution
- Everyone who worked on Devilution/DevilutionX
- Nikolay Popov for UI and graphics
- WiAParker for the Polish voice pack
- And thanks to all who support the project, report bugs, and help spread the word ❤️
Legal
DevilutionX is made publicly available and released under the Sustainable Use License (see LICENSE).
The source code in this repository is for non-commercial use only. If you use the source code, you may not charge others for access to it or any derivative work thereof.
Diablo® - Copyright © 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.
DevilutionX and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®.