http://bugs.winehq.org/show_bug.cgi?id=34864
Bug #: 34864 Summary: K32EnumProcessModulesEx not implemented in 64-bit Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: audvare@gmail.com Classification: Unclassified
Created attachment 46472 --> http://bugs.winehq.org/attachment.cgi?id=46472 crash log
Call of Duty Ghosts uses 'PE32+' EXE to start up in 32-bit, but ultimately requires a 64-bit set up to run. It would seem like it probably does this so it can at least tell the user of a 32-bit system that they need to have a 64-bit set up to run.
It calls this function at start. I replaced psapi.dll with one from my Windows 7 installation (because PSAPI.EnumProcessModulesEx is not implemented in 64-bit), but after that the call is forwarded to kernel32 K32EnumProcessModulesEx.
http://bugs.winehq.org/show_bug.cgi?id=34864
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |win64 Platform|x86 |x86-64
http://bugs.winehq.org/show_bug.cgi?id=34864
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Version|unspecified |1.7.5 Summary|K32EnumProcessModulesEx not |Call of Duty: Ghosts needs |implemented in 64-bit |psapi/kernel32 | |K32EnumProcessModulesEx Ever Confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net 2013-11-06 15:49:26 CST --- Hello folks,
confirming.
--- snip --- Unhandled exception: unimplemented function PSAPI.DLL.EnumProcessModulesEx called in 64-bit code (0x00007fc4b78f115b). Register dump: rip:00007fc4b78f115b rsp:000000000023f810 rbp:000000000023f8f0 eflags:00000202 ( - -- I - - - ) rax:000000000023f850 rbx:000000000023f940 rcx:000000000023f850 rdx:0000000140433cf0 rsi:0000000140851488 rdi:00000001408514b4 r8:0000000000000000 r9:000000000023fb80 r10:00000000fffffff8 r11:00000030b8489366 r12:000000007bf00c50 r13:00007fff760afc50 r14:ffffffffffffffff r15:0000000000000001 ... Backtrace: =>0 0x00007fc4b78f115b stub_entry_point+0x7c(dll="PSAPI.DLL", name="EnumProcessModulesEx", ret_addr=0x140433cf0) [/home/focht/projects/wine/wine-git/dlls/ntdll/loader.c:197] in ntdll (0x000000000023f8f0) 1 0x0000000140433cf0 in iw6sp64_ship (+0x433cef) (0x0000000140000000) 2 0x00000001404351e9 in iw6sp64_ship (+0x4351e8) (0x0000000140000000) 3 0x0000000140627a80 in iw6sp64_ship (+0x627a7f) (0x000000000023fd20) ... 0x00007fc4b78f115b stub_entry_point+0x7c [/home/focht/projects/wine/wine-git/dlls/ntdll/loader.c:197] in ntdll: jmp 0x00007fc4b78f114c stub_entry_point+0x6d 197 for (;;) RtlRaiseException( &rec ); Modules: Module Address Debug info Name (77 modules) PE 400000- 41e000 Deferred xinput1_3 PE 3b400000- 3b421000 Deferred steam_api64 ELF 7b800000- 7bc82000 Dwarf kernel32<elf> -PE 7b820000- 7bc82000 \ kernel32 ELF 7be00000- 7c103000 Dwarf <wine-loader> PE 140000000- 146d4f000 Export iw6sp64_ship PE 180000000- 18008d000 Deferred bink2w64 ... 00000002c (D) C:\Program Files (x86)\Call of Duty Ghosts\iw6sp64_ship.exe 0000002d 0 <== System information: Wine build: wine-1.7.5-336-gb43b7b6 Platform: x86_64 Host system: Linux Host version: 3.11.6-200.fc19.x86_64 --- snip ---
--- quote --- Call of Duty Ghosts uses 'PE32+' EXE to start up in 32-bit, but ultimately requires a 64-bit set up to run. --- quote ---
PE32+ _is_ Portable Executable 64-bit format.
There are only a few Steam Client libraries shipped as 32-bit PE for whatever reasons.
-- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Call of Duty Ghosts
$ file *.{dll,exe} bink2w64.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows ControllerManager.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows d3dcompiler_46.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows nvToolsExt64_1.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows steam_api64.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows steam_api.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows SteamAPIUpdater.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows steamclient.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows Steam.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows tier0_s.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows UpdateDLLWrapper.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows vstdlib_s.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows XGamepad.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows iw6sp64_ship.exe: PE32+ executable (GUI) x86-64, for MS Windows unins000.exe: PE32 executable (GUI) Intel 80386, for MS Windows -- snip ---
MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682633%28v=vs.85%2...
--- quote --- This function is intended primarily for 64-bit applications. If the function is called by a 32-bit application running under WOW64, the dwFilterFlag option is ignored and the function provides the same results as the EnumProcessModules function. --- quote ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=34864
Tom a3732043@drdrb.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |a3732043@drdrb.net
--- Comment #2 from Tom a3732043@drdrb.net --- Any news on this topic?
https://bugs.winehq.org/show_bug.cgi?id=34864
roger@mailinator.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |roger@mailinator.com
--- Comment #3 from roger@mailinator.com --- This game is on discount now on steam.
for 66 hours as I speak. Only around 15€. The game price varies a bit, but it's still cheap to buy now.
I bought it. I am also interested if anyone is trying to fix it.
https://bugs.winehq.org/show_bug.cgi?id=34864
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
--- Comment #4 from Sebastian Lackner sebastian@fds-team.de --- Does a semi-stub implementation like this one help?
https://github.com/wine-compholio/wine-staging/blob/master/patches/psapi-K32...
So far the filter flags are ignored, and I am also not sure what the best way is to write mixed 32/64 bit wine tests.
https://bugs.winehq.org/show_bug.cgi?id=34864
--- Comment #5 from Sebastian Lackner sebastian@fds-team.de --- The patch containing the semi-stub was committed:
http://source.winehq.org/git/wine.git/commit/cacc9ae888b005efa5a04f5a1559b9a...
https://bugs.winehq.org/show_bug.cgi?id=34864
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |cacc9ae888b005efa5a04f5a155 | |9b9a9d21598eb Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/cacc9ae888b005efa5a04f5a155...
Thanks Sebastian
It runs a bit further but needs DirectX 10/11 implementation in the end.
--- snip --- $ WINEDEBUG=+tid,+seh,+loaddll,+debugstr,+msgbox wine ./iw6sp64_ship.exe ... 0023:fixme:module:K32EnumProcessModulesEx (0xffffffffffffffff, (nil), 0, 0x23fb80, 3) semi-stub 0023:fixme:module:K32EnumProcessModulesEx (0xffffffffffffffff, 0x42a90, 216, 0x23fb80, 3) semi-stub ... 0023:fixme:d3d11:D3D11CreateDevice stub: adapter 0x4d920, driver_type D3D_DRIVER_TYPE_UNKNOWN, swrast (nil), flags 0x80, feature_levels (nil), levels 0, sdk_version 7, device (nil), feature_level 0x23f9b0, context (nil) 0023:trace:msgbox:MSGBOX_OnInit L"DirectX encountered an unrecoverable error.\n\nCheck the readme for possible solutions." --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=34864
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.34.
https://bugs.winehq.org/show_bug.cgi?id=34864
Anthony Jagers noonetinone@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |noonetinone@gmail.com
--- Comment #8 from Anthony Jagers noonetinone@gmail.com --- Anyone try Ghost lately?