[Bug 48171] Call of Duty: Modern Warfare (2019) exception

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jun 22 16:42:48 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=48171

Rémi Bernon <rbernon at codeweavers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rbernon at codeweavers.com

--- Comment #12 from Rémi Bernon <rbernon at codeweavers.com> ---
Created attachment 67520
  --> https://bugs.winehq.org/attachment.cgi?id=67520
gdi32 GdiDllinitialize stub

It's probably doing the same thing as Black Ops 3 which I was working with. The
game tries to call GdiDllInitialize, but it fails for several reasons.


First, it calls it by loading gdi32.dll from disk, so using the fake dll, and
computing the offset of the function from the procedure address in memory. This
is not working with Wine Staging fake dlls patch series because the code
sections are generated separately and the fake dlls only contain thunks at
different position from the real functions.

The first part of the series that I sent to the mailing list should fix that by
extracting fake dll modules directly from the builtin so files, keeping the
correct symbol positions.


Then, because the function is stubbed, the call is still probably going to
fail, so it also has to be implemented, doing nothing for instance, like in the
attached patch.


Last, if the implementation does anything that requires external symbols, such
as the FIXME message in the attached patch, then the call from the file image
will also fail unless the last part of the patch series is used, with the
implementation of thunks and jump table for every DLL entry point, but that
last part can be heavy and is also mostly untested.

-- 
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