Mike Hearn schrieb: > On Fri, 14 Oct 2005 19:02:02 +0200, Christoph wrote: > >> WoW really seems to relay on this magic address. > > > And yet it works in Windows which presumably does not have any WoW > specific appgoo in it. So I imagine it's actually some weird quick of > the NT kernel we're not emulating correctly here, but Alexandre is > the true man to ask.
I tested my patch yesterday for about 4 hours and I only had one crash. Game freezed. Got lock in ntdll, no run out of memory! Here is maybe a clue. Can anyone outline the role of imm32.dll and if it can be involved in our problem? I looked at the output, and this catched my eye. Here I started WoW without any wine hacks, just with my dropped MESSAGE lines, so with mouse click problem : trace:loaddll:load_builtin_dll Loaded module L"C:\\windows\\system\\opengl32.dll" : builtin EXE not mmap 0xbfe20000, 16384, 7, 50, -1 = 0xbfe20000 trace:loaddll:load_native_dll Loaded module L"C:\\windows\\system\\IMM32.dll" : native EXE not mmap 0x10000000, 430080, 7, 50, -1 = 0x10000000 trace:loaddll:load_native_dll Loaded module L"E:\\World of Warcraft\\DivxDecoder.dll" : native not mmap 0x7ff90000, 4096, 3, 50, -1 = 0x7ff90000 trace:loaddll:load_builtin_dll Loaded module L"C:\\windows\\system\\winmm.dll" : builtin EXE set mmap (nil), 655360, 7, 34, -1 = 0x7fedd000 imm32 is the only one loaded in 0x1xxxxxxx. I tried buildin and native version, no difference. later, WoW uses adresses like this: not mmap 0x7d601000, 32768, 0, 50, -1 = 0x7d601000 not mmap 0x79b20000, 4096, 0, 50, -1 = 0x79b20000 not mmap 0x79921000, 1048576, 0, 50, -1 = 0x79921000 not mmap 0x6249d000, 4096, 0, 50, -1 = 0x6249d000 not mmap 0x7d641000, 212992, 0, 50, -1 = 0x7d641000 ... mouse clicks do not work. Here with my patch, mouse working trace:loaddll:load_builtin_dll Loaded module L"C:\\windows\\system\\opengl32.dll" : builtin not mmap 0xbfe20000, 16384, 7, 50, -1 = 0xbfe20000 trace:loaddll:load_native_dll Loaded module L"C:\\windows\\system\\IMM32.dll" : native set mmap 0x10246000, 495616, 7, 50, -1 = 0x10246000 trace:loaddll:load_native_dll Loaded module L"E:\\World of Warcraft\\DivxDecoder.dll" : native not mmap 0x7ff90000, 4096, 3, 50, -1 = 0x7ff90000 trace:loaddll:load_builtin_dll Loaded module L"C:\\windows\\system\\winmm.dll" : builtin set mmap 0x102bf000, 655360, 7, 50, -1 = 0x102bf000 not mmap 0x7ff60000, 4096, 3, 50, -1 = 0x7ff60000 and later game running: not mmap 0x107c5000, 0, 0, 50, -1 = 0x107c5000 not mmap 0x1074d000, 4096, 0, 50, -1 = 0x1074d000 not mmap 0x1074e000, 4096, 0, 50, -1 = 0x1074e000 not mmap 0x1074c000, 4096, 0, 50, -1 = 0x1074c000 not mmap 0x10749000, 0, 0, 50, -1 = 0x10749000 not mmap 0x122ed000, 4096, 0, 50, -1 = 0x122ed000 not mmap 0x122ee000, 4096, 0, 50, -1 = 0x122ee000 not mmap 0x122ec000, 4096, 0, 50, -1 = 0x122ec000 not mmap 0x122e9000, 0, 0, 50, -1 = 0x122e9000 not mmap 0x107bf000, 4096, 0, 50, -1 = 0x107bf000 not mmap 0x107be000, 4096, 0, 50, -1 = 0x107be000 ... just for fun I tested with 0x20000000. imm32.dll still at 0x10000000, wow uses 0x2xxxxxxx, mouse working. 0x30000000 works either, all other segfault or game starts but crash while entering the world. chris