https://bugs.winehq.org/show_bug.cgi?id=44456
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|x86 |x86-64 Component|-unknown |kernel32 CC| |focht@gmx.net Ever confirmed|0 |1 Summary|Football Manager 2017 |64-bit Football Manager |crashes |2017 crashes due missing | |'kernel32.dll' -> | |'kernelbase.dll' load-time | |dependency (Minwin/Win7+) Status|UNCONFIRMED |NEW
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
It seems the game is specifically built for Windows 7 or later.
--- snip --- $ pwd /home/focht/Downloads/wine64/drive_c/Games/Football Manager 2017
$ file *.{dll,exe} avutil-ttv-51.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows D3DCompiler_43.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows dbghelp.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows icudt57.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows icuin57.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows icuuc57.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows libmfxsw64.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows libmp3lame-ttv.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows OpenAL32.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows steam_api64.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows steamclient64.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows swresample-ttv-0.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows twitchsdk_x64_release.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows vpxmt.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows fm.exe: PE32+ executable (GUI) x86-64, for MS Windows stp-fm2017.exe: PE32+ executable (GUI) x86-64, for MS Windows unins000.exe: PE32 executable (GUI) Intel 80386, for MS Windows
$ WINEDEBUG=+seh,+relay wine ./stp-fm2017.exe >>log.txt 2>&1 ... 0030:Starting process L"C:\Games\Football Manager 2017\stp-fm2017.exe" (entryproc=0x1400047f0) 0030:Call KERNEL32.GetStartupInfoW(0023fcd0,) ret=140005336 0030:Ret KERNEL32.GetStartupInfoW() retval=0023fcd0 ret=140005336 0030:Call ntdll.RtlEncodePointer(00000000,) ret=140004b4e 0030:Ret ntdll.RtlEncodePointer() retval=c565c21f6edfb267 ret=140004b4e 0030:Call ntdll.RtlEncodePointer(1400082a4,) ret=1400082d5 0030:Ret ntdll.RtlEncodePointer() retval=c565c21e2edf30c3 ret=1400082d5 0030:Call KERNEL32.GetModuleHandleW(140010f60 L"kernel32.dll",) ret=1400053db 0030:Ret KERNEL32.GetModuleHandleW() retval=7b460000 ret=1400053db ... 0030:Call KERNEL32.GetModuleHandleW(140015500 L"ntdll.dll",) ret=14012f66b 0030:Ret KERNEL32.GetModuleHandleW() retval=7bc80000 ret=14012f66b 0030:Call KERNEL32.GetModuleHandleW(140015518 L"kernel32.dll",) ret=140188e27 0030:Ret KERNEL32.GetModuleHandleW() retval=7b460000 ret=140188e27 0030:Call KERNEL32.GetModuleHandleW(140015538 L"ntdll.dll",) ret=1400bc3dd 0030:Ret KERNEL32.GetModuleHandleW() retval=7bc80000 ret=1400bc3dd 0030:Call KERNEL32.GetModuleHandleW(140015550 L"kernelbase.dll",) ret=1401eb184 0030:Ret KERNEL32.GetModuleHandleW() retval=00000000 ret=1401eb184 0030:trace:seh:NtRaiseException code=c0000005 flags=0 addr=0x140001a40 ip=140001a40 tid=0030 0030:trace:seh:NtRaiseException info[0]=0000000000000000 0030:trace:seh:NtRaiseException info[1]=000000000000003c 0030:trace:seh:NtRaiseException rax=000000000000003c rbx=e26a418e972198e9 rcx=000000007bdb0279 rdx=0000000140001203 0030:trace:seh:NtRaiseException rsi=000000014005553f rdi=000000000023e980 rbp=000000000023eb24 rsp=000000000023e980 0030:trace:seh:NtRaiseException r8=0000000000000009 r9=00000001401eb184 r10=0000000000000000 r11=0000000000000246 0030:trace:seh:NtRaiseException r12=000000014001c100 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 0030:trace:seh:RtlVirtualUnwind type 1 rip 140001a40 rsp 23e980 ... --- snip ---
It expects Minwin 'kernelbase.dll' already mapped by 'kernel32.dll' core dll. Traditional core dlls (except ntdll) forward their calls to Minwin (Minimal Windows kernel) dlls.
http://windows-now.com/blogs/robert/mark-russinovich-explains-minwin-once-an...
--- quote --- As an aside, for those of you wondering, a lot of the MinWin magic happens in KernelBase.dll. It contains a lot of the functionality that was refactored from Kernel32.dll, so for compatibility with older programs, they left “forwarders” in there that pass the calls down to KernelBase.dll as necessary. --- quote ---
Unfortunately Wine does it the other way around.
Regards