chore: bring devilutionx to head

hf.mpq now has its own CMake option, BUILD_MOD_MPQS, beside BUILD_ASSETS_MPQ. The loaders moved by two lines after a romfs search path was added for 3DS and Switch. Same files.
This commit is contained in:
Abdessamad Derraz committed 2026-10-23 15:52:35 +02:00
1 parent 5906e55fea
commit d9cf45c6d3
1 file changed
+27 -26
+27 -26
View File
@@ -4,7 +4,7 @@ core_classification: game_engine
source: "https://github.com/diasurgical/DevilutionX"
upstream: ~
profiled_date: "2026-10-04"
source_commit: "dac104babfb6187415432f428ac2516747ffc154"
source_commit: "0706e014d6a12ec8178a81fba549a68bd559f247"
core_version: "1.6.0-dev"
display_name: "Diablo (DevilutionX)"
cores: [devilutionx]
@@ -20,26 +20,26 @@ notes: |
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)
LoadCoreArchives() (:507) - devilutionx.mpq, fonts.mpq (optional)
LoadLanguageArchive() (:523) - <language code>.mpq, skipped for "en"
LoadGameArchives() (:532) - 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
LoadHellfireArchives() (:572) - hellfire.mpq + hfmonk/hfmusic/hfvoice
LoadModArchives() (:712) - 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
convention, line 540), then lowercase (line 544). If neither is found
the loader falls back to spawn.mpq (line 546). 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.
+ hfvoice.mpq must also be present (line 590) 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
CMakeLists.txt:192-205). 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), and each Translations/<lang>.po
@@ -47,9 +47,10 @@ notes: |
(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
the mods/hf file list under the BUILD_MOD_MPQS option
(CMake/Mods.cmake:11-36, 61-71). The compiled
binary expects devilutionx.mpq next to the executable on every
platform except Android, Apple and 3DS/Switch (:509-516), where its
platform except Android, Apple and 3DS/Switch (:511-518), 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,
@@ -68,7 +69,7 @@ files:
description: "Diablo retail or GOG MPQ (contains all game data)"
aliases: [DIABDAT.MPQ]
note: "primary game archive, the GOG CD convention uses uppercase"
source_ref: "Source/engine/assets.cpp:537-542"
source_ref: "Source/engine/assets.cpp:539-544"
- name: spawn.mpq
path: devilutionx/spawn.mpq
@@ -77,7 +78,7 @@ files:
required: false
description: "Diablo shareware archive, used when diabdat.mpq is absent"
note: "freely redistributable shareware, triggers gbIsSpawn mode"
source_ref: "Source/engine/assets.cpp:544"
source_ref: "Source/engine/assets.cpp:546"
- name: hellfire.mpq
path: devilutionx/hellfire.mpq
@@ -85,7 +86,7 @@ files:
category: game_data
required: false
description: "Hellfire expansion main archive"
source_ref: "Source/engine/assets.cpp:573"
source_ref: "Source/engine/assets.cpp:575"
- name: hfmonk.mpq
path: devilutionx/hfmonk.mpq
@@ -93,7 +94,7 @@ files:
category: game_data
required: false
description: "Hellfire monk class assets, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:583"
source_ref: "Source/engine/assets.cpp:585"
- name: hfmusic.mpq
path: devilutionx/hfmusic.mpq
@@ -101,7 +102,7 @@ files:
category: game_data
required: false
description: "Hellfire music, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:584"
source_ref: "Source/engine/assets.cpp:586"
- name: hfvoice.mpq
path: devilutionx/hfvoice.mpq
@@ -109,7 +110,7 @@ files:
category: game_data
required: false
description: "Hellfire voices, mandatory when hellfire.mpq is present"
source_ref: "Source/engine/assets.cpp:585"
source_ref: "Source/engine/assets.cpp:587"
- name: "hfbard.mpq"
path: "devilutionx/hfbard.mpq"
@@ -117,7 +118,7 @@ files:
category: game_data
required: false
description: "Hellfire bard class assets, loaded when present"
source_ref: "Source/engine/assets.cpp:565"
source_ref: "Source/engine/assets.cpp:567"
- name: "hfbarb.mpq"
path: "devilutionx/hfbarb.mpq"
@@ -125,7 +126,7 @@ files:
category: game_data
required: false
description: "Hellfire barbarian class assets, loaded when present"
source_ref: "Source/engine/assets.cpp:566"
source_ref: "Source/engine/assets.cpp:568"
- name: "devilutionx.mpq"
path: "devilutionx/devilutionx.mpq"
@@ -137,7 +138,7 @@ files:
md5: "5afe4d6624064b41e25a36ac55da29fa"
description: "Engine assets (UI art, fonts, data tables, Lua scripts, compiled translations) packed from the repository's assets/ directory"
note: "Loaded first on every platform except Android, Apple, 3DS and Switch. Its files are also found in an assets/ directory next to the binary when the build installs them loose. The engine aborts when the asset ASSETS_VERSION is absent or is not \"1\\n\". Built by CMake with smpq (MPQ version 1, BZIP2, no attributes) from the file list of CMake/Assets.cmake plus one <lang>.gmo per translation. Shipped beside the binary in the Windows zip and the Linux tarball, and loose under assets/ in the APK. The hashes are those of the 1.5.5 release."
source_ref: "Source/engine/assets.cpp:509-516, 223-226, Source/init.cpp:54, 79-85, Source/diablo.cpp:1225-1239, CMake/Assets.cmake:46-224, 287-294"
source_ref: "Source/engine/assets.cpp:511-518, 223-226, Source/init.cpp:54, 79-85, Source/diablo.cpp:1225-1239, CMake/Assets.cmake:46-224, 287-294"
- name: "fonts.mpq"
path: "devilutionx/fonts.mpq"
@@ -145,7 +146,7 @@ files:
category: game_data
required: false
description: "CJK and extended-language font pack from devilutionx-assets release"
source_ref: "Source/engine/assets.cpp:517"
source_ref: "Source/engine/assets.cpp:519"
- name: "es.mpq"
path: "devilutionx/es.mpq"
@@ -154,7 +155,7 @@ files:
required: false
description: "Spanish voice pack"
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
source_ref: "Source/engine/assets.cpp:523-530"
- name: "pl.mpq"
path: "devilutionx/pl.mpq"
@@ -163,7 +164,7 @@ files:
required: false
description: "Polish voice pack"
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
source_ref: "Source/engine/assets.cpp:523-530"
- name: "ru.mpq"
path: "devilutionx/ru.mpq"
@@ -172,7 +173,7 @@ files:
required: false
description: "Russian voice pack"
note: "The archive named after the selected language code is loaded. English loads none."
source_ref: "Source/engine/assets.cpp:521-528"
source_ref: "Source/engine/assets.cpp:523-530"
- name: "hf.mpq"
path: "devilutionx/mods/hf.mpq"
@@ -181,4 +182,4 @@ files:
required: false
description: "Hellfire mod archive packed from the repository's mods/hf directory"
note: "mods/<name>.mpq is opened for each active mod, and hf is activated when hellfire.mpq is present. A mod with no archive and no loose directory is served from the core archives. Built by CMake with smpq (MPQ version 1, BZIP2, no attributes) from the hellfire_mod file list. The Windows and Linux packaging of this revision installs it under mods/ beside devilutionx.mpq, and no release carries it yet."
source_ref: "Source/engine/assets.cpp:748-764, Source/options.cpp:77-79, CMakeLists.txt:204, 638-643, 702-707, CMake/Mods.cmake:8-33, 58-66"
source_ref: "Source/engine/assets.cpp:756-772, Source/options.cpp:77-79, CMakeLists.txt:205, 641-646, 705-710, CMake/Mods.cmake:11-36, 61-70"