From b21f09295fda728e8ac834f4b7302c276b12e7b3 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 07:43:11 +0100 Subject: [PATCH] chore: advance devilutionx to 74ce5cd --- emulators/devilutionx.yml | 62 +++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/emulators/devilutionx.yml b/emulators/devilutionx.yml index 97825919c..2af71f62d 100644 --- a/emulators/devilutionx.yml +++ b/emulators/devilutionx.yml @@ -3,8 +3,8 @@ type: standalone core_classification: game_engine source: "https://github.com/diasurgical/DevilutionX" upstream: ~ -profiled_date: "2026-10-04" -source_commit: "9d4871587e1a8d9606f97a43d85e939b82f77900" +profiled_date: "2026-11-09" +source_commit: "74ce5cdb15da44b28427ad6ee2b107bd6dcd6f61" core_version: "1.6.0-dev" version_basis: kind: file @@ -24,41 +24,41 @@ notes: | macOS Application Support, etc.) via GetMPQSearchPaths(). Load order is defined in Source/engine/assets.cpp: - LoadCoreArchives() (:507) - devilutionx.mpq, fonts.mpq (optional) - LoadLanguageArchive() (:523) - .mpq, skipped for "en" - LoadGameArchives() (:532) - diabdat.mpq or spawn.mpq (required) + LoadCoreArchives() (:513) - devilutionx.mpq, fonts.mpq (optional) + LoadLanguageArchive() (:529) - .mpq, skipped for "en" + LoadGameArchives() (:538) - diabdat.mpq or spawn.mpq (required) hfbard.mpq, hfbarb.mpq (always probed) - LoadHellfireArchives() (:572) - hellfire.mpq + hfmonk/hfmusic/hfvoice - LoadModArchives() (:712) - mods/.mpq for each active mod + LoadHellfireArchives() (:578) - hellfire.mpq + hfmonk/hfmusic/hfvoice + LoadModArchives() (:724) - mods/.mpq for each active mod diabdat.mpq is matched uppercase first ("DIABDAT.MPQ", GOG/retail CD - convention, line 540), then lowercase (line 544). If neither is found - the loader falls back to spawn.mpq (line 546). Missing BOTH triggers + convention, line 546), then lowercase (line 550). If neither is found + the loader falls back to spawn.mpq (line 552). 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 590) or the game aborts. + + hfvoice.mpq must also be present (line 596) 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-205). CMake/Assets.cmake:46-238 lists the packed + CMakeLists.txt:192-205). CMake/Assets.cmake:46-239 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/.po is compiled with msgfmt to .gmo and appended - (CMake/Assets.cmake:8-29, 268-272). The archive is written with + (CMake/Assets.cmake:8-29, 269-273). 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 + (CMake/Assets.cmake:288-295). mods/hf.mpq is built the same way from the mods/hf file list under the BUILD_MOD_MPQS option - (CMake/Mods.cmake:11-36, 61-71). The compiled + (CMake/Mods.cmake:11-37, 52-62). The compiled binary expects devilutionx.mpq next to the executable on every - platform except Android, Apple and 3DS/Switch (Source/engine/assets.cpp:511-518), where its + platform except Android, Apple and 3DS/Switch (Source/engine/assets.cpp:517-524), 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 + Source/diablo.cpp:1228-1242). 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 @@ -73,7 +73,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:539-544" + source_ref: "Source/engine/assets.cpp:545-550" - name: spawn.mpq path: devilutionx/spawn.mpq @@ -82,7 +82,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:546" + source_ref: "Source/engine/assets.cpp:552" - name: hellfire.mpq path: devilutionx/hellfire.mpq @@ -90,7 +90,7 @@ files: category: game_data required: false description: "Hellfire expansion main archive" - source_ref: "Source/engine/assets.cpp:575" + source_ref: "Source/engine/assets.cpp:581" - name: hfmonk.mpq path: devilutionx/hfmonk.mpq @@ -98,7 +98,7 @@ files: category: game_data required: false description: "Hellfire monk class assets, mandatory when hellfire.mpq is present" - source_ref: "Source/engine/assets.cpp:585" + source_ref: "Source/engine/assets.cpp:591" - name: hfmusic.mpq path: devilutionx/hfmusic.mpq @@ -106,7 +106,7 @@ files: category: game_data required: false description: "Hellfire music, mandatory when hellfire.mpq is present" - source_ref: "Source/engine/assets.cpp:586" + source_ref: "Source/engine/assets.cpp:592" - name: hfvoice.mpq path: devilutionx/hfvoice.mpq @@ -114,7 +114,7 @@ files: category: game_data required: false description: "Hellfire voices, mandatory when hellfire.mpq is present" - source_ref: "Source/engine/assets.cpp:587" + source_ref: "Source/engine/assets.cpp:593" - name: "hfbard.mpq" path: "devilutionx/hfbard.mpq" @@ -122,7 +122,7 @@ files: category: game_data required: false description: "Hellfire bard class assets, loaded when present" - source_ref: "Source/engine/assets.cpp:567" + source_ref: "Source/engine/assets.cpp:573" - name: "hfbarb.mpq" path: "devilutionx/hfbarb.mpq" @@ -130,7 +130,7 @@ files: category: game_data required: false description: "Hellfire barbarian class assets, loaded when present" - source_ref: "Source/engine/assets.cpp:568" + source_ref: "Source/engine/assets.cpp:574" - name: "devilutionx.mpq" path: "devilutionx/devilutionx.mpq" @@ -142,7 +142,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 .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:511-518, 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:517-524, 223-226, Source/init.cpp:54, 79-85, Source/diablo.cpp:1228-1242, CMake/Assets.cmake:46-225, 288-295" - name: "fonts.mpq" path: "devilutionx/fonts.mpq" @@ -150,7 +150,7 @@ files: category: game_data required: false description: "CJK and extended-language font pack from devilutionx-assets release" - source_ref: "Source/engine/assets.cpp:519" + source_ref: "Source/engine/assets.cpp:525" - name: "es.mpq" path: "devilutionx/es.mpq" @@ -159,7 +159,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:523-530" + source_ref: "Source/engine/assets.cpp:529-536" - name: "pl.mpq" path: "devilutionx/pl.mpq" @@ -168,7 +168,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:523-530" + source_ref: "Source/engine/assets.cpp:529-536" - name: "ru.mpq" path: "devilutionx/ru.mpq" @@ -177,7 +177,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:523-530" + source_ref: "Source/engine/assets.cpp:529-536" - name: "hf.mpq" path: "devilutionx/mods/hf.mpq" @@ -185,5 +185,5 @@ files: category: game_data required: false description: "Hellfire mod archive packed from the repository's mods/hf directory" - note: "mods/.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:756-772, Source/options.cpp:77-79, CMakeLists.txt:205, 641-646, 705-710, CMake/Mods.cmake:11-36, 61-70" + note: "mods/.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. The Apple build packs it into Resources/mods, and the Android and Apple builds look for mods/.mpq inside the application package after the search paths. No release carries it yet." + source_ref: "Source/engine/assets.cpp:768-788, Source/engine/assets.cpp:413-428, Source/options.cpp:77-79, CMakeLists.txt:205, 641-646, 705-710, CMake/Mods.cmake:11-37, 52-71"