Case study
DevilutionX: porting Diablo’s reconstructed engine
Builds a modern Diablo and Hellfire port on the Devilution reconstruction, with platform support, bug fixes and optional quality-of-life features. The project documents the original symbol-assisted reconstruction and includes selected dungeon-generation and saved-game regression checks.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Full Diablo play requires the user’s original DIABDAT.MPQ. Hellfire additionally needs hellfire.mpq, hfmonk.mpq, hfmusic.mpq and hfvoice.mpq. The separately offered spawn.mpq supports only the shareware portion; source availability does not supply rights to original game content.
- Prerequisites: The pinned source identifies 1.6.0-dev and requires CMake 3.22 and C++23. SDL2 is the default, with separate SDL1/SDL3 options; build documentation lists platform-dependent libraries and packaging steps.
- Scope: The background describes Devilution’s use of PlayStation debug symbols, assertion strings, compiler information and assembly comparisons.
- Testing evidence: The reviewed timedemo test replays a warrior’s level-1-to-2 session and compares saved hero state; it skips without MPQ data and explicitly selects shareware mode. Separate dungeon tests compare seeded fixtures. These are bounded regression checks.
- License: The root LICENSE.md declares Sustainable Use License 1.0: use/modification is limited to internal business purposes, non-commercial use or personal use, while distribution must be free and non-commercial. Components and original game data retain separate terms.
- License: The same snapshot retains conflicting Public Domain wording in the Windows package README and Unlicense metadata in the Apple bundle configuration.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · diasurgical/DevilutionX · Revision 9443306
- docs/BACKGROUND.md GitHub · diasurgical/DevilutionX · Revision 9443306
- VERSION GitHub · diasurgical/DevilutionX · Revision 9443306
- CMakeLists.txt GitHub · diasurgical/DevilutionX · Revision 9443306
- docs/building.md GitHub · diasurgical/DevilutionX · Revision 9443306
- test/timedemo_test.cpp GitHub · diasurgical/DevilutionX · Revision 9443306
- test/drlg_l1_test.cpp GitHub · diasurgical/DevilutionX · Revision 9443306
- LICENSE.md GitHub · diasurgical/DevilutionX · Revision 9443306
- Packaging/windows/README.txt GitHub · diasurgical/DevilutionX · Revision 9443306
- Packaging/resources/README-SDL.txt GitHub · diasurgical/DevilutionX · Revision 9443306
More in Games
- DiabloWeb: a WebAssembly browser port built on Devilution · Case study
- Dusklight: a native Twilight Princess port built on the decompilation · Case study
- Ghostship: a libultraship native port of Super Mario 64 · Case study
- GoldenEye 007: an agent-assisted native port from a decompilation · Case study
- ico-pc: a native ICO port compiled from the PS2 decompilation · Case study
- Kingdom Hearts 358/2 Days: native PC port built on a matching decompilation · Case study