Fist off, as always I install every game on its own separate WINEPREFIX. My WoW is installed to WINEPREFIX=~/.wine-wow
Installing WoW:
WINEPREFIX=~/.wine-wow sh winetricks vcrun2005
If you are like me and have enough bandwidth to supply all of Russia, then you can use the online installer.
Download the online installer
WINEPREFIX=~/.wine-wow wine /path/to/WoW/installer.exe
Go outside and play with friends or whatever, but make sure you turned your sound off on the computer. In about four hours you can come back and it will either be done or very close to done.
Ready to play.. hah, you wish!
******* BEGIN COPY BELOW LINE *********
commit f86e9325b7add7d47daf0a13683a8fddc6c1be16******* END COPY **************************
Author: Frederic Weisbecker
Date: Wed Jun 30 15:09:06 2010 +0200
x86: Send a SIGTRAP for user icebp traps
Before we had a generic breakpoint layer, x86 used to send a
sigtrap for any debug event that happened in userspace,
except if it was caused by lazy dr7 switches.
Currently we only send such signal for single step or breakpoint
events.
However, there are three other kind of debug exceptions:
- debug register access detected: trigger an exception if the
next instruction touches the debug registers. We don't use
it.
- task switch, but we don't use tss.
- icebp/int01 trap. This instruction (0xf1) is undocumented and
generates an int 1 exception. Unlike single step through TF
flag, it doesn't set the single step origin of the exception
in dr6.
icebp then used to be reported in userspace using trap signals
but this have been incidentally broken with the new breakpoint
code. Reenable this. Since this is the only debug event that
doesn't set anything in dr6, this is all we have to check.
This fixes a regression in Wine where World Of Warcraft got broken
as it uses this for software protection checks purposes. And
probably other apps do.
Reported-and-tested-by: Alexandre Julliard
Signed-off-by: Frederic Weisbecker
Cc: Ingo Molnar
Cc: H. Peter Anvin
Cc: Thomas Gleixner
Cc: Prasad
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 3339917..b1e85b0 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -529,11 +529,20 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
{
struct task_struct *tsk = current;
+ int user_icebp = 0;
unsigned long dr6;
int si_code;
get_debugreg(dr6, 6);
+ /*
+ * If dr6 has no reason to give us about the origin of this trap,
+ * then it's very likely the result of an icebp/int01 trap.
+ * User wants a sigtrap for that.
+ */
+ if (!(dr6 & ~0xffff0ff0) && user_mode(regs))
+ user_icebp = 1;
+
/* Catch kmemcheck conditions first of all! */
if ((dr6 & DR_STEP) && kmemcheck_trap(regs))
return;
@@ -575,7 +584,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
regs->flags &= ~X86_EFLAGS_TF;
}
si_code = get_si_code(tsk->thread.debugreg6);
- if (tsk->thread.debugreg6 & (DR_STEP | DR_TRAP_BITS))
+ if (tsk->thread.debugreg6 & (DR_STEP | DR_TRAP_BITS) || user_icebp)
send_sigtrap(tsk, regs, error_code, si_code);
preempt_conditional_cli(regs);
Save file as 2.6.33.diff or whatever .diff I can care less.
Patch your kernel, compile, apply, reboot
Since I am on Slackware I follow this guild for kernel compiling:
http://blog.tpa.me.uk/slackware-kernel-compile-guide/
After that is done (time depends on your processor)
login as user
emacs ~/wow.sh
#!/bin/sh
WINEPREFIX=/home/pegasus/.wine-wow/ wine "c:\Program Files\World of Warcraft\Wow.exe" -opengl
chmod +x ~/wow.sh
make a menu-item that points to wow.sh if your WM already created a link, delete it and run this one, you will most likely want/need the -opengl switch
WINEPREFIX=~/.wine-wow winecfg
make sure you are in windows xp, click on the Audio tab, make sure ALSA is selected and also select OSS (I had to do this to get sound to work, some do not, so troubleshoot to see if this works)
If all went well, your 8 hours of installing WoW and compiling your kernel (I do hope you compiled a custom and didn't JUST apply the patch) enables you to now play WoW on *nix with Wine!!!!!
(My main is a lvl 80 Gnome Warlock Europe Server Saurfang, name kamii) challenge me to a duel, if you dare, but tell me you saw this message and lets duel *nix style, then we can join a group together and pwn some Horde!!!!
****IF you have installed via the online installer, the installer files are still on your computer inside the wow WINEPREFIX. I forget where exactly, but search around and either burn them to some DVD's or delete it, because its like 20 gigs or something. Also, if you had problems with WoW updating itself with one of the updates (I had this issue) use google and try to find that update that isn't working and manually apply it, then let WoW do the rest. To save space when all updates have finished, delete them, because you do not need them anymore****
CURSE CLIENT
Want some addons in WoW? So do I, curse client works in Wine.. but don't get version 4, it wants/needs .net and doesn't work in wine, but we don't care you can still download and use version 3.
I installed my Curse Client in the same WINEPREFIX as WoW.
WINEPREFIX=~/.wine-wow wine /path/to/curse.exe
ie6, .net 2.0 is required for this to work
removepkg ttf-indic-fonts-0.4.7.4-noarch-1 (version may have changed so use pkgtool)
emacs /usr/share/fonts/TTF/fonts.dir
Search for string Samyak
Remove that line log out, log back in (don't just log out of X)
WINEPREFIX=~/.wine-wow/ winetricks ie6 corefonts fontfix dotnet20
When its done installing in 2.5 seconds you can load it up and start installing your WoW addons, or updating the ones you already have!