diff --git a/emulators/devilutionx.yml b/emulators/devilutionx.yml index 23e6dfbf..be2e9b49 100644 --- a/emulators/devilutionx.yml +++ b/emulators/devilutionx.yml @@ -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) - .mpq, skipped for "en" - LoadGameArchives() (:530) - diabdat.mpq or spawn.mpq (required) + LoadCoreArchives() (:507) - devilutionx.mpq, fonts.mpq (optional) + LoadLanguageArchive() (:523) - .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/.mpq for each active mod + LoadHellfireArchives() (:572) - hellfire.mpq + hfmonk/hfmusic/hfvoice + LoadModArchives() (:712) - mods/.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/.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 .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/.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"