Skip to content

devilutionx - RetroBIOS

Type standalone
Classification Game engines
Source https://github.com/diasurgical/DevilutionX
Upstream None
Version 1.6.0-dev
Profiled 2026-10-04
Cores devilutionx
Systems diablo
Checked by md5
Technical notes

DevilutionX is a reimplementation of the Diablo 1 engine built from the leaked Diablo source. It plays the original retail Diablo and the Hellfire expansion from their shipped MPQ archives, or the shareware Spawn edition. The code loads MPQs from the game folder (next to the executable) and from a few platform-specific locations (XDG data home, macOS Application Support, etc.) via GetMPQSearchPaths().

Load order is defined in Source/engine/assets.cpp: LoadCoreArchives() (:505) - devilutionx.mpq, fonts.mpq (optional) LoadLanguageArchive() (:521) - <language code>.mpq, skipped for "en" LoadGameArchives() (:530) - diabdat.mpq or spawn.mpq (required) hfbard.mpq, hfbarb.mpq (always probed) LoadHellfireArchives() (:570) - hellfire.mpq + hfmonk/hfmusic/hfvoice LoadModArchives() (:703) - mods/<name>.mpq for each active mod

diabdat.mpq is matched uppercase first ("DIABDAT.MPQ", GOG/retail CD convention, line 538), then lowercase (line 542); if neither is found the loader falls back to spawn.mpq (line 544). Missing BOTH triggers the "diabdat.mpq or spawn.mpq" InsertCDDlg dialog and the game cannot start.

Hellfire is optional: the engine advertises Diablo even when hellfire files are absent. If hellfire.mpq is loaded, hfmonk.mpq + hfmusic.mpq + hfvoice.mpq must also be present (line 588) or the game aborts.

devilutionx.mpq is a build artefact packed from the repo's assets/ directory with the smpq tool (CMake option BUILD_ASSETS_MPQ, CMakeLists.txt:192-204). CMake/Assets.cmake:46-238 lists the packed files (ASSETS_VERSION, arena, data, fonts, gendata, levels, lua, plrgfx, txtdata and ui_art, plus data/inv/objcurs-widths.txt and the ui_art PNGs outside SDL1 and Vita builds); each Translations/<lang>.po is compiled with msgfmt to <lang>.gmo and appended (CMake/Assets.cmake:8-29, 268-272). The archive is written with "smpq -A -M 1 -C BZIP2 -c" from the staged assets directory (CMake/Assets.cmake:287-294). mods/hf.mpq is built the same way from the mods/hf file list (CMake/Mods.cmake:8-33, 58-67). The compiled binary expects devilutionx.mpq next to the executable on every platform except Android, Apple and 3DS/Switch (:509-516), where its contents are shipped loose. After loading the core archives the engine reads the asset ASSETS_VERSION and aborts with "Failed to load UI resources" unless its content is "1\n" (Source/init.cpp:54, 79-85, Source/diablo.cpp:1225-1239). The same test on fonts\VERSION applies to fonts.mpq when it is loaded (Source/init.cpp:98-114).

fonts.mpq is the CJK + language assets add-on from the devilutionx-assets release; English installs do not need it.

14 files | 2 required, 12 optional | 7 in repo, 7 missing Categories: 14 game data

diabdat.mpq required missing game_data
Diablo retail or GOG MPQ (contains all game data)

  • Path: devilutionx/diabdat.mpq
  • System: diablo
  • Aliases: DIABDAT.MPQ
  • Source: Source/engine/assets.cpp:537-542
  • primary game archive; GOG CD convention uses uppercase

spawn.mpq optional in repo game_data
Diablo shareware archive, used when diabdat.mpq is absent

hellfire.mpq optional missing game_data
Hellfire expansion main archive

hfmonk.mpq optional missing game_data
Hellfire monk class assets; mandatory when hellfire.mpq is present

hfmusic.mpq optional missing game_data
Hellfire music; mandatory when hellfire.mpq is present

hfvoice.mpq optional missing game_data
Hellfire voices; mandatory when hellfire.mpq is present

hfbard.mpq optional missing game_data
Hellfire bard class assets, loaded when present

hfbarb.mpq optional missing game_data
Hellfire barbarian class assets, loaded when present

devilutionx.mpq required in repo game_data
Engine assets (UI art, fonts, data tables, Lua scripts, compiled translations) packed from the repository's assets/ directory

fonts.mpq optional in repo game_data
CJK and extended-language font pack from devilutionx-assets release

es.mpq optional in repo game_data
Spanish voice pack

  • Path: devilutionx/es.mpq
  • System: diablo
  • Source: Source/engine/assets.cpp:521-528
  • The archive named after the selected language code is loaded; English loads none.

pl.mpq optional in repo game_data
Polish voice pack

  • Path: devilutionx/pl.mpq
  • System: diablo
  • Source: Source/engine/assets.cpp:521-528
  • The archive named after the selected language code is loaded; English loads none.

ru.mpq optional in repo game_data
Russian voice pack

  • Path: devilutionx/ru.mpq
  • System: diablo
  • Source: Source/engine/assets.cpp:521-528
  • The archive named after the selected language code is loaded; English loads none.

hf.mpq optional in repo game_data
Hellfire mod archive packed from the repository's mods/hf directory

Generated on 2026-10-10T11:26:01Z