The Lurker Lounge Forums
Question to any Linux users. - Printable Version

+- The Lurker Lounge Forums (http://www.lurkerlounge.com/forums)
+-- Forum: Lurker Games (/forum-6.html)
+--- Forum: Diablo (/forum-15.html)
+--- Thread: Question to any Linux users. (/thread-16402.html)



Question to any Linux users. - hybridmoments - 01-20-2016 10:20 PM

I am in the process of using the Diablo backwards compatibility guide to install diablo onto Ubuntu 15.10. Assuming all goes correctly and I can run the game, would it also be possible to use either the Torch hack or Ulmo's Gillian stash program, maybe using Wine or something? Has anyone ever tried or can anyone confirm that it is possible?

I'm interested to know, because on my Windows desktop I got spoiled with those two stashing programs, and I'm not sure I'd want to revert back to playing Diablo WITHOUT one.


RE: Question to any Linux users. - Slayer_X64 - 01-21-2016 12:48 AM

(01-20-2016 10:20 PM)hybridmoments Wrote:  I am in the process of using the Diablo backwards compatibility guide to install diablo onto Ubuntu 15.10. Assuming all goes correctly and I can run the game, would it also be possible to use either the Torch hack or Ulmo's Gillian stash program, maybe using Wine or something? Has anyone ever tried or can anyone confirm that it is possible?

I'm interested to know, because on my Windows desktop I got spoiled with those two stashing programs, and I'm not sure I'd want to revert back to playing Diablo WITHOUT one.

Hi there!

As a matter of fact, I've been working much harder behind the scenes on Linux compatibility, even working on setting up virtual machines just for playing Diablo. I just haven't had much time to post some of this stuff because I've been busy with university.

It is possible to run Diablo on ubuntu 14.10 and higher; however at least in my preliminary testing it was less than ideal. On versions of ubuntu higher than 14.10, it seems like OS kernel hardening interferes with how WINE runs, which can cause Diablo to crash. The reason why I attribute it to kernel hardening is partially because of the issue with Ulmo's stash and kernel.yama.ptrace_scope, and the fact that I can't seem to get Diablo to run at all on the latest version of Arch Linux (which I would *assume* has all the latest kernel hardening features).

You install Diablo the following way:

1) Install Play on Linux (optional if you can figure out how to compile ancient versions of WINE from scratch)
2) Install Wine 0.9.52 through POL
3) Install Diablo using your SYSTEM version of wine
4) Switch your virtual drive wine version to 0.9.52
5) Download the direct draw hack for linux from the diablo compatibility guide, and place it into your diablo folder.
6) Download and place into your diablo folder the latest version of IPXwrapper (with ubuntu 12.04, this is where you can stop. the game will run out of the box, with and including the stash.)
7) To enable Ulmo's Stash, since ubuntu 14.04, you must set kernel.yama.ptrace_scope to 0 so that use of ptrace is not limited to child processes. i don't quite remember now what ptrace has to do with launching the loader that runs Ulmo's Stash, I think it has something to do with how wine runs the loader itself, but its been long enough that i can't remember the exact reason. Anyways, on 14.04, after doing this, the game will run exactly the same as it does on earlier systems.

There are two ways to do this.
1. edit /etc/sysctl.d/10-ptrace.conf and change "kernel.yama.ptrace_scope = 1" to "kernel.yama.ptrace_scope = 0"

2. make a script that you run as root which temporarily disables ptrace when you run it, something along the lines of "sudo sysctl kernel.yama.ptrace_scope=0" to turn it off, and "sudo sysctl kernel.yama.ptrace_scope=1" to turn it back on.

