A year and a half ago, in the middle of 2018, a Github user galaxyhaxz released the first version of Devilution, a project to reconstruct the source code of Blizzard's well known ARPG Diablo I. By using a combination of decompilation tools, debugging information left behind on certain releases of the game, and many hours of making code readable, galaxyhaxz was able to create the first iteration of Devilution.
Once the source code had reached an acceptable state, DevilutionX was started. Why another project? Well:
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.
Just this week, DevilutionX released version 1.0.0, as it seems the contributors are happy with the current state of the project. This latest release includes many features and upgrades that make Diablo I run great on modern systems. Such as:
- FPS no longer capped at 20hz; smoother mouse and transitions
- Full-featured gamepad support
- Fixed a large number of rare stability issues from the original game
- Implement FPS counter (-f)
- Added OpenBSD support
As with most open source, engine replacement projects, you will still need the original Diablo I assets to run the game. Specifically, 'diabdat.mpq' is required. If you own the GOG version of Diablo I, it is a pretty straightforward process to extract the assets using the tool innoextract.
From my experience so far, Diablo I runs great on Linux, thanks to DevilutionX, and the engine updates are a very welcome addition. Check out the DevilutionX Github page for full installation instructions.