Troubleshooting Wine
From WoWWiki
This article tries to address the common issues people are having with running World of Warcraft using Wine on Linux.
DLL Files
If you have troubles running the installation or even the game itself, you may need to get a few .dll files from a windows installation or here:
msvcp60.dll (MD5: 6050bcc1b23f3df7a1876cbdcbac8232)
mfc42.dll (MD5: 7e4d1b552ee1dfa859ba9033b3670590)
and place them in /home/<username>/.wine/drive_c/windows/system32. You will, however, need a Windows license to use these files.
Note: Remember to change <username> to your personal computer login username
Adjust the soundbuffer size
If you have problems with sound stuttering you may have to increase or decrease the sound buffer a bit. It's configured by changing the value of the SET SoundBufferSize line in wtf/Config.wtf. Anything from 50 to 250 may cure your problem. Bear in mind that excessive buffer size may create audio sync issues.
Mozilla ActiveX / Gecko rendering engine
When the patch program, or the WoW Launcher starts, it will ask you about installing Mozilla ActiveX. Select "Yes". In doing this you will download a trimmed down version of the Gecko rendering engine (Firefox, Mozilla) which will respond to ActiveX calls, this means anytime a program tries to use HTML for a display, or similar, it will show. The launcher's news section and the changelog shown when applying a patch both use the rendering engine.
Changing video settings crash
If you try to configure WoW's video settings (Resolution, Vertex Shaders, Pixel Shaders etc.) while running in opengl mode, WoW may crash. The easiest way to fix this problem is to download this mod. You should extract the zipped folder in to /Interface/AddOns/ in your WoW directory. Then enable it under AddOns in the choose character screen. You probably need to tick the option, which says Load out of date AddOns, for it to work.
This will allow you to use the video settings in OpenGL mode.
ATI no Object Textures/Models
Some ATI user have the problem, that character and object models are hidden. It seems to appear with newer ATI drivers. To solve the problem, add the following line to the Config.wtf
SET M2UseShaders "0"
ATI enter game world crash
For users with an ATI video card: certain cards have trouble rendering games and video in opengl using current flgrx drivers which will cause your computer to hard locks when you attempt to enter a domain. This error will occur just after character creation/selection, as the game environment is loading, or possibly after a short period of play. In order to fix this error, add the following lines of code to your xorg.conf file in the ATI device section:
Option "Capabilities" "0x00000800" Option "UseFastTLS" "off" Option "KernelModuleParm" "locked-userpages=0"
This is where you find the file:
/etc/X11/xorg.conf
The section should look something similar to this after editing:
Section "Device" Identifier "aticonfig-Device[0]" Driver "fglrx" Option "Capabilities" "0x00000800" Option "UseFastTLS" "off" Option "KernelModuleParm" "locked-userpages=0" EndSection
Note: this has been tested and also works with NVidia cards.
Corrupt panel icons
If you experience corrupt icons on your panel then you then you may need to set the SET UIFaster parameter in wtf/Config.wtf
Use it like this:
Set UIFaster "x"
Where x equals:
0 – This turns off all UI acceleration 1 – For Internal Use Only - DO NOT USE! 2 – Enables partial UI acceleration only. 3 – Enables all UI acceleration.
Example:
Set UIFaster "2"
The value 2 usually corrects this problem.
opengl32 not found when running wow.exe
You installed the patch,compiled and installed wine & wow then when you try to run wow you get the following error message which may also mention glu32 as well as opengl32 not being found:
err:module:import_dll Library OPENGL32.dll (which is needed by L"C:Program Files/World of Warcraft/wow.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"C:/Program Files/World of Warcraft/wow.exe" failed, status c0000135
Solution : check that /usr/local/lib/wine/opengl32.dll.so has ownership of root:root and permissions -rwxr-xr-x, if it does not then you may have not been super user when you ran the "make install" command. become superuser and repeat the make install command as shown in the howto. Do not just change the ownership/permissions of opengl32.dll.so as probably all the other files are wrong too, so do a make install.
64-bit systems
WoW requires 32-bit OpenGL libraries. If these are missing, you will receive this error. Certain versions of the Nvidia drivers (171.06, for instance) will remove your system's libraries and not replace them; this appears to be fixed in 173.08.
On Fedora using the rpmfusion repositories this package is called xorg-x11-drv-nvidia-libs.i386
Crashes From Indoor to Outdoor
If wow crashes each time your character moves from outdoors to indoors, even though the patch above was applied, then try disabling double buffering. Unchecking "Enable desktop double buffering" under the "Graphics" tab in winecfg. It has been reported that this solved the problem.
Alternatively try using the linux minimap add-on, possible compatibility issue with XGL.
Error #134, "Unable to associate local address with socket..."
The socket is already bound to an address, or the parameter is a listening socket. You need to make sure your loopback interface is up, by running:
ifconfig lo up
or
sudo ifconfig lo up
Glitch every 3-5 sec
If you see a noticeable graphical studder every 3 to 5 seconds or so for this you need to edit /etc/X11/xorg.conf and add something like:
Option "UseFastTLS" "2"
to the Video card "Device" Section. This of course is normally a problem with the proprietary Linux Drivers for ATI cards.
Another possibility is a problem with the default kernel scheduler. I noticed many people have this problem with a NVIDIA card. Readjusting the scheduler will fix these issues:
echo 21 > /proc/sys/kernel/sched_features echo 25000000 > /proc/sys/kernel/sched_batch_wakeup_granularity_ns echo 4000000 > /proc/sys/kernel/sched_min_granularity_ns
WoW hangs on exit
With certain versions of Wine you may experience that WoW hangs (unable to do anything) when you exit the game.
This bug does not exist in the newest version of wine, 0.9.46.
The bug was fixed in version 0.9.38, but because of a regression it re-emerged in version 0.9.44, and was fixed again in 0.9.46.
If for some reason the newest version of Wine does not work for you, then you can always fix the problem by downloading and installing a version of Wine between 0.9.38 and 0.9.43, which are still relatively new and play the game fine.
Other reports state that changing the sound driver configured in winecfg from OSS to ALSA or changing the windows version in winecfg fixes the problem.
There are a few workarounds for the problem if it persists. Just alt-tab out of the game and kill it with the process manager. Or if you launch WoW in a terminal you can kill it with ctrl-c. For those who don't like to end WoW process so brutally, you may want to try this:
First write these two commands inside WoW
- /console reloadui
- /logout
Then
- click "Back" on characters page
- click "Quit" on logon page.
Sound stops working after alt-tabbing out
Since Wine version 0.9.42, if WoW loses focus (that is, if you alt-tab to another window) the sound will stop working. Also, some users have reported that WoW crashes or black-screens completely when WoW loses focus. Crashing and/or black-screening may be caused by enabling "Desktop Effects", and disabling said effects should remedy this.
The simplest way to make sound play while WoW doesn't have focus is to enabling the option Enable Sound in Background in the Sound Options menu.
Setting the game to run in Windowed Mode (and then simply making it fullscreen) also appears to fix this problem and there is little noticeable difference between this and actually being fullscreen.
There is also a post in the WoW appdb page, that gives a backwards diff patch that can be applied to the Wine source before compiling, that can fix the problem, but just commenting out the line in question - so that WoW never is even told that it has lost focus - works well too; you can then alt-tab between windows and back to WoW with zero delay, with WoW always running underneath, but this may break compatibility with other Wine apps and might not work with all windowmanagers, your mileage may vary.
To comment out the line:
- download, extract the latest Wine tarball
- open up the file dlls/winex11.drv/event.c
- look for a bit of code that looks like the following:
/* Abey : 6-Oct-99. Check again if the focus out window is the
Foreground window, because in most cases the messages sent
above must have already changed the foreground window, in which
case we don't have to change the foreground window to 0 */
if (hwnd == GetForegroundWindow())
{
TRACE( "lost focus, setting fg to 0\n" );
SetForegroundWindow( GetDesktopWindow() );
}
- comment out the SetForegroundWindow() line like this:
if (hwnd == GetForegroundWindow())
{
TRACE( "lost focus, setting fg to 0\n" );
/* SetForegroundWindow( GetDesktopWindow() ); */
}
- build Wine as usual
- ???
- PROFIT
Direct3D error in OpenGL mode
If you're getting stuck during login with a 'Downloading' prompt, exit the game and start from a terminal. Confirm that you receive this error:
"err:d3d:InitAdapters Failed to initialize gl caps for default adapter err:wine_d3d:WineDirect3DCreate Direct3D9 is not available without opengl"
Edit your Config.wtf, removing the SET gxApi “OpenGL” line. Start the game up, login to the character selection screen. Then exit the game, add the line back in - and you should be fine. This error is apparently caused by Blizzard's Hardware Survey code tripping something in Wine. As Wine isn't supported by Blizzard, sending back data that isn't quite correct is probably OK by them.
Installer.exe and RAM type
On certain systems there is a problem with RAM and the WoW Installer. On a Core2 Duo 6400 with DDR2-800, setting the RAM to DDR2-533 in BIOS allowed the installer to work flawlessly the first time. It's easy to confuse this issue with a CD/DVD problem because the installer will complain about a checksum error.
Graphical problems on distant terrain with nvidia-cards
On some nvidia-cards distant terrain is not faded in and out. You see terrain strucures popping in and out while other objects are faded correctly. The reason for that is a bug in the nvidia grapics driver, which is solved in the newest version (169.07). When you can not update your driver, you can disable the shaders in WoW, which will solve the problem but also disables some grapical effects (water surface transparency, full screen glow, death effect, etc.) Shaders can be disabled by adding SET pixelShaders "0" to your Config.wtf
Alt-click problem
on some systems you are not able to use Alt+Click to perform various addon actions. The reason is that this combo is used by desktop environment for moving windows. to disable it
- in KDE: open Control Center, go to Desktop-> Window Behavior-> Window Actions-> Modifier key
- in GNOME: goto System -> Settings -> Windows
set another combination (or none) instead of Alt+Left mouse button
Stuttering every 15sec and flickering line fix for Linux kernels 2.6.24 with CFS scheduler
On some distributions like Arch Linux World of Warcraft stutters exactly every 15 seconds. You will also notice a flickering bar on the top of your screen.
The instructions are taken from shazeal from this thread: http://bbs.archlinux.org/viewtopic.php?id=42779
Method 1: Recompile and tune your kernel
The best solution to solve this problem is to recompile your kernel with the option CONFIG_SCHED_DEBUG. After booting that kernel, you can tune it via sysctl and the problem is gone. This is an example of doing this on Arch Linux, it will be different on other distributions.
Step 1: Recompiling the kernel
First, fetch the newest source tree via ABS as root
sudo abs
Then copy /var/abs/core/kernel26 to your home directory
cp -R /var/abs/core/kernel26 ~
Now open up the file config, search for the line "# CONFIG_SCHED_DEBUG is not set" and replace it with "CONFIG_SCHED_DEBUG=y". Next open the file PKGBUILD, go to the md5sums and comment out the third one(or replace it with ne new m5dsum of config) so it looks like this:
md5sums=('3f23ad4b69d0a552042d1ed0f4399857'
'9d435f1a3b56d74265d9eb7c49060ff4'
#'817294b52dc1f0acb1a8616fe792f29a'
'ae7370a442115f2c7ee45d0123f617e3'
'25584700a0a679542929c4bed31433b6')
Open a terminal, cd into the directory and call "makepkg". That will, depending on your machine, take a looong time. After its done, install the new package via pacman -U to your system. I suggest to add the package kernel26 to your HoldPkg or IgnorePkg list.
Step 2: Tune your kernel
Tuning your kernel is much easier. Just add the follwing lines to your /etc/sysctl.conf:
# World of Warcraft stutter and flickering line fix kernel.sched_features=21 kernel.sched_batch_wakeup_granularity_ns=25000000 kernel.sched_min_granularity_ns=4000000
Save it, and reboot. World of Warcraft should now run without silly stuttering and flickering.
Method 2: The dirty workaround way(not recommended)
Stuttering every 15sec
Just run your wine process with a higher priority.
nice -n 19 wine Launcher.exe
That will not remove the issue completely, but it won't ne noticeable anymore.
Flickering line
The flickering line does only occur if you enable ffxGlow. If you disable that feature, and enable it again in-game, the flickering will disappear. Another method is to use FuBar and place a bar on the top of your screen, so you won't see the line.
Wrath of the Lich King notes
Screenfog turning the screen fully white or black
In several areas, a new Screenfog effect has been introduced - in the Death Knight zone (quests The Eye of Acherus and Into The Realm of Shadows) and in Riplash Strand in Borean Tundra ("Mist of the Kvaldir" debuff). This effect fails to work - the whole game area turns either bright white or black (in DK quest zones). It is still possible to play and even complete the quests - all UI elements are still shown on top of the white screen and the scrolling combat text is also showing.
To turn off this effect, use the command "/console ffxSpecial 0" or in your Config.wtf add a line SET ffxSpecial "0".
