Hello dear list,
** All the following has been teste on debian sid, XF4.0.2-17, latest wine CVS, on a Geforce2 with 2960 nvidia drivers. GL include were the standart mesa ones. system is pIII-smp, stock 2.4.18 kernel. **
I've followed with great interest a thread on wine-devel where Matthieu Foillard explained his problems trying to run warcraft3 under standard wine. I came across the same problem, so i though i could post here to explain what to do. This is really simple, and following Jesse Allen's recommendation found on http://www.winehq.com/hypermail/wine-devel/2002/07/0189.html
The problem appears when you try to run warcraft 3 in opengl mode, regardless of whether or not you ran it with d3d and wineX previously. Warcraft is (following Jesse Allen's thought) trying to scan video modes available in OpenGL and gets stuck.
However, after only one successful launch, the game creates the registry entries needed, and does not need to go through this detection cycle again.
Question is, how to create those entries ? At your option * try to merge/use my user.reg attached below NOTE: i've still to look to the cd-key entry in my brother's win system to add it and be able to connect to battle.net =)
You'll get into trouble certainly though, so read on.
* try to do a minimal patch to do one successful run (warning, not very beautiful, we're not on wine-devel): You have to edit the function WINPOS_MinMaximize in the file wine/dlls/x11drv/winpos.c modify it so that it'll
return SWP_NOSIZE | SWP_NOMOVE;
anyway. compile & install, run.
I dont know how this morbid modification affects other things.
AFTER the successfull run, you can happily launch the game: launch it and relaunch it change resolution at your leasure BUT...
If you do only one small change on window focusing... then it seems impossible for the game window to get the focus again on relaunch. All goes to the launching window ; i've tried with various window managers (kwin, pwm, blackbox) : same problem.
So I thought : some information is written somewhere, that is not valid any more when i do a focus change.
1) could it be in user.reg/wine itself ?
Deleting ~/.wine/user.reg will solve the problem.
However, i've diffed two user.reg differently generated ; i'm at a loss to find any significant difference between the two. (the diff's attached)
Furthermore, storing away user.reg and rm -Rf'ing ~/.wine, and copying back, with some focus change in between, leads to a non-focused game window.
2) could it be elsewhere ? IT IS ! As a matter of fact, building a fresh user.reg, then replacing it with an old saved one, without focus changes works flawlessly.
I'm pretty sure something somewhere gets written with something like a window number in it. I'm pretty sure that's either in X itself or in the window manager.
BTW, the results are the same wether i use wine in managed or unmanaged mode : the WM seems to be unaware of the created window.
I don't know if I made myself clear ; i'd be glad to help you (*cough*) fix the bug for me, or (*cough* *cough*) give me some information/pointer as to how i could fix it.
Regards, Jean-Baptiste Note
Jean-Baptiste Note wrote:
The problem appears when you try to run warcraft 3 in opengl mode, regardless of whether or not you ran it with d3d and wineX previously. Warcraft is (following Jesse Allen's thought) trying to scan video modes available in OpenGL and gets stuck.
However, after only one successful launch, the game creates the registry entries needed, and does not need to go through this detection cycle again.
Question is, how to create those entries ? At your option
- try to merge/use my user.reg attached below
NOTE: i've still to look to the cd-key entry in my brother's win system to add it and be able to connect to battle.net =)
The attachment seems to not have gotten to the list (yet?) Could you send directly to me? The one with the diffed registry.
It is possible that it was trying to play a Intro Video when you first ran it. It minimizes the game if it tries to play it. Once it plays it, it doesn't do it again. But if you kill it before done, it might play try playing it again. There is a registry setting you can set on/off to see if this is the case.
To turn off the intro movie, make a reg file and import this: REGEDIT4
[HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\Misc] "seenintromovie"=dword:00000001
To turn it back on, you probably do something like: "seenintromovie"=dword:00000000
There may be another reason it does this: it could be from an invisible "splash screen". It might be that this window takes the focus away from opengl window for a moment. (It doesn't display the "splash screen" properly either.)
The movie and the splash screen are both probably related to the quartz32.dll being a stub. =(
Jesse