mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 02:13:28 -05:00
Each platform's own packages were read at the revision our data pins, for every emulator and core it ships: Batocera, Recalbox, RetroPie, ROCKNIX, Lakka, RetroDECK, RetroBat and EmuDeck. Files a package installs where the emulator reads them are recorded with installed_on, and files a release bundles but a package leaves out with not_bundled_on, so each platform's pack brings what its users lack and nothing they already have. The standalone profiles never checked before were held against their releases the same way. Batocera's imame4all is the mame2000 core. The primary neogeo.zip was a 7.7 KB placeholder no platform pins and no pack served: removed, the real dumps stay in .variants.
185 lines
8.0 KiB
YAML
185 lines
8.0 KiB
YAML
emulator: devilutionx
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/diasurgical/DevilutionX"
|
|
upstream: ~
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "dac104babfb6187415432f428ac2516747ffc154"
|
|
core_version: "1.6.0-dev"
|
|
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() (: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), and 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.
|
|
|
|
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:537-542"
|
|
|
|
- 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:544"
|
|
|
|
- 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:573"
|
|
|
|
- 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:583"
|
|
|
|
- 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:584"
|
|
|
|
- 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:585"
|
|
|
|
- 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:565"
|
|
|
|
- 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:566"
|
|
|
|
- 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:509-516, 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"
|
|
system: diablo
|
|
category: game_data
|
|
required: false
|
|
description: "CJK and extended-language font pack from devilutionx-assets release"
|
|
source_ref: "Source/engine/assets.cpp:517"
|
|
|
|
- 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:521-528"
|
|
|
|
- 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:521-528"
|
|
|
|
- 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:521-528"
|
|
|
|
- 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, 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"
|