mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
190 lines
8.3 KiB
YAML
190 lines
8.3 KiB
YAML
emulator: "DevilutionX"
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/diasurgical/DevilutionX"
|
|
upstream: ~
|
|
profiled_date: "2026-11-09"
|
|
source_commit: "74ce5cdb15da44b28427ad6ee2b107bd6dcd6f61"
|
|
core_version: "1.6.0-dev"
|
|
version_basis:
|
|
kind: file
|
|
path: "VERSION"
|
|
pattern: '^(\S+)$'
|
|
display_name: "Diablo (DevilutionX)"
|
|
cores: [devilutionx]
|
|
systems: [diablo]
|
|
verification: md5
|
|
|
|
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() (:513) - devilutionx.mpq, fonts.mpq (optional)
|
|
LoadLanguageArchive() (:529) - <language code>.mpq, skipped for "en"
|
|
LoadGameArchives() (:538) - diabdat.mpq or spawn.mpq (required)
|
|
hfbard.mpq, hfbarb.mpq (always probed)
|
|
LoadHellfireArchives() (:578) - hellfire.mpq + hfmonk/hfmusic/hfvoice
|
|
LoadModArchives() (:724) - mods/<name>.mpq for each active mod
|
|
|
|
diabdat.mpq is matched uppercase first ("DIABDAT.MPQ", GOG/retail CD
|
|
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 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-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/<lang>.po
|
|
is compiled with msgfmt to <lang>.gmo and appended
|
|
(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: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-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: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: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
|
|
devilutionx-assets release. English installs do not need it.
|
|
|
|
files:
|
|
- name: diabdat.mpq
|
|
path: devilutionx/diabdat.mpq
|
|
system: diablo
|
|
category: game_data
|
|
required: true
|
|
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:545-550"
|
|
|
|
- name: spawn.mpq
|
|
path: devilutionx/spawn.mpq
|
|
system: diablo
|
|
category: game_data
|
|
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:552"
|
|
|
|
- name: hellfire.mpq
|
|
path: devilutionx/hellfire.mpq
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire expansion main archive"
|
|
source_ref: "Source/engine/assets.cpp:581"
|
|
|
|
- name: hfmonk.mpq
|
|
path: devilutionx/hfmonk.mpq
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire monk class assets, mandatory when hellfire.mpq is present"
|
|
source_ref: "Source/engine/assets.cpp:591"
|
|
|
|
- name: hfmusic.mpq
|
|
path: devilutionx/hfmusic.mpq
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire music, mandatory when hellfire.mpq is present"
|
|
source_ref: "Source/engine/assets.cpp:592"
|
|
|
|
- name: hfvoice.mpq
|
|
path: devilutionx/hfvoice.mpq
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire voices, mandatory when hellfire.mpq is present"
|
|
source_ref: "Source/engine/assets.cpp:593"
|
|
|
|
- name: "hfbard.mpq"
|
|
path: "devilutionx/hfbard.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire bard class assets, loaded when present"
|
|
source_ref: "Source/engine/assets.cpp:573"
|
|
|
|
- name: "hfbarb.mpq"
|
|
path: "devilutionx/hfbarb.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "Hellfire barbarian class assets, loaded when present"
|
|
source_ref: "Source/engine/assets.cpp:574"
|
|
|
|
- name: "devilutionx.mpq"
|
|
path: "devilutionx/devilutionx.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
required: true
|
|
bundled: true
|
|
sha1: "f1ac6ba3a04f51f51e0e8bc2254742c70905f62b"
|
|
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: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"
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "CJK and extended-language font pack from devilutionx-assets release"
|
|
source_ref: "Source/engine/assets.cpp:525"
|
|
|
|
- name: "es.mpq"
|
|
path: "devilutionx/es.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
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:529-536"
|
|
|
|
- name: "pl.mpq"
|
|
path: "devilutionx/pl.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
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:529-536"
|
|
|
|
- name: "ru.mpq"
|
|
path: "devilutionx/ru.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
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:529-536"
|
|
|
|
- name: "hf.mpq"
|
|
path: "devilutionx/mods/hf.mpq"
|
|
system: diablo
|
|
category: game_data
|
|
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. The Apple build packs it into Resources/mods, and the Android and Apple builds look for mods/<name>.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"
|