Launching Infernity on Linux

This tutorial will teach you how to install and run Infernity (and pretty much any other Diablo mod) on Linux.

Linux distro used in this tutorial is Ubuntu. You must adapt this tutorial to your distro if it not based on Debian (Linux Mint is based on Ubuntu, so it can work).
First of all, you need to install Wine. You must install the latest stable 3.0.x version. If you have wine-staging it will crash at the Blizzard logo. There currently no fixes for it, so you have to use Wine 3.0.x Stable.

sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/
sudo apt-get update
sudo apt-get install --install-recommends winehq-stable
Taken from https://wiki.winehq.org/Ubuntu

These commands should install Wine Stable 3.0 on your system. Be warned, that you may need to tweak these commands if you're using Linux Mint.
After that's done, you must legally obtain the Diablo CD. Insert it in your CD-ROM drive and copy the DIABDAT.MPQ file from the CD to XYZ directory. After you have the DIABDAT.MPQ copied to XYZ, download Infernity: https://github.com/qndel/Infernity/blob/master/Infernity.zip
Once you have the Infernity downloaded, you can now start Autorun.exe:

cd /media/cdrom
wine autorun.exe

Install Diablo as you normally would. After that, download the latest 1.09 patch: https://www.moddb.com/games/diablo/downloads/diablo-v109-patch.
Then install winetricks:

sudo apt-get install winetricks

Winetricks has all the stuff you need. Launch winetricks and install the following components:

d3d9
vcrun2005
vcrun2010
vcrun2012
vcrun2015
vcrun2017

You may get a few errors, but that's normal. Just ignore them and let it install Visual C++ Runtime's
Launch the installation of 1.09 patch.

Copy DIABDAT.MPQ from the location you saved it previously to Diablo directory.
Extract Infernity.zip there too.
Your Diablo dir is probably: /home/YOURUSERNAME/.wine/drive_c/Diablo
Launch winecfg:
winecfg
Set it to use virtual desktop. Set the virtual desktop's resolution to 1280x960

You also need to force it to use Qndel's modified version of ddraw.dll wrapper. Second tab > ddraw.dll > YES/OK
Now keep your fingers crossed, launch Infernity.exe:
wine Infernity.exe

Of course you have to be in Diablo's directory for that command to work :). Also, note that you also don't need the Diablo CD inserted in your drive to play any more.
It should either launch or crash.
If it launches, you will be greeted with a black screen. That's normal, use your memory to navigate it :P OR this:
Single Player
Single Player > Your Chars and New Game OR instant switch New Game > Load Game or New Game OR/AND select your class > LoadScreen > GAME
Multi Player > Battle.net, IPX, Modem, Direct Cable Connection; Don't try running Infernity on Blizzard's BattleNet as it wouldn't work :P; IPX play may require kernel modification or a VPN program like ZeroTier; IPX > Your Chars or New Game > Create Game and/or List of Games > IF Create Game Choose difficulty LoadScreen > GAME; If you're joining a game: WAITING FOR GAME DATA > Load Screen > GAME
Replay Intro
Show Credits
Exit Game

When you are in the game, press ~ or Scroll Lock to bring up DirectDraw Wrapper settings. Try to set it to your NATIVE resolution in fullscreen with vsync off.
If you get an error/exception, try deleting ddraw_config and setting slighty higher virtual desktop res.

Remember, Diablo was never meant to run on Linux, so you may expect A LOT of problems. If the game doesn't launch (can't init Direct3D9 device, etc), then try switching virtual desktop res, re-installing DirectX, etc.
Thanks for reading! :) If you encounter any problems, contact me at: https://sergi4ua.github.io/contact.html