[Bug 29168] Star Wars: The Old Republic game client hangs at intro splash

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Mar 5 15:42:42 CST 2012


http://bugs.winehq.org/show_bug.cgi?id=29168

Carsten Juttner <carjay at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |carjay at gmx.net

--- Comment #110 from Carsten Juttner <carjay at gmx.net> 2012-03-05 15:42:42 CST ---
Hi, I've been looking for the cause for some weeks now, too, and found the
answer.

SWTOR seemingly reads part of its timing information directly from the
KUSER_SHARED_DATA mapping. This is a special virtual address mapping which is
present in all processes and used internally by Windows user space libraries.
Basically a system stat page exported by the NT kernel to user space.

It can be found at virtual address 0x7ffe0000. In Wine this page is initialized
once (it holds a lot more information than just timing) but after that there do
not seem to be any more updates. Also the InterruptTime field (time since boot)
is never set up at all.

SWTOR seems to base its send timers on exactly this source. Now, obviously a
timing source that never progresses leads to timers never elapsing which is a
good explanation why things do not work properly.

For demonstration purposes I've attached a small proof of concept which makes
things work by simply updating the fields whenever the process enters an
"EnterCriticalSection"-API call.

Before you get all excited, this is of course not a proper way to do things. On
Windows this information is set from within the kernel which cannot be done for
wine in a similar way.

Hopefully someone more familiar with Wine internals has an idea where and how
to set this up properly.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list