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


Reply via email to