8) For what ever reason, I've found that even after all this work, with versions of ubuntu later than 14.04, that Diablo will run once, and then if you exit completely out of the game and restart it again, it will crash continually until you restart your computer. This again, seems to probably have to do with kernel hardening that was implemented after version 14.04. So the solution is, run Diablo, play, and when you're done, just keep in mind that to play again, you'll have to restart your computer. Or of course you could just run ubuntu 12.04 in a virtual machine, since it seems to have the highest level of compatibility with Diablo so long as you set the virtual machine's resolution to 640x480 and run wine in an emulated desktop that you force fullscreen in the VM (I use a 32bit lubuntu 14.04(64bit works just as well) virtual machine via virtualbox 5.x. I use scaled mode, and then force the window fullscreen, but if you don't want your aspect ratio stretched, you can fullscreen the VM and then use the "Scale Factor" option to upscale the VM to fill your screen (although if you have a super high res monitor like my 4k one, you'll still have to crank your resolution down, as the VM only scales to 200% scaling in fullscreen mode.)).

A few more things to note, when you run Diablo fullscreen, if you have particularly animated desktop widgets (fancy KDE stuff that is animated, or even the clock update) that will cause a minor flicker sometimes when the screen underneath Diablo is updated.

There is a solution to this however, for certain Desktop Environments that can force a window fullscreen (LXDE and KDE desktop environments being two prime examples):

1) Set wine to emulate a virtual desktop.
2) Run diablo, and change your resolution to 640x480 (you can do this either via your graphics drivers, or via the xrandr command (something along the lines of "xrandr -s 640x480")
3) Force the window fullscreen. On LXDE, this simply requires you to click on the window border, and then press F11.

On KDE, this requires you to drag the window down until you can see the wine icon in the top left of the window border. right click that, click "more actions" and then click "fullscreen".

Optionally after that you could install hamachi (and perhaps haguichi GUI for hamachi if you are interested in that) so that you can play with your friends via IPX/LAN. Won't matter if they have Windows, Linux, or OSX (or even some other unix-like OS so long as they can get hamachi and wine onto it).

My recommended method is still an ubuntu 12.04/14.04 virtual machine(with LXDE desktop environment) within your current operating environment. What's better is once you get the virtual machine set up, you can run it on pretty much any platform that has virtualization software (I use the virtualization on my linux box and my macbook, and I'm sure it would work just fine on a windows box.)

I hope this was useful for you! If you need anything else, please let me know.


RE: Question to any Linux users. - hybridmoments - 01-25-2016 12:36 AM

Wow, thanks for all the information! I appreciate you taking the time to post your Linux findings.

Right after I first made the thread, before you replied, I tried the Play on Linux method from the backwards compatibility thread, and had no luck in making it work. I tried 3 times, and it installed all three times, but then would give me a no cd error.

Regardless, I am going to run through the info you so kindly posted and give it another shot, I will report back with my results.

Again, thanks!


RE: Question to any Linux users. - Slayer_X64 - 01-30-2016 06:57 AM

If you're getting a no cd error, I can only think of a few things:

1) your configured WINE CD drive is not pointing at your mounted CD
2) you mentioned you're using Ulmo's stash, which can end up looking for diabdat.mpq on your hard drive in your Diablo folder. To change this behavior, you have to edit PlugUlmo.ini. Also don't forget that linux filesystems are case-sensitive, so if it says it's looking for DIABDAT.MPQ, and you have diabdat.mpq in your folder, you actually have to rename the file in uppercase or it wont work.
3) you're running with wine configured for something other than WindowsXP
4) you're running the game from the wrong shortcut somehow?
5) you actually forgot to put the CD in?

But anyways yeah the information in the compatibility thread for Linux is really old and outdated. I also wrote it back when I had first started using Linux about 4 years ago and didn't know what I was doing.

If you can work out whatever seems to be your problem though, I'd love to hear about it. Any contributions to the game's backwards compatibility are always welcome.

In the future I actually plan to release a video tutorial on how to install Diablo and Hellfire in Linux.


RE: Question to any Linux users. - sedrosken - 02-28-2016 01:28 AM

Wow, thanks for this! I'm running Xubuntu and for the life of me (I'm running Diablo in the latest version of WINE) I couldn't figure out how to get the menu screen to work right. I always had that black screen, but once I managed to blindly select my game mode, character and whether to load the game or start a new one, it worked fine.

My original solution was to just use my 98SE box for this. Then I got smart and decided to waltz over here to see if maybe someone else had the same issue and figured out how to fix it. I already had POL installed so I could play GTA San Andreas, so this was a cinch and a half.