Hellfire Expansion

Hey been loving emuelec and got my old diablo running on there awesome how it runs and plays. I’ve got one question before I tried but does hellfire work for it?

I checked the bios page and saw where to put diablo file but didn’t see anything for hellfire.

Thank you also if someone has already asked this question I apologize. I did look and search but couldn’t find this question.


You have to call hellfire.mpq file (have to be located in roms / ports / diablo alongside with 3 hf.mpq files).

To do so, you have to modify diablo.sh file located here : emuelec / Configfiles / emuelec / ports

Let me know if you need more info

So I copied the diablo.sh from usr/bin/ports to the emuelec/ports . Edited that diablo.sh anything that said diabdat.mpq to hellfire

I then went over to storage/.local/share/dialurgical/devolution/and the diabdat.mpq link file there I just copied it and named it hellfire.mpq and had that link pointing to hellfire in my roms/ports/diablo folder.

For whatever reason I had gotten an error saying hellfire was missing the 3 HK files so I went back in and copied my HK files to the dialurgical/devolution folder that had my links. If I understood the language from the diablo.sh file that I made copy I guess it mounts that devolution directory but by having the files in their they worked. Not sure if creating more links for the HK files would’ve fixed it but seemed like just copying them to that devolution folder made it work.

I probably just did the most complicated method to get this working but thank you. You saying emuelec ports folder was the key also a comment the emuelec guy made in another post that’s talking about splash and load screens got me thinking. That whole usr area I guess is protected but placing files in the emuelec area can take precedence over it.

Thank you all it works now

Good job !

Hellfire runs perfectly well on emuelec


Can you share a modified script? maybe I can include it directly on the ports section for next release.

Sure, please find below what should be inside diablo.sh


# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)

# Source predefined functions and variables
. /etc/profile

# init_port binary audio(alsa. pulseaudio, default)
init_port ${PORT} pulseaudio

if [ ! -L /storage/.local/share/diasurgical/devilution/hellfire.mpq ]; then

mkdir -p /storage/.local/share/diasurgical/devilution/

ln -sf /storage/roms/ports/diablo/hellfire.mpq /storage/.local/share/diasurgical/devilution/hellfire.mpq
ln -sf /storage/roms/ports/diablo/hfmonk.mpq /storage/.local/share/diasurgical/devilution/hfmonk.mpq
ln -sf /storage/roms/ports/diablo/hfmusic.mpq /storage/.local/share/diasurgical/devilution/hfmusic.mpq
ln -sf /storage/roms/ports/diablo/hfvoice.mpq /storage/.local/share/diasurgical/devilution/hfvoice.mpq


cd /usr/bin/

./${PORT} >> $EE_LOG 2>&1


[[ "$ret_error" != 0 ]] && ee_check_bios "Diablo"


exit $ret_error

What is the point of the devilutionx.hf binary then ? and if you create those symlinks, does regular Diablo run as well if the HF files are present?

Thanks for all the help in this thread. Ive managed to get hellfire working. I am however wondering if anybody could help getting barbarian and bards working. As well as the hidden cow quest and twddy bear quest.