Diablo 3 Beta and Wine
by BenV on Sep.18, 2011, under Software
This morning my mailbox opened up with an email inviting me to the Diablo 3 Beta. After checking the headers
to make sure it wasn’t another battlenet phishing scam I noticed that the Received headers really came from blizzard.com, and they even signed the mail with a domainkey. Also they didn’t include some link but simply told me to go to battle net and get the goods there.
Surprisingly they state:
We also invite you to share your Diablo III beta experience with the world! All participants can take screen shots, capture video, and/or publicly disclose information about their beta test experience.
(instead of the usual non-disclosure agreement). So thanks Blizzard and a friend who works there who is no doubt responsible for getting me this invite in the first place 🙂
Installation
Of course this wouldn’t be as much fun if we didn’t try to run it in wine first. We can always see how it’s supposed to look in windows later. So after updating wine to the latest git version (wine-1.3.28-308-gae80430) and creating a new prefix we run the installer:
benv@slack:/storage$ mkdir diablo3 && cd diablo3
benv@slack:/storage/diablo3$ export WINEPREFIX=/storage/diablo3/.wine
benv@slack:/storage/diablo3$ winecfg
# Make sure everything is allright
benv@slack:/storage/diablo3$ wine Diablo-III-Beta-enUS-Setup.exe
First we see some download/update dialogs:
At some point this thing seemed to be stuck doing nothing useful. In fact, I went to the shop and when I came back it was still at that same point so I killed it and restarted it. A cute crash dialog greeted me asking me to describe what I was doing to make it die.
Wine complained about some missing dlls:
err:module:import_dll Library QtSvg4.dll (which is needed by L"C:\\users\\Public\\Application Data\\Battle.net\\Client\\Blizzard Launcher.524\\imageformats\\qsvg4.dll") not found
err:module:import_dll Library QtXml4.dll (which is needed by L"C:\\users\\Public\\Application Data\\Battle.net\\Client\\Blizzard Launcher.524\\imageformats\\qsvg4.dll") not found
wine: Call from 0x7b837fc3 to unimplemented function msvcp90.dll.?uncaught_exception@std@@YA_NXZ, aborting
Missing QT dlls and then the famous msvcp90.dll with some issues. Winetricks to the rescue!
benv@slack:/storage/diablo3$ wget http://winetricks.org/winetricks
benv@slack:/storage/diablo3$ chmod +x winetricks
benv@slack:/storage/diablo3$ ./winetricks vcrun2008
# click next a few times
benv@slack:/storage/diablo3$ wine Diablo-III-Beta-enUS-Setup.exe
Well, there’s an improvement 🙂
Next it asked me for where it wanted to be installed. I said “How about D:\Diablo3” which the installer then replied to “Oh you mean D:\Diablo3\Diablo III Beta” … no I didn’t you stupid piece of garbage. But I’ll fix that when it’s done installing.
Also it requires you to agree to some kind of obnoxious agreement, trying to remove your rights to privacy for your hardware/software information and stuff like that. I said loudly “By continuing this installer after I click the Agree button Blizzard hereby nullifies this agreement” and hit the Agree button. And what do you know, it continued!
Even though it said “Installing” nothing happened though. Looking through my process list I noticed it executed C:\users\Public\Application Data\Battle.net\Client\Blizzard Launcher.524\Blizzard Launcher.exe –install –tomepath=D:\diablo3\Diablo-III-Beta-enUS-Setup.exe –game=diablo3_beta_enus. Also ‘Agent.exe’ was running, although it didn’t seem to be downloading anything, but it did have a bunch of log files.
Looking through netstat I found some interesting things, like it having open the bittorrent port:
udp 360 0 0.0.0.0:6881 0.0.0.0:* 1014 4878643 29439/wineserver
tcp 1 0 192.168.1.7:41568 12.129.206.133:1119 CLOSE_WAIT 1014 4878560 29488/C:\users\Publ
Great, but not very useful since I’m behind NAT on ipv4 and it does’t seem to be using ipv6. If only they let me disable p2p or change the port… heck, use uPNP and it might even work.
Looking through the Agent logs I repeatedly saw stuff appearing like:
11:21:56.2545 Request Issued: GET /install/diablo3_beta_enus
11:21:56.2547 Response: 200
{
“uid” : “diablo3_beta_enus”,
“progress” : 0.000000,
“error_message” : “”,
“progressBarNotes” : “”,
“progressMessage” : “”,
“playable” : false,
“error” : 0.000000,
“state” : 1000.000000
}
It seems to be a local status updater used by the installer to display the progress.
Trying to telnet worked:
>telnet localhost 1119
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /install/diablo3_beta_enus HTTP/1.0
Host: localhost
HTTP/1.0 200 OK
Content-Length: 196
{
"uid" : "diablo3_beta_enus",
"progress" : 0.000000,
"error_message" : "",
"progressBarNotes" : "",
"progressMessage" : "",
"playable" : false,
"error" : 0.000000,
"state" : 1000.000000
}
Funny. However, after mucking around with it for another hour and eventually even setting up the 6881 port forward there was still no improvement.
Feh. Back to windows to get through the installer then.
Hopefully Blizzard works on this part before they release it. But I guess they Wine people will try to make it work even if Blizzard doesn’t.
Back in Windows (7) the installer did pretty much the same as under wine. First the dialog with the tools, then the setup files, and then the graphical installer.
Telling it to install in C:\Games\Diablo3 resulted in the exact same retarded C:\Games\Diablo3\Diablo III Beta path, so wine or windows doesn’t make a difference so far.
However, after yelling at the Agree button again there was a difference:
Not only did I see the bar go up, but I could also see files appear in the destination folder.
If Diablo 3 is like World of Warcraft it will happily run after copying over those files, or at least, that’s the new plan.
One interesting thing that caught my attention was the menu bar in the downloader. When it first started all items were grayed out, but once the download proceeded some items became available. Obviously the “Downloader Preferences” remains grayed out so people with wine have ‘no chance to survive, make their time‘ 😉
After playing the waiting game for a while the installer was finally done downloading. Looking through some of the log files I noticed the version going up from version 0.3.0.7318 to 0.3.0.7338.
Unsurprisingly the files look a lot like what you would see in a World of Warcraft or Starcraft installation. Lots of MPQ files and a few DLLs, together with a launcher and diablo 3 executable. The destination directory had also grown to about 3.4 GB.
After copying the folder over to the linux/wine setup I tried to run it.
There are 2 executables that you can try. One is Diablo III.exe, the other Diablo III Beta Launcher.exe. Both do essentially the same, they spawn the launcher that looks a lot like the installer. It says “Updating Tools (100%)” and then stalls.
Let’s hope either wine or Blizzard makes some fixes so the thing will run soon.
Until then we’re stuck on windows 🙁
Gameplay (under windows)
After getting the thing running under windows (which was a lot easier) and logging onto battle net I immediately managed to get the first error.
One of my friends sent me a friend request, which I clicked of course. Poof.
(names removes from image)
Other than that, and a disconnect fairly soon after starting the first game that felt like a “server is down” in World of Warcraft (I could move but my friend couldn’t see me move, we could chat though) the game plays quite nicely.
Most NPCs tell pieces of story, and so far everything has been both text AND voice. Combat is smooth, although perhaps a bit too easy (to attract the casual player I suppose). As usual with Diablo items are dropped left and right but so far we haven’t seen any items that needed identification. Blue (magical) items are identified from the start.
New in Diablo 3 is a crafting system. After helping out the blacksmith you are able to (for a fee) craft blue items. These items have random properties and require materials to make that you can get through the destruction of other equipment.
Some improvements compared to the older Diablo are the auto-looting of gold, higher resolution interface (I remember the annoying 800×600 of Diablo 2) that has been polished a lot, built-in comparison between objects (so you can quickly see if an item is better than what you have equipped), and the item that lets you sell stuff from your inventory. Saves a lot of town travel.
Anyway, time to play some more. I’ll get back on the wine issues I’m sure 🙂