[Note: I titled this thread without any further specification so there is a chance for this thread becoming a general bucket for World Editor-related issues under Linux]
And before you zap away thinking this is just some discussion-thread, I am having issues with the World Editor under wine, so please read on.
Introduction:
The World Editor is a tool to edit terrain, scripts, setup and objects in a Warcraft 3 map. Thus it relies on all the technology the game itself is relying on, like 3D and sound-systems. It consists of several parts which usually all have their own window, the main-window including the terraining-element, which consists of normal interface-parts (like you know it, menus, buttons to click and so on) and a 3D-element where you can edit the terrain, place units and so on.
My System & Setup:
Hardware: GeForce4 Ti 4600 -> driver-version: 8.19.10, AMD Athlon Palomino; Kernel: vanilla 2.6.13.4; System: Debian Sarge; Used wine-versions: 0.9 (from a tar-file downloadable from an official download-website for wine), 0.9.8 (from CVS).
Note: I am using 0.9 for Warcraft 3 itself, which works close to perfect with it but tends to crash randomly with a newer version.
My Issue:
With wine 0.9:
World Editor starts up the way expected, but once running it seems to have a poor framerate. Looking at the error-log, 3D-acceleration obviously is not working with it for some reason. But that's not the worst - the interface-parts in the terraining-element (which also is the main-window) show up and hide randomly, sometimes depending on where the mouse is, or for other reasons - however, they don't show up completely. It is like the interface-elements and the 3D-element wouldn't go along very good with each other for some reason, like the painting (the interface) would disintegrate from the wall (the 3D-element) because the painter forgot to apply the prime coat to the wall first (that's how it looks, kinda). However, the interface-elements are still clickable and work, like if I click where a menu-point is supposed to be the menu will show up - and be persistent, it won't vanish as long as it is active.
As well in other elements of the editor-suite the interface doesn't look very well and even sometimes is incomplete like in the terrain-editor (for instance if I swapped windows and go back to an element there is a probability this will occur).
The issues described above have priority for me at least. There are more issues I've noticed (and that have been stated in the application-database as well):
-World Editor crashes when trying to open the World Editor-settings or the player-settings window.
Logs:
There are 2 logs, one from wine 0.9 and one from my tries to run it in wine 0.9.8
====== wine 0.9 log (works, but with described problems) ======
fixme

