Running World Of Warcraft: Mists of Pandaria under Linux / WINE: Fixing Agent.exe failed and other update errors

by on September 26, 2012


For Linux users, using WINE to upgrade World of Warcraft after the release of Mists of Pandaria has proven a bit tricky. If your update is crashing, you’re having problems with DNSAPI.DLL, or you’re hitting the dreaded ‘Agent.exe failed‘ message, don’t worry: here at MMO Melting Pot we’ve compiled a series of tweaks, fixes and solutions to get you up and running again.

Last updated: 26th September 2012 for Mists of Pandaria

If your installation isn’t playing ball, try the following steps, in order:

Step 1: Consider reinstalling from scratch

A fresh installation of WoW is often a good idea when a new expansion is released. If you have the time and the bandwidth, consider reinstalling World of Warcraft completely. By far the best way to do so is by using the online installer. You can download the installer from your Battle.net page. Then, just run wine World-of-Warcraft-Setup-enUS.exe (substituting the correct name of the installer if yours is different, obviously).

If you’d rather not go through the hassle of a complete reinstall, keep reading for a few tricks that might save your bacon (and your bandwidth).

Step 2: Rename your configuration folders

The chances are good that the configuration folders automatically created by the Blizzard downloader are not working correctly for your installation. Luckilly, if the download can’t find these files it will recreate them automatically. So, let’s deliberately remove these files, to force the downloader to recreate them.

Rather than permanently deleting the files, we’re going to just rename them – that way, we can always put them back later if we need to. Here’s how to do it:

  1. Open a file browser (use Nautilus, or whatever file browser you normally use).
  2. Navigate to your Home directory (/home/<<your username>>/).
  3. Press ‘Ctrl+H‘, or choose ‘Show hidden files’ from the View menu.

    You’ll now be able to see all the ‘hidden’ files and hidden directories in your home directory – those are the files whose name starts with a period (.).

  4. The directory you’re looking for is called .wine. Once you find it, double-click it to open it.
  5. Navigate to ~/.wine/drive_c/users/Public/Application Data/.1

    You’ll see a directory called Battle.net and a directory called Blizzard Entertainment. Don’t worry about any other directories – they’ve just been created by other programs you’ve run under WINE.

  6. Rename Battle.net to Battle.net.Cataclysm. Rename Blizzard Entertainment to Blizzard Entertainment.Cataclysm.2 Don’t close the file browser just yet.

Step 3: Run Wow.exe and watch it crash

  1. Now open a Terminal, and run
    wine ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Wow.exe.3

    The WoW updater will open, start to download something, and then after a short while it will crash. Don’t worry: this is what we actually want to happen at this stage.

  2. Check the Terminal from which you launched WoW. The Launcher will have printed a whole bunch of information and error messages. You can ignore most of it: the specific line we’re interested in will look something like this:

    err:module:import_dll Library DNSAPI.dll (which is needed by L"C:\\users\\Public\\Application Data\\Battle.net\\Agent\\Agent.1363\\Agent.exe") not found
    err:module:LdrInitializeThunk Main exe initialization for L"C:\\users\\Public\\Application Data\\Battle.net\\Agent\\Agent.1363\\Agent.exe" failed, status c0000135
    .

    Ugly, huh? The important bit is the Agent.1363. Your error message might well contain a different number than 1363. Whatever the number, take a note of it: we’ll need it soon.

  3. No Warcraft-related programs should be running right now, but just to be sure, let’s manually run commands to stop them. In your Terminal, type the following commands one after the other:

    killall Agent.exe
    killall Wow.exe
    killall Launcher.exe

  4. In your file browser, check that the directories Battle.net and Blizzard Entertainment have been recreated.

Step 4: Fix DNSAPI.dll

  1. Run the WINE configuration utility, either by clicking Configure Wine in your applications menu, or by running winecfg from a terminal.
  2. Click the Libraries tab.
  3. Click the drop-down list under ‘New overrides for library:’, and choose ‘dnsapi.dll.
  4. Click ‘Add’.
  5. Cick ‘Edit’, and change the Load Order to ‘Builtin (Wine)’.
  6. Click ‘OK’, then click ‘OK’ again to close the WINE configuration utility.

Step 5: Profit! Run Agent.exe with a special flag

We’re almost done.

  1. Back in your Terminal, run the following command (you’ll need the number you noted down earlier):

    wine ~/.wine/drive_c/users/Public/Application\ Data/Battle.net/Agent/Agent.<<your number>>/Agent.exe --nohttpauth &
    Note, that’s two dashes (–) before nohttpauth.

  2. Wait a few seconds, just to make sure the Agent.exe tool has had a chance to kick in. Don’t worry about the text being printed to your Terminal.
  3. Run
    wine ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Wow.exe.3

The World of Warcraft updater will launch again, but this time it won’t crash! Once it’s downloaded the update, the proper WoW Launcher will open and will start to download the new patch. Once it’s done, congratulations: you’re ready to play!

Troubleshooting

I’ve got the Launcher working, but it won’t download anything!

WINE can sometimes have trouble with the peer-to-peer technology used by the Launcher. Try disabling Peer-to-Peer transfers. You’ll find it in the Launcher, under Options > Downloader Preferences > Enable Peer-to-Peer Transfer.

I’m on a 64-bit system, and WoW runs really slowly / times out constantly

Try forcing WINE to run WoW in 32-bit compatibility mode. Use the following command:

setarch i386 -3 -L -B -R wine ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Wow.exe

I’ve got a decent graphics card, but WoW runs slower than I’d expect

Try forcing WoW to run in OpenGL mode. Just append --opengl to the end of the command, like this:

~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Wow.exe --opengl

I have a different problem, which is not covered by your useless so-called Troubleshooting section!

Make a comment on this post. I’ll try to help you out if I can. Alternatively, have a read through the World of Warcraft entry on WINE’s AppDB site. There’s some pretty good tips on there.

Credits

The information in this post has been compiled from the expert knowledge of the MMO Melting Pot staff, along with tips and tricks shared online by many WINE-using Warcraft players, particularly the great community at WINE’s AppDB site.

1 If your installation is in a different location than .wine (if you’re using a different wine prefix, or you’re running Vineyard or Crossover or PlayOnLinux, or you just like being awkward), navigate to that directory instead.
2 You can choose any name you like here – the .Cataclysm suffix is just what I choose.
3 Or whatever command you normally use to run WoW.

Have you spotted a mistake? Did the tips in this article work for you? Do you have any tips to share with other Linux users? Let us know in the comments!

If you enjoyed this article, check out our other posts from these categories: Archives,World of Warcraft

{ 100 comments… read them below or add one }

Leave a Comment

Previous post:

Next post: