[Bug 23914] Resident Evil 5 fails on startup, reporting 'Errorcode:80070507 InitRpl Failed' (needs named pipe message mode support)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jun 1 06:33:18 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |focht at gmx.net
         Resolution|---                         |DUPLICATE
            Summary|Resident Evil 5: Game fails |Resident Evil 5 fails on
                   |to run with unknown reason  |startup, reporting
                   |                            |'Errorcode:80070507 InitRpl
                   |                            |Failed' (needs named pipe
                   |                            |message mode support)

--- Comment #27 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

multiple issues here.

Fortunately I found a distributed "online" backup, thanks to some guys still
seeding :-)

The first issue is bug 36627

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/CAPCOM/RESIDENT EVIL 5

$ wine ./Launcher.exe 
err:module:import_dll Library MSASN1.dll (which is needed by
L"C:\\windows\\system32\\xlive.dll") not found
err:module:import_dll Library xlive.dll (which is needed by L"C:\\Program
Files\\CAPCOM\\RESIDENT EVIL 5\\RE5DX9.EXE") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program
Files\\CAPCOM\\RESIDENT EVIL 5\\RE5DX9.EXE" failed, status c0000135
--- snip ---

The game bundles 'Games For Windows Live 2.0.0687.0' which hard-binds to
'MSASN1.dll'.
This can be worked around with: 'winetricks -q msasn1'

The next issue is bug 17195 (SetNamedPipeHandleState implementation, support
for named pipe message mode) as indicated by comment #22

The launcher uses named pipe in message mode for IPC with main game process.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/CAPCOM/RESIDENT EVIL 5

$ WINEDEBUG=+tid,+seh,+relay,+snoop,+msvcrt wine ./Launcher.exe >>log.txt 2>&1
...
002b:Call KERNEL32.CreateNamedPipeW(00dbe080
L"\\\\.\\pipe\\0000002a",40080003,00000006,00000001,00000400,00000400,00001388,00dbe054)
ret=00403d54
002b:Ret  KERNEL32.CreateNamedPipeW() retval=0000006c ret=00403d54
...
002c:Starting thread proc 0x401490 (arg=0x2413b8)
...
002c:Call KERNEL32.ConnectNamedPipe(0000006c,002413fc) ret=004033ed
002c:Ret  KERNEL32.ConnectNamedPipe() retval=00000000 ret=004033ed
002c:Call KERNEL32.GetLastError() ret=004033fa
002c:Ret  KERNEL32.GetLastError() retval=000003e5 ret=004033fa
002c:Call KERNEL32.WaitForMultipleObjects(00000002,00241414,00000000,ffffffff)
ret=00403a88 
...
002b:Call KERNEL32.CreateProcessW(00000000,00dbcd58 L"RE5DX9.exe
-dx9",00000000,00000000,00000000,00000410,00000000,0013ba40 L"C:\\Program
Files\\CAPCOM\\RESIDENT EVIL 5\\",00dbc410,00dbc400) ret=7e56607a
...
002e:Call KERNEL32.__wine_kernel_init() ret=7bc5a4b2
002b:Ret  KERNEL32.CreateProcessW() retval=00000001 ret=7e56607a 
...
002e:Call KERNEL32.CreateFileW(0033d78c
L"\\\\.\\pipe\\0000002a",c0000000,00000000,00000000,00000003,40000000,00000000)
ret=00e26522
002e:Ret  KERNEL32.CreateFileW() retval=000000b4 ret=00e26522
002e:Call KERNEL32.SetNamedPipeHandleState(000000b4,0033d784,00000000,00000000)
ret=00e26547
002e:Ret  KERNEL32.SetNamedPipeHandleState() retval=00000000 ret=00e26547
002e:Call KERNEL32.GetLastError() ret=00e26450
002e:Ret  KERNEL32.GetLastError() retval=00000000 ret=00e26450 
...
002e:Ret  KERNEL32.CloseHandle() retval=00000001 ret=00e265a0
...
002c:Ret  KERNEL32.WaitForMultipleObjects() retval=00000000 ret=00403a88 
...
002e:Call user32.MessageBoxA(00000000,01273d08 "Errorcode:80070507",00f64bfc
"InitRpl Failed",00041010) ret=00721f07 
--- snip ---

The child closes the other end of pipe after failure to bring the pipe in
message mode which also wakes the parent with broken pipe error.

Faking "success" is obviously not a good solution hence I ran the game with a
Wine version that carries Adam Martinson's patchset (branch rebased to tip).

This brings the game further - only to run into GFWL init problem:

--- snip ---
...
002e:CALL xlive.5297(<unknown, check return>) ret=0044eb72
002e:Call
advapi32.RegisterTraceGuidsA(015e39d7,00000000,01495c5c,00000003,01ab8744,00000000,00000000,01ac85b0)
ret=015e3a5c
002e:fixme:advapi:RegisterTraceGuidsA (0x15e39d7, (nil),
{d5b9ac76-d546-4891-bb8c-bfd865e5c7d5}, 3, 0x1ab8744, (null), (null),
0x1ac85b0): stub
002e:Ret  advapi32.RegisterTraceGuidsA() retval=00000000 ret=015e3a5c 
...
002e:Call KERNEL32.LoadLibraryW(0033c0c8 L"C:\\Program Files\\CAPCOM\\RESIDENT
EVIL 5\\RE5DX9.EXE") ret=01573fd8
002e:Ret  KERNEL32.LoadLibraryW() retval=00400000 ret=01573fd8 
...
002e:Call KERNEL32.lstrcmpiW(001ed71c L"xlive.dll",01492e70 L"shimeng.dll")
ret=015738f6
002e:Ret  KERNEL32.lstrcmpiW() retval=00000001 ret=015738f6
002e:Call KERNEL32.K32GetModuleInformation(ffffffff,00400000,0033c0b0,0000000c)
ret=01571ca9
002e:Ret  KERNEL32.K32GetModuleInformation() retval=00000001 ret=01571ca9
002e:Call KERNEL32.FreeLibrary(00400000) ret=01573e42
002e:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=01573e42
002e:Call KERNEL32.UnmapViewOfFile(13360000) ret=01574ab9
002e:Ret  KERNEL32.UnmapViewOfFile() retval=00000001 ret=01574ab9
002e:Call KERNEL32.CloseHandle(00000104) ret=01574ade
002e:Ret  KERNEL32.CloseHandle() retval=00000001 ret=01574ade
002e:Call KERNEL32.CloseHandle(00000100) ret=01574afc 
...
002e:Call advapi32.RegisterEventSourceW(00000000,01495a2c) ret=015eccbf
002e:fixme:advapi:RegisterEventSourceW ((null),L"XLive"): stub
002e:Ret  advapi32.RegisterEventSourceW() retval=cafe4242 ret=015eccbf
002e:Call
advapi32.ReportEventW(cafe4242,00000002,00000000,80000002,00000000,00000004,00000000,0033bb24,00000000)
ret=015eccff
002e:fixme:advapi:ReportEventW
(0xcafe4242,0x0002,0x0000,0x80000002,(nil),0x0004,0x00000000,0x33bb24,(nil)):
stub
002e:Ret  advapi32.ReportEventW() retval=00000001 ret=015eccff
002e:Call advapi32.DeregisterEventSource(cafe4242) ret=015ecd1f
002e:fixme:advapi:DeregisterEventSource (0xcafe4242) stub
002e:Ret  advapi32.DeregisterEventSource() retval=00000001 ret=015ecd1f
...
002e:Call advapi32.UnregisterTraceGuids(00000000,00000000) ret=015e3a6f
002e:fixme:advapi:UnregisterTraceGuids 0: stub
002e:Ret  advapi32.UnregisterTraceGuids() retval=00000078 ret=015e3a6f
002e:RET  xlive.5297(0033d330,2002af00) retval=80004005 ret=0044eb72
002e:Call KERNEL32.GetLastError() ret=00e31b72
002e:Ret  KERNEL32.GetLastError() retval=00000000 ret=00e31b72
002e:Call KERNEL32.FatalAppExitA(00000000,0033cec8 "E_FAIL :
XLiveInitialize(&xii)") ret=0042eb7d
002e:warn:seh:FatalAppExitA AppExit
002e:Call user32.MessageBoxA(00000000,0033cec8 "E_FAIL :
XLiveInitialize(&xii)",00000000,00001000) ret=7b83bee7
--- snip ---

xlive.5297 API entry = XLiveInitializeEx()

This is bug 33034

After merging my fix on top of named pipe branch it fares better but still
fails in the end:

--- snip ---
002e:CALL xlive.5297(<unknown, check return>) ret=0044eb72 
...
002e:CALL sqmapi.SqmStartUpload(<unknown, check return>) ret=015e368f 
...
002e:RET  sqmapi.SqmStartUpload(0033c9c0,0033c5b0,00000000,00000002,015e2de0)
retval=00000000 ret=015e368f 
...
002e:CALL sqmapi.SqmGetSession(<unknown, check return>) ret=015e3243
...
002e:RET  sqmapi.SqmGetSession(01495a2c,00008000,00000001) retval=00000001
ret=015e3243 
...
002e:CALL sqmapi.SqmSetAppVersion(<unknown, check return>) ret=015e347a
...
002e:RET  sqmapi.SqmSetAppVersion(00000001,00020000,02af0000) retval=00000001
ret=015e347a
002e:CALL sqmapi.SqmReadSharedMachineId(<unknown, check return>) ret=015e348c
...
002e:RET  sqmapi.SqmReadSharedMachineId(0033cba4) retval=00000001 ret=015e348c
002e:CALL sqmapi.SqmSetMachineId(<unknown, check return>) ret=015e34b7
...
002e:RET  sqmapi.SqmSetMachineId(00000001,0033cba4) retval=00000001
ret=015e34b7
002e:CALL sqmapi.SqmReadSharedUserId(<unknown, check return>) ret=015e34c5
...
002e:RET  sqmapi.SqmReadSharedUserId(0033cbb4) retval=00000001 ret=015e34c5
002e:CALL sqmapi.SqmSetUserId(<unknown, check return>) ret=015e34f0
...
002e:RET  sqmapi.SqmSetUserId(00000001,0033cbb4) retval=00000001 ret=015e34f0
...
002e:CALL sqmapi.SqmSetEnabled(<unknown, check return>) ret=015e3087
...
002e:RET  sqmapi.SqmSetEnabled(00000001,00000000) retval=00000001 ret=015e3087
...
002e:CALL sqmapi.SqmSet(<unknown, check return>) ret=015e2e4a
...
002e:RET  sqmapi.SqmSet(00000001,000000c1,0001b5e7) retval=00000000
ret=015e2e4a
...
002e:CALL sqmapi.SqmTimerStart(<unknown, check return>) ret=015e2fcd
...
002e:RET  sqmapi.SqmTimerStart(00000001,00000035) retval=00000000 ret=015e2fcd
...
002e:CALL sqmapi.SqmSetBits(<unknown, check return>) ret=015e2eaa
...
002e:RET  sqmapi.SqmSetBits(00000001,0000002e,0000000c) retval=00000000
ret=015e2eaa 
...
<lots of DRM checks/anti-debugging>
...
002e:Call advapi32.RegisterEventSourceW(00000000,01495a2c) ret=015eccbf
002e:fixme:advapi:RegisterEventSourceW ((null),L"XLive"): stub
002e:Ret  advapi32.RegisterEventSourceW() retval=cafe4242 ret=015eccbf
002e:Call
advapi32.ReportEventW(cafe4242,00000002,00000000,80000002,00000000,00000004,00000000,0033bb24,00000000)
ret=015eccff
002e:fixme:advapi:ReportEventW
(0xcafe4242,0x0002,0x0000,0x80000002,(nil),0x0004,0x00000000,0x33bb24,(nil)):
stub
002e:Ret  advapi32.ReportEventW() retval=00000001 ret=015eccff
002e:Call advapi32.DeregisterEventSource(cafe4242) ret=015ecd1f
002e:fixme:advapi:DeregisterEventSource (0xcafe4242) stub
002e:Ret  advapi32.DeregisterEventSource() retval=00000001 ret=015ecd1f 
...
002e:RET  xlive.5297(0033d330,2002af00) retval=80070057 ret=0044eb72
...
002e:Call KERNEL32.FatalAppExitA(00000000,0033cec8 "E_INVALIDARG :
XLiveInitialize(&xii)") ret=0042eb7d
002e:warn:seh:FatalAppExitA AppExit
002e:Call user32.MessageBoxA(00000000,0033cec8 "E_INVALIDARG :
XLiveInitialize(&xii)",00000000,00001000) ret=7b83bee7 
--- snip ---

This deserves its own bug.

Since the bug was initially created with "InitRpl Failed. ErrorCode: 80070507"
issue it's technically a dupe of bug 17195

$ wine --version
wine-1.7.19-70-gd6a59f7

Regards

*** This bug has been marked as a duplicate of bug 17195 ***

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