le:ITypeInfo_fnRelease destroy child objects
fixme:cdrom:CDROM_DeviceIoControl Unsupported IOCTL 2d1400 (type=2d access=0 func=500 meth=0)
fixme:ntdll:FILE_GetNtStatus Converting errno 16 to STATUS_UNSUCCESSFUL
fixme:cursor:SetSystemCursor (0x11ee,00007f8a),stub!
fixme:cursor:SetSystemCursor (0x11f6,00007f00),stub!
fixme:cursor:SetSystemCursor (0x1206,00007f03),stub!
fixme:cursor:SetSystemCursor (0x120e,00007f01),stub!
fixme:cursor:SetSystemCursor (0x121e,00007f88),stub!
fixme:cursor:SetSystemCursor (0x122e,00007f86),stub!
fixme:cursor:SetSystemCursor (0x123e,00007f83),stub!
fixme:cursor:SetSystemCursor (0x124e,00007f85),stub!
fixme:cursor:SetSystemCursor (0x125e,00007f82),stub!
fixme:cursor:SetSystemCursor (0x126e,00007f84),stub!
fixme:cursor:SetSystemCursor (0x127e,00007f04),stub!
fixme:cursor:SetSystemCursor (0x128e,00007f02),stub!
fixme:d3d:IWineD3DImpl_CreateDevice (0x7fdb2ab0) Incomplete stub for d3d8
fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_VERSION ("1.5.5 NVIDIA 81.78")->(0x00511ff2)
fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_RENDERER ("GeForce4 Ti 4600/AGP/SSE/3DNOW!")->(0x0250)
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(40,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(128,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(129,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(130,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(131,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(132,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(133,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(134,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(135,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(156,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(161,1) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(162,-1) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(163,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(164,1065353216) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(165,1) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(172,3) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fdb44f8)->(173,1) not handled yet
err:dsound

SOUND_MixOne underrun on sound buffer 0x7a695d70
fixme:d3d:IDirect3DDevice8Impl_Reset (0x7fdb44f8) : stub
err:dsound

SOUND_MixOne underrun on sound buffer 0x7a695d70
// CUT OUT THE SOUND BUFFER UNDERRUN-MESSAGES //
fixme:imm:ImmAssociateContextEx (0x10022, (nil), 16): stub
====== wine 0.9.8 log (crashes) ======
fixme

le:ITypeInfo_fnRelease destroy child objects
fixme:cdrom:CDROM_DeviceIoControl Unsupported IOCTL 2d1400 (type=2d access=0 func=500 meth=0)
fixme:cursor:SetSystemCursor (0x1126,00007f8a),stub!
fixme:cursor:SetSystemCursor (0x112e,00007f00),stub!
fixme:cursor:SetSystemCursor (0x113e,00007f03),stub!
fixme:cursor:SetSystemCursor (0x1146,00007f01),stub!
fixme:cursor:SetSystemCursor (0x1156,00007f88),stub!
fixme:cursor:SetSystemCursor (0x1166,00007f86),stub!
fixme:cursor:SetSystemCursor (0x1176,00007f83),stub!
fixme:cursor:SetSystemCursor (0x1186,00007f85),stub!
fixme:cursor:SetSystemCursor (0x1196,00007f82),stub!
fixme:cursor:SetSystemCursor (0x11a6,00007f84),stub!
fixme:cursor:SetSystemCursor (0x11b6,00007f04),stub!
fixme:cursor:SetSystemCursor (0x11c6,00007f02),stub!
fixme:d3d:IWineD3DImpl_CreateDevice (0x7fd69350) Incomplete stub for d3d8
fixme:d3d:IWineD3DDeviceImpl_GetAvailableTextureMem (0x7fdab5b0) : stub, emulating 64Mib for now, returning 64Mib
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(128,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(129,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(130,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(131,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(132,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(133,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(134,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(135,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(162,-1) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(163,0) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(164,1065353216) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(165,1) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(172,3) not handled yet
fixme:d3d:IDirect3DDevice8Impl_SetRenderState (0x7fd6b4a0)->(173,1) not handled yet
wine: Unhandled page fault on read access to 0x00000000 at address 0x79abe9f7 (thread 000b), starting debugger...
WineDbg starting on pid 0xa
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x79abe9f7).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
EIP:79abe9f7 ESP:7fb7ed08 EBP:7fb7ed70 EFLAGS:00210212( - 00 - RIA1)
EAX:00000000 EBX:79aff340 ECX:7fdab5b0 EDX:7fdab5b0
ESI:79afc300 EDI:7fd69728
Stack dump:
0x7fb7ed08: 7fd69728 79afc300 7fb7ed60 7fb7edb8
0x7fb7ed18: 7f22e83b 7c1deb50 7fb7edd4 7fb7ed94
0x7fb7ed28: 7fb7edb8 7c1b4f1b 00000000 7fb7ed70
0x7fb7ed38: 7c0d6418 7bf03000 799c00a8 7c1b497c
0x7fb7ed48: 7fdab5b0 799c00a8 7bf03000 00000000
0x7fb7ed58: 00000000 00000405 00000000 7c1deb50
Backtrace:
=>1 0x79abe9f7 IWineD3DSurfaceImpl_LockRect+0x877(iface=0x7fd69728, pLockedRect=0x7fb7edf4, pRect=0x0, Flags=0x810) [/usr/app/wine/0.9.8/install/dlls/wined3d/surface.c:486] in wined3d (0x79abe9f7)
2 0x7c1b4fb0 IDirect3DSurface8Impl_LockRect+0x50(iface=0x7fd69710, pLockedRect=0x7fb7edf4, pRect=0x0, Flags=0x810) [/usr/app/wine/0.9.8/install/dlls/d3d8/surface.c:159] in d3d8 (0x7c1b4fb0)
3 0x004cdc3a in worldedit (+0xcdc3a) (0x004cdc3a)
4 0x004c37ee in worldedit (+0xc37ee) (0x004c37ee)
5 0x00401d53 in worldedit (+0x1d53) (0x00401d53)
6 0x7fb7fef8 (0x7fb7fef8)
7 0x008d8148 in worldedit (+0x4d8148) (0x008d8148)
8 0x7fc396be start_process+0xee(arg=0x0) [/usr/app/wine/0.9.8/install/dlls/kernel/process.c:845] in kernel32 (0x7fc396be)
9 0xb7f2d53b wine_switch_to_stack+0x17 in libwine.so.1 (0xb7f2d53b)
0x79abe9f7 IWineD3DSurfaceImpl_LockRect+0x877 [/usr/app/wine/0.9.8/install/dlls/wined3d/surface.c:486] in wined3d: movl 0x0(%eax),%edx
486 IWineD3DSurface_GetContainer(myDevice->renderTarget, &IID_IWineD3DSwapChain, (void **)&targetSwapChain);
Modules:
Module Address Debug info Name (102 modules)
PE 0x00400000-00992000 Export worldedit
PE 0x10000000-10016000 Deferred cmdlineext02
PE 0x15000000-15067000 Deferred storm
PE 0x21100000-2115f000 Deferred mss32
PE 0x60000000-6005d000 Deferred ijl15
ELF 0x79a68000-79b00000 Stabs wined3d<elf>
\-PE 0x79a80000-79b00000 \ wined3d
ELF 0x7bf00000-7bf03000 Deferred <wine-loader>
ELF 0x7c16f000-7c1e0000 Stabs d3d8<elf>
\-PE 0x7c180000-7c1e0000 \ d3d8
ELF 0x7c5e7000-7c680000 Deferred oleaut32<elf>
\-PE 0x7c600000-7c680000 \ oleaut32
ELF 0x7c8bb000-7c8d0000 Deferred midimap<elf>
\-PE 0x7c8c0000-7c8d0000 \ midimap
ELF 0x7c9f0000-7ca18000 Deferred msacm32<elf>
\-PE 0x7ca00000-7ca18000 \ msacm32
ELF 0x7ca18000-7ca30000 Deferred msacm<elf>
\-PE 0x7ca20000-7ca30000 \ msacm
ELF 0x7ca30000-7ca77000 Deferred wineoss<elf>
\-PE 0x7ca40000-7ca77000 \ wineoss
ELF 0x7e4a2000-7e4d4000 Deferred uxtheme<elf>
\-PE 0x7e4b0000-7e4d4000 \ uxtheme
ELF 0x7e4df000-7e4e8000 Deferred libxcursor.so.1.0.2
ELF 0x7e4f0000-7e50e000 Deferred ximcp.so.2
ELF 0x7e50e000-7e592000 Deferred winex11<elf>
\-PE 0x7e520000-7e592000 \ winex11
ELF 0x7e592000-7e5b2000 Deferred libexpat.so.1
ELF 0x7e5b2000-7e5e1000 Deferred libfontconfig.so.1
ELF 0x7e5e1000-7e5f3000 Deferred libz.so.1
ELF 0x7e5f3000-7e660000 Deferred libfreetype.so.6
ELF 0x7e771000-7e775000 Deferred libxrandr.so.2
ELF 0x7e775000-7e77e000 Deferred libxrender.so.1
ELF 0x7e77e000-7e807000 Deferred winmm<elf>
\-PE 0x7e790000-7e807000 \ winmm
ELF 0x7e807000-7e832000 Deferred ws2_32<elf>
\-PE 0x7e810000-7e832000 \ ws2_32
ELF 0x7e832000-7e84c000 Deferred wsock32<elf>
\-PE 0x7e840000-7e84c000 \ wsock32
ELF 0x7e84c000-7e86c000 Deferred mpr<elf>
\-PE 0x7e850000-7e86c000 \ mpr
ELF 0x7e86c000-7e8b4000 Deferred wininet<elf>
\-PE 0x7e880000-7e8b4000 \ wininet
ELF 0x7e9cb000-7f189000 Deferred libglcore.so.1
ELF 0x7f189000-7f203000 Deferred libglu.so.1
ELF 0x7f203000-7f286000 Deferred libgl.so.1
ELF 0x7f286000-7f352000 Deferred libx11.so.6
ELF 0x7f352000-7f36a000 Deferred libice.so.6
ELF 0x7f36a000-7f406000 Deferred opengl32<elf>
\-PE 0x7f3a0000-7f406000 \ opengl32
ELF 0x7f406000-7f423000 Deferred imm32<elf>
\-PE 0x7f410000-7f423000 \ imm32
ELF 0x7f423000-7f437000 Deferred lz32<elf>
\-PE 0x7f430000-7f437000 \ lz32
ELF 0x7f437000-7f450000 Deferred version<elf>
\-PE 0x7f440000-7f450000 \ version
ELF 0x7f450000-7f47c000 Deferred winspool<elf>
\-PE 0x7f460000-7f47c000 \ winspool
ELF 0x7f47c000-7f540000 Deferred comctl32<elf>
\-PE 0x7f490000-7f540000 \ comctl32
ELF 0x7f540000-7f55e000 Deferred iphlpapi<elf>
\-PE 0x7f550000-7f55e000 \ iphlpapi
ELF 0x7f55e000-7f5a8000 Deferred rpcrt4<elf>
\-PE 0x7f570000-7f5a8000 \ rpcrt4
ELF 0x7f5a8000-7f63e000 Deferred ole32<elf>
\-PE 0x7f5c0000-7f63e000 \ ole32
ELF 0x7f63e000-7f69b000 Deferred shlwapi<elf>
\-PE 0x7f650000-7f69b000 \ shlwapi
ELF 0x7f69b000-7f76c000 Deferred shell32<elf>
\-PE 0x7f6b0000-7f76c000 \ shell32
ELF 0x7f76c000-7f80a000 Deferred comdlg32<elf>
\-PE 0x7f780000-7f80a000 \ comdlg32
ELF 0x7f80a000-7f84a000 Deferred advapi32<elf>
\-PE 0x7f820000-7f84a000 \ advapi32
ELF 0x7f84a000-7f8db000 Deferred gdi32<elf>
\-PE 0x7f860000-7f8db000 \ gdi32
ELF 0x7f8db000-7fa0d000 Deferred user32<elf>
\-PE 0x7f900000-7fa0d000 \ user32
ELF 0x7fa0d000-7fa70000 Deferred msvcrt<elf>
\-PE 0x7fa20000-7fa70000 \ msvcrt
ELF 0x7fbca000-7fcd0000 Stabs kernel32<elf>
\-PE 0x7fbe0000-7fcd0000 \ kernel32
ELF 0x7fcd2000-7fce0000 Deferred libxext.so.6
ELF 0x7fce2000-7fceb000 Deferred libgcc_s.so.1
ELF 0x7fceb000-7fcf0000 Deferred libxxf86vm.so.1
ELF 0x7fe00000-7fe06000 Deferred libxxf86dga.so.1
ELF 0x7fe06000-7fe0f000 Deferred libsm.so.6
ELF 0x7fe0f000-7fe19000 Deferred libnss_files.so.2
ELF 0x7fe19000-7fe22000 Deferred libnss_nis.so.2
ELF 0x7fe22000-7fe36000 Deferred libnsl.so.1
ELF 0x7fe36000-7fe3e000 Deferred libnss_compat.so.2
ELF 0x7fe40000-7fe43000 Deferred iso8859-1.so
ELF 0x7fe43000-7fe46000 Deferred xlcdef.so.2
ELF 0x7fe4a000-7fe6c000 Deferred libm.so.6
ELF 0x7fe6c000-7ff62000 Deferred libwine_unicode.so.1
ELF 0x7ff62000-7ffe0000 Deferred ntdll<elf>
\-PE 0x7ff70000-7ffe0000 \ ntdll
ELF 0xb7dd1000-b7dd3000 Deferred libnvidia-tls.so.1
ELF 0xb7dd8000-b7ddb000 Deferred libdl.so.2
ELF 0xb7ddb000-b7f10000 Deferred libc.so.6
ELF 0xb7f10000-b7f1f000 Deferred libpthread.so.0
ELF 0xb7f28000-b7f42000 DIA libwine.so.1
ELF 0xb7f43000-b7f5a000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
0000000a (D) Z:\mnt\data0\Game\Warcraft III\worldedit.exe
0000000b 0 <==
WineDbg terminated on pid 0xa
Last Notes:
Someone on appdb.winehq.org/appview.php?appId=1760 (de-URLed for commonly known reasons I think) says, that his World Editor is working almost completely. Unfortunately, this person doesn't seem to be around anymore. As well, no one else seems to be around there. I hope that someone here maybe has a few ideas, or that someone which is working with a similar tool could help me about that issue, maybe even with describing his setup. Or that someone interprets something in the log and can show me what is wrong with my setup or my configuration. I have to add that I tried some combinations with virtual desktop and double buffering, disabling shaders and so on.