- Diablo 1 is one of the most iconic games ever
- Diablo 1 (vanilla) has always had some issues running through WINE (most notably, the main menu -- though I discovered today that if you alt-tab (in Plasma shell, at least), then the window preview actually does show the menu)
- I stumbled across someone's post on Reddit stating that it could be done (though it turned out that his advice didn't work for me, but I did eventually get there)
Just in case you didn't follow the link, this is what I'm talking about:
Before we begin: WINE doesn't deal well with an app which changes resolution and then dies unexpectedly. I found this out the hard way. I'd highly recommend installing (if you don't have it already)
xrandr
and binding a hotkey to set your native resolution. If you're using xbindkeys (yes, I like old-school... it works, reliably and I have an existing config with tweaks to allow volume changing via the buttons on the side of my mouse), you can add this to your .xbindkeysrc:
"xrandr -s 1920x1080"
Control + Alt + Shift + F12
to be able to swap back to 1920x1080 by pressting ctrl-alt-shift-f12, in case, somewhere along the way, you end up with a strange-looking desktop.
On with it then!
First of all, you're going to need an (ahem) original Diablo 1 CD. Just so happens that I do have one of those, living on a shelf of other games, many of which I own on Steam because optical media is so last century. I'm not advocating other methods for doing this. When I got this Diablo 1 CD, it cost around R50 (~$13). Not really gonna break the bank. If you really can't get one, you could try alternative methods, if you know what I mean.
Naturally, my instructions are going to be in Gentoo dialect, but I expect that there won't be a lot different for others, except the USE flag fiddling I did -- which you won't have to do in a binary distribution and also which may not be entirely necessary, though not hurtful. Some were attempts to get around sound issues and I'll point those out.
Ok, so you have your original Diablo 1 CD, right? First we need to install that, which means we need wine. I installed with the following package.use:
app-emulation/wine dos openal s3tc staging
Note that I added
dos
simply in case I wanted dosbox later, s3tc
because equery u wine
claims it may be needed for some games, staging
because I was curious what I would be missing out on from pre-release features and openal
because of that aforementioned Redditer. So I don't think you actually need any of this.
Once you have WINE installed, run the
autorun.exe
from your original Diablo 1 CD. Setup should be quick and launch into the game -- cinematics first and then a black screen as the menu isn't properly displayed. You can alt-tab out of this and just kill it.Now download the latest Diablo 1 HD release and unpack it where you installed Diablo 1. If you stuck with all defaults, you'll find it under
~/.wine/drive_c/Diablo
. This adds a Belzebub.exe
executable, which you can attempt to WINE -- but you'll get an error about OpenAL. Belzebub is shipped with an OpenAL32 dll -- the problem is that it depends on DirectSound. The false trail to follow is to use the inbuilt openal in WINE -- for me, that stopped the error, but also left me with no in-game sound (though the cinematics did have sound).What worked better for me was to run
winetricks
, which I installed with the following package.use:app-emulation/winetricks rar
simply because I didn't want some arbitrary download to fail simply because it came down as a rar archive. I'm pretty sure you don't need it for this process though -- winetricks was downloading the directx9 installer and pulling out dsound.dll (source at time of writing). Once again, I don't think you need my USE flags at all -- but they don't hurt. If your distro doesn't bindle Winetricks, you can always get it here: https://github.com/Winetricks/winetricks.
Run
winetricks
and go through:- Select default wineprefix
- Install a Windows DLL or component
- Select dsound and hit the Ok button
winecfg
afterwards, looking at the Libraries tab, you should see *dsound
set native. And now you should be able to runwine Belzebub.exe
in the
~/.wine/drive_c/Diablo
folder, with the original CD in your optical drive and the game should start up and work properly. You can bask in the glory of a 20-year-old game, running at a modern resolution on an OS it wasn't designed for (:For bonus points, you can pack away that CD if you're prepared to keep an ISO on disk:
mkdir ~/DIABLO1_CD
dd if=/dev/sr0 of=~/diablo1.iso
(substitute your optical drive for /dev/sr0 if it differs)- add the following line to your
/etc/fstab
/home/{USER}/diablo1.iso /home/{USER}/DIABLO1_CD/ auto loop,users 0 0
mount ~/DIABLO1_CD
You could even put that into a script in your Diablo folder:
#!/bin/sh
cd $(dirname $0)
mount ~/DIABLO1_ISO
wine Belzebub.exe
cd -
You will probably see some odd flickering as the app starts up. Just hang in there! Mount won't barf on multiple runs -- it will just refuse to remount. Happy hunting!
No comments:
Post a Comment