Wine regression caused by 12/02 18:05:37 UTC commit: breaks Total Annihilation

Jonathan Gevaryahu lord_nightmare at users.sourceforge.net
Sun Dec 12 09:59:43 CST 2004


The CVS commit on 12/02 at 18:05:37 UTC causes the game "Total 
Annihilation" to cease functioning. Previously the game worked (although 
sounds don't work due to a seperate directsound issue), but since the 
aformentioned commit, the game changes resolution but does not ever 
display its titlescreen (it isn't invisible either, clicking where the 
exit button would be has no effect), and cpu usage is maxed out, 
suggesting an infinite loop.

I did a trace using 
WINEDEBUG="err+all,warn+all,fixme+all,trace+ntdll,trace+kernel,trace+server"
and got the following, repeated over and over with some small variation:
...
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102866572.849273 
(+0.002667)
, handles={0x10c} )
000d: select() = PENDING
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
000a: event_op( handle=0xc0, op=1 )
000a: event_op() = 0
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102866572.859131 
(+0.005230)
, handles={0x10c} )
000d: select() = PENDING
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
0009: select( flags=4, cookie=0x4087f794, timeout=0, handles={0x10} )
0009: select() = ACCESS_DENIED
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
...

This was tested on both normal and modified (no-CD crack) versions of 
total annihilation, and no difference in behavior was noted.

Here is the information about the commit in question:

CVS Commit 12/02 18:05:37 message:
Eric Pouech <pouech-eric at wanadoo.fr>
 - moved event, semaphore, mutex implementation from kernel32 to ntdll
 - added mutant implementation in ntdll, and use it for mutex
   implementation in kernel32
 - added access parameter on event, semaphore, timer creation in
   wineserver (as ntdll interface requires it)
 - added missing definitions in include/winternl.h

Files modified by commit:
dlls/kernel/sync.c
dlls/ntdll/ntdll.spec
dlls/ntdll/sync.c
include/winternl.h
include/wine/server_protocol.h
server/event.c
server/mutex.c
server/protocol.def
server/semaphore.c
server/timer.c
server/trace.c


Jonathan Gevaryahu
lord_nightmare at users.sf.net




More information about the wine-devel mailing list