# Hellfire Expansion

**URL:** <https://emuelec.discourse.group/t/hellfire-expansion/374>\
**Category:** General\
**Created:** [August 15, 2021, 9:12pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374 "2021-08-15T21:12:47Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Soulreaverr](https://avatars.discourse-cdn.com/v4/letter/s/8dc957/32.png) [@Soulreaverr](https://emuelec.discourse.group/u/Soulreaverr)\
**Post date:** [August 15, 2021, 9:12pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/1 "2021-08-15T21:12:48Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Frisk](https://avatars.discourse-cdn.com/v4/letter/f/f08c70/32.png) [@Frisk](https://emuelec.discourse.group/u/Frisk)\
**Post date:** [August 17, 2021, 8:12am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/2 "2021-08-17T08:12:54Z")

</div>

Hi,

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

---

<div class="post-metadata">

**Author:** ![Soulreaverr](https://avatars.discourse-cdn.com/v4/letter/s/8dc957/32.png) [@Soulreaverr](https://emuelec.discourse.group/u/Soulreaverr)\
**Post date:** [August 19, 2021, 1:46am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/5 "2021-08-19T01:46:24Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Soulreaverr](https://avatars.discourse-cdn.com/v4/letter/s/8dc957/32.png) [@Soulreaverr](https://emuelec.discourse.group/u/Soulreaverr)\
**Post date:** [August 19, 2021, 1:50am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/6 "2021-08-19T01:50:46Z")

</div>

![IMG_20210818_214902484](https://global.discourse-cdn.com/free1/uploads/emuelec/original/1X/cbb2b06c0ee1da5bdadd237030eb154c1850d91d.jpeg)

---

<div class="post-metadata">

**Author:** ![Frisk](https://avatars.discourse-cdn.com/v4/letter/f/f08c70/32.png) [@Frisk](https://emuelec.discourse.group/u/Frisk)\
**Post date:** [August 20, 2021, 11:02am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/7 "2021-08-20T11:02:56Z")

</div>

Good job !

Hellfire runs perfectly well on emuelec

Enjoy

---

<div class="post-metadata">

**Author:** ![EmuELEC](https://yyz2.discourse-cdn.com/free1/user_avatar/emuelec.discourse.group/emuelec/32/26_2.png) [@EmuELEC](https://emuelec.discourse.group/u/EmuELEC)\
**Post date:** [August 20, 2021, 5:16pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/8 "2021-08-20T17:16:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Frisk](https://avatars.discourse-cdn.com/v4/letter/f/f08c70/32.png) [@Frisk](https://emuelec.discourse.group/u/Frisk)\
**Post date:** [August 21, 2021, 10:01am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/9 "2021-08-21T10:01:31Z")

</div>

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

```auto
#!/bin/bash

# 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

PORT="devilutionx"
# 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

fi

cd /usr/bin/

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

ret_error=$?

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

end_port

exit $ret_error

```

---

<div class="post-metadata">

**Author:** ![EmuELEC](https://yyz2.discourse-cdn.com/free1/user_avatar/emuelec.discourse.group/emuelec/32/26_2.png) [@EmuELEC](https://emuelec.discourse.group/u/EmuELEC)\
**Post date:** [August 21, 2021, 4:49pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/10 "2021-08-21T16:49:35Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![MATAE](https://avatars.discourse-cdn.com/v4/letter/m/958977/32.png) [@MATAE](https://emuelec.discourse.group/u/MATAE)\
**Post date:** [October 8, 2021, 7:24pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/11 "2021-10-08T19:24:46Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Rayman](https://avatars.discourse-cdn.com/v4/letter/r/e495f1/32.png) [@Rayman](https://emuelec.discourse.group/u/Rayman)\
**Post date:** [June 20, 2025, 6:46pm UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/12 "2025-06-20T18:46:07Z")

</div>

well, i’m doing everything like described in topic, but i always get Diablo.sh rolled back as it was before when i start it, how can i prevent and maybe somewhere is a copy of it?

---

<div class="post-metadata">

**Author:** ![worstcase](https://yyz2.discourse-cdn.com/free1/user_avatar/emuelec.discourse.group/worstcase/32/294_2.png) [@worstcase](https://emuelec.discourse.group/u/worstcase)\
**Post date:** [June 26, 2025, 3:20am UTC](https://emuelec.discourse.group/t/hellfire-expansion/374/13 "2025-06-26T03:20:16Z")

</div>

The instructions above are outdated, there is no need to modify the.sh file.  
Just install Devolution via PortMaster and follow the instructions here: [Port Details](https://portmaster.games/detail.html?name=devilutionx)

The Diablo Hellfire.sh file looks like this:

#!/bin/bash

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

# Source predefined functions and variables  
. /etc/profile

PORT=“devilutionx”  
# init\_port binary audio(alsa. pulseaudio, default)  
init\_port “${PORT}” “pulseaudio” “” “”

devilutionx.sh hellfire \>\> $EE\_LOG 2\>&1

ret\_error=$?

[[“$ret\_error” != 0]] && ee\_check\_bios “Hellfire”

end\_port

exit $ret\_error
