Warlock 2: the Exiled (Steam Pre-Release) Will not Run

Questions about Wine on Linux
Locked
flbiggs
Newbie
Newbie
Posts: 1
Joined: Wed Mar 26, 2014 9:43 am

Warlock 2: the Exiled (Steam Pre-Release) Will not Run

Post by flbiggs »

I am trying to get Warlock 2: the Exiled (Steam Pre-Release) to run under wine. The game uses msvcr110.dll and msvcp110.dll from VCRun2012, and wine has not implemented most of the code in those libraries. So, I installed those native DLLs from a windows xp install and ran the steam using the following command:

Code: Select all

WINEDLLOVERRIDES="msvcr110,msvcp110=n" WINEPREFIX=[$HOME]/.local/share/wineprefixes/steam/ winedbg "C:\Program Files\Steam\Steam.exe"
Steam loads and displays fine, as usual, but when I run Warlock 2, the spash screen displays and then I get a crash with the following dump:

Code: Select all

Unhandled exception: page fault on write access to 0x1c1fa000 in 32-bit code (0x0600e4a8).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:0600e4a8 ESP:057df470 EBP:057df48c EFLAGS:00010202(  R- --  I   - - - )
 EAX:00000000 EBX:12799800 ECX:00000000 EDX:00000001
 ESI:12799f80 EDI:1c1f9fb0
Stack dump:
0x057df470:  1c1f9830 0fcc0040 0000007d 067b1dd1
0x057df480:  1c1f9830 12799800 00000800 057df520
0x057df490:  067b26d0 1c1f9830 12799800 00000800
0x057df4a0:  00000000 00000000 00000000 00000000
0x057df4b0:  16a679d0 00000200 00000200 00000800
0x057df4c0:  00040000 0df08950 00000200 00000200
Backtrace:
=>0 0x0600e4a8 in msvcr110 (+0xe4a8) (0x057df48c)
  1 0x067b26d0 in gameui (+0x426cf) (0x057df520)
  2 0x067b445c in gameui (+0x4445b) (0x057df628)
  3 0x06a5d392 in gameui (+0x2ed391) (0x057df660)
  4 0x067b4d2a in gameui (+0x44d29) (0x057df674)
  5 0x06a5ccbd in gameui (+0x2eccbc) (0x057df68c)
  6 0x067b3381 in gameui (+0x43380) (0x057df6c0)
  7 0x0684f382 in gameui (+0xdf381) (0x057df714)
  8 0x067f171b in gameui (+0x8171a) (0x057df74c)
  9 0x067f1584 in gameui (+0x81583) (0x057df788)
  10 0x067f326d in gameui (+0x8326c) (0x057df7b8)
  11 0x06831bff in gameui (+0xc1bfe) (0x057df7e4)
  12 0x06831d91 in gameui (+0xc1d90) (0x057df800)
  13 0x067cb78b in gameui (+0x5b78a) (0x057df824)
  14 0x06831bff in gameui (+0xc1bfe) (0x057df850)
  15 0x06831d91 in gameui (+0xc1d90) (0x057df86c)
  16 0x067cb78b in gameui (+0x5b78a) (0x057df890)
  17 0x06831bff in gameui (+0xc1bfe) (0x057df8bc)
  18 0x06831d91 in gameui (+0xc1d90) (0x057df8d8)
  19 0x067cb78b in gameui (+0x5b78a) (0x057df8fc)
  20 0x06831bff in gameui (+0xc1bfe) (0x057df928)
  21 0x06831d91 in gameui (+0xc1d90) (0x057df944)
  22 0x067cb78b in gameui (+0x5b78a) (0x057df968)
  23 0x06831bff in gameui (+0xc1bfe) (0x057df994)
  24 0x06831d91 in gameui (+0xc1d90) (0x057df9b0)
  25 0x067cb78b in gameui (+0x5b78a) (0x057df9d4)
  26 0x06831bff in gameui (+0xc1bfe) (0x057dfa00)
  27 0x06816302 in gameui (+0xa6301) (0x057dfa80)
  28 0x06790cba in gameui (+0x20cb9) (0x057dfab8)
  29 0x004cf4b4 in game (+0xcf4b3) (0x057dfac8)
  30 0x00416431 in game (+0x16430) (0x057dfad8)
  31 0x00518048 in game (+0x118047) (0x057dfae8)
  32 0x00518048 in game (+0x118047) (0x057dfaf8)
  33 0x00518788 in game (+0x118787) (0x057dfb08)
  34 0x00409efb in game (+0x9efa) (0x057dfb3c)
  35 0x00408b44 in game (+0x8b43) (0x057dfb74)
  36 0x0051a12b in game (+0x11a12a) (0x057dfb88)
  37 0x7e95bb8a WINPROC_wrapper+0x19() in user32 (0x057dfbb8)
  38 0x7e95c25c call_window_proc+0x5b(hwnd=0x1013c, msg=0xf, wp=0, lp=0, result=0x57dfc9c, arg=0x519d30) [[$HOME]/wine-git/dlls/user32/winproc.c:244] in user32 (0x057dfc08)
  39 0x7e95eaab WINPROC_call_window+0x10a(hwnd=0x1013c, msg=0xf, wParam=0, lParam=0, result=0x57dfc9c, unicode=0, mapping=WMCHAR_MAP_DISPATCHMESSAGE) [[$HOME]/wine-git/dlls/user32/winproc.c:909] in user32 (0x057dfc58)
  40 0x7e91ec27 DispatchMessageA+0xb1(msg=<couldn't compute location>) [[$HOME]/wine-git/dlls/user32/message.c:3904] in user32 (0x057dfd68)
  41 0x7bc6bace relay_call+0x39() in ntdll (0x057dfd98)
  42 0x7e8c5cc5 in user32 (+0x5cc4) (0x057dfddc)
  43 0x00519a64 in game (+0x119a63) (0x057dfddc)
  44 0x00519842 in game (+0x119841) (0x057dfdf0)
  45 0x0051a59c in game (+0x11a59b) (0x057dfe14)
  46 0x00a1bd26 in game (+0x61bd25) (0x057dfe60)
  47 0x7b85f3ac call_process_entry+0xb() in kernel32 (0x057dfe78)
  48 0x7b86058b start_process+0x6a(peb=<couldn't compute location>) [[$HOME]/wine-git/dlls/kernel32/process.c:1097] in kernel32 (0x057dfeb8)
  49 0x7bc7d6c0 call_thread_func_wrapper+0xb() in ntdll (0x057dfed8)
  50 0x7bc805ad call_thread_func+0x7c(entry=0x7b860520, arg=0x7ffdf000, frame=0x57dffc8) [[$HOME]/wine-git/dlls/ntdll/signal_i386.c:2629] in ntdll (0x057dffa8)
  51 0x7bc7d69e call_thread_entry_point+0x11() in ntdll (0x057dffc8)
  52 0x7bc51d6e start_process+0x1d(kernel_start=0x7b860520) [[$HOME]/wine-git/dlls/ntdll/loader.c:2840] in ntdll (0x057dffe8)
  53 0xb760421d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  54 0xb76042db wine_switch_to_stack+0x2a(func=0x7bc51d50, arg=0x7b860520, stack=0x57e0000) [[$HOME]/wine-git/libs/wine/port.c:59] in libwine.so.1 (0xbf9b2208)
  55 0x7bc57911 LdrInitializeThunk+0x240(kernel_start=<couldn't compute location>, unknown2=<couldn't compute location>, unknown3=<couldn't compute location>, unknown4=<couldn't compute location>) [[$HOME]/wine-git/dlls/ntdll/loader.c:2894] in ntdll (0xbf9b2258)
  56 0x7b866dc0 __wine_kernel_init+0xbbf() [[$HOME]/wine-git/dlls/kernel32/process.c:1269] in kernel32 (0xbf9b3178)
  57 0x7bc6bace relay_call+0x39() in ntdll (0xbf9b3198)
  58 0x7b826189 in kernel32 (+0x16188) (0xbf9b3228)
  59 0x7bc58843 __wine_process_init+0x182() [[$HOME]/wine-git/dlls/ntdll/loader.c:3103] in ntdll (0xbf9b3228)
  60 0xb7601eaa wine_init+0x2b9(argc=0x3, argv=0xbf9b3764, error="", error_size=0x400) [[$HOME]/wine-git/libs/wine/loader.c:952] in libwine.so.1 (0xbf9b3288)
  61 0x7bf00d6b main+0x7a(argc=<is not available>, argv=<is not available>) [[$HOME]/wine-git/loader/main.c:237] in <wine-loader> (0xbf9b36c8)
  62 0xb742a8c5 __libc_start_main+0xf4() in libc.so.6 (0x00000000)
0x0600e4a8: movq	%mm5,0x50(%edi)
Modules:
Module	Address			Debug info	Name (181 modules)
PE	  240000-  3b9000	Deferred        fmodex
PE	  3c0000-  3f2000	Deferred        curllib
PE	  400000- 53d1000	Export          game
PE	 57e0000- 5813000	Deferred        ssleay32
PE	 5820000- 591e000	Deferred        libeay32
PE	 5920000- 593b000	Deferred        openldap
PE	 5940000- 5954000	Deferred        libsasl
PE	 5960000- 5f67000	Deferred        bmcore
PE	 5f70000- 5ff5000	Deferred        msvcp110
PE	 6000000- 60d6000	Export          msvcr110
PE	 60e0000- 65f6000	Deferred        gamelogic
PE	 6600000- 676a000	Deferred        scriptengine
PE	 6770000- 6c2f000	Export          gameui
PE	 6c30000- 6c9c000	Deferred        fmod_event
PE	 9f40000- a00c000	Deferred        steam
PE	10000000-101ff000	Deferred        d3dx9_43
PE	30000000-302c1000	Deferred        steam2
PE	38000000-38893000	Deferred        steamclient
PE	3b400000-3b41e000	Deferred        steam_api
PE	3f000000-3f0ac000	Deferred        tier0_s
PE	3f600000-3f64b000	Deferred        vstdlib_s
PE	60000000-60021000	Deferred        cserhelper
ELF	7b800000-7ba5a000	Dwarf           kernel32<elf>
  \-PE	7b810000-7ba5a000	\               kernel32
ELF	7bc00000-7bce0000	Dwarf           ntdll<elf>
  \-PE	7bc10000-7bce0000	\               ntdll
ELF	7bf00000-7bf03000	Dwarf           <wine-loader>
ELF	7d677000-7d6c2000	Deferred        libdbus-1.so.3
ELF	7d6c2000-7d6e0000	Deferred        libp11-kit.so.0
ELF	7d6e0000-7d6f2000	Deferred        libtasn1.so.3
ELF	7d6f2000-7d778000	Deferred        libgcrypt.so.11
ELF	7d778000-7d784000	Deferred        libkrb5support.so.0
ELF	7d784000-7d7b9000	Deferred        libk5crypto.so.3
ELF	7d7b9000-7d878000	Deferred        libkrb5.so.3
ELF	7d878000-7d93f000	Deferred        libgnutls.so.26
ELF	7d93f000-7d983000	Deferred        libgssapi_krb5.so.2
ELF	7d983000-7d9e3000	Deferred        libcups.so.2
ELF	7d9e3000-7db1c000	Deferred        libx11.so.6
ELF	7db7f000-7db88000	Deferred        librt.so.1
ELF	7db88000-7db9a000	Deferred        libavahi-client.so.3
ELF	7dbb9000-7dbee000	Deferred        uxtheme<elf>
  \-PE	7dbc0000-7dbee000	\               uxtheme
ELF	7dbee000-7dbf4000	Deferred        libxfixes.so.3
ELF	7dbf4000-7dc00000	Deferred        libxcursor.so.1
ELF	7dc00000-7dc10000	Deferred        libxi.so.6
ELF	7dc10000-7dc14000	Deferred        libxcomposite.so.1
ELF	7dc14000-7dc1f000	Deferred        libxrandr.so.2
ELF	7dc1f000-7dc29000	Deferred        libxrender.so.1
ELF	7dc29000-7dc2f000	Deferred        libxxf86vm.so.1
ELF	7dc2f000-7dc33000	Deferred        libxinerama.so.1
ELF	7dc33000-7dc39000	Deferred        libxdmcp.so.6
ELF	7dc39000-7dc3d000	Deferred        libxau.so.6
ELF	7dc3d000-7dc5f000	Deferred        libxcb.so.1
ELF	7dc5f000-7dc71000	Deferred        libxext.so.6
ELF	7dc71000-7dc76000	Deferred        libgpg-error.so.0
ELF	7dc76000-7dc7b000	Deferred        libkeyutils.so.1
ELF	7dc7b000-7dc80000	Deferred        libcom_err.so.2
ELF	7dc80000-7dc8e000	Deferred        libavahi-common.so.3
ELF	7dc90000-7dd23000	Deferred        winex11<elf>
  \-PE	7dca0000-7dd23000	\               winex11
ELF	7dd93000-7ddbb000	Deferred        libexpat.so.1
ELF	7ddbb000-7ddf6000	Deferred        libfontconfig.so.1
ELF	7ddf6000-7de20000	Deferred        libpng12.so.0
ELF	7de20000-7de39000	Deferred        libz.so.1
ELF	7de39000-7deda000	Deferred        libfreetype.so.6
ELF	7deda000-7df1c000	Deferred        winspool<elf>
  \-PE	7dee0000-7df1c000	\               winspool
ELF	7df1c000-7df95000	Deferred        shlwapi<elf>
  \-PE	7df30000-7df95000	\               shlwapi
ELF	7df95000-7e1ca000	Deferred        shell32<elf>
  \-PE	7dfa0000-7e1ca000	\               shell32
ELF	7e1ca000-7e2b5000	Deferred        comdlg32<elf>
  \-PE	7e1d0000-7e2b5000	\               comdlg32
ELF	7e2b5000-7e2ec000	Deferred        msvcr100<elf>
  \-PE	7e2c0000-7e2ec000	\               msvcr100
ELF	7e2ec000-7e319000	Deferred        msvcr90<elf>
  \-PE	7e2f0000-7e319000	\               msvcr90
ELF	7e319000-7e330000	Deferred        libresolv.so.2
ELF	7e34f000-7e374000	Deferred        iphlpapi<elf>
  \-PE	7e360000-7e374000	\               iphlpapi
ELF	7e374000-7e3aa000	Deferred        ws2_32<elf>
  \-PE	7e380000-7e3aa000	\               ws2_32
ELF	7e3aa000-7e3c5000	Deferred        wsock32<elf>
  \-PE	7e3b0000-7e3c5000	\               wsock32
ELF	7e3c5000-7e4cb000	Deferred        comctl32<elf>
  \-PE	7e3d0000-7e4cb000	\               comctl32
ELF	7e4cb000-7e4f6000	Deferred        msvfw32<elf>
  \-PE	7e4d0000-7e4f6000	\               msvfw32
ELF	7e4f6000-7e53c000	Deferred        avifil32<elf>
  \-PE	7e500000-7e53c000	\               avifil32
ELF	7e53c000-7e566000	Deferred        msacm32<elf>
  \-PE	7e540000-7e566000	\               msacm32
ELF	7e566000-7e61e000	Deferred        winmm<elf>
  \-PE	7e570000-7e61e000	\               winmm
ELF	7e61e000-7e6a2000	Deferred        rpcrt4<elf>
  \-PE	7e630000-7e6a2000	\               rpcrt4
ELF	7e6a2000-7e7df000	Deferred        ole32<elf>
  \-PE	7e6c0000-7e7df000	\               ole32
ELF	7e7df000-7e7fa000	Deferred        dinput8<elf>
  \-PE	7e7e0000-7e7fa000	\               dinput8
ELF	7e7fa000-7e8a6000	Deferred        msvcrt<elf>
  \-PE	7e810000-7e8a6000	\               msvcrt
ELF	7e8a6000-7ea01000	Dwarf           user32<elf>
  \-PE	7e8c0000-7ea01000	\               user32
ELF	7ea01000-7ea70000	Deferred        advapi32<elf>
  \-PE	7ea10000-7ea70000	\               advapi32
ELF	7ea70000-7eb8e000	Deferred        gdi32<elf>
  \-PE	7ea80000-7eb8e000	\               gdi32
ELF	7eb8e000-7eca8000	Deferred        opengl32<elf>
  \-PE	7ebb0000-7eca8000	\               opengl32
ELF	7eca8000-7ede9000	Deferred        wined3d<elf>
  \-PE	7ecc0000-7ede9000	\               wined3d
ELF	7ede9000-7ee26000	Deferred        d3d9<elf>
  \-PE	7edf0000-7ee26000	\               d3d9
ELF	7ee26000-7ee33000	Deferred        libnss_files.so.2
ELF	7ee33000-7ee3f000	Deferred        libnss_nis.so.2
ELF	7ee3f000-7ee58000	Deferred        libnsl.so.1
ELF	7ee5e000-7ee77000	Deferred        version<elf>
  \-PE	7ee60000-7ee77000	\               version
ELF	b25bc000-b2734000	Deferred        libvorbisenc.so.2
ELF	b49ea000-b66f0000	Deferred        libnvidia-glcore.so.304.108
ELF	b66f0000-b67cc000	Deferred        libgl.so.1
ELF	b67cc000-b6817000	Deferred        dinput<elf>
  \-PE	b67d0000-b6817000	\               dinput
ELF	b6904000-b690c000	Deferred        libogg.so.0
ELF	b690c000-b6938000	Deferred        libvorbis.so.0
ELF	b6938000-b696d000	Deferred        libflac.so.8
ELF	b696d000-b6973000	Deferred        libuuid.so.1
ELF	b6973000-b6979000	Deferred        libattr.so.1
ELF	b6979000-b697f000	Deferred        libasyncns.so.0
ELF	b697f000-b69f2000	Deferred        libsndfile.so.1
ELF	b69f2000-b69fc000	Deferred        libwrap.so.0
ELF	b69fc000-b6af8000	Deferred        libasound.so.2
ELF	b6b73000-b6b7a000	Deferred        libxtst.so.6
ELF	b6b7a000-b6b93000	Deferred        libice.so.6
ELF	b6b93000-b6c05000	Deferred        libpulsecommon-4.0.so
ELF	b6c05000-b6c55000	Deferred        libpulse.so.0
ELF	b6c5e000-b6c65000	Deferred        libnss_dns.so.2
ELF	b6c65000-b6c6d000	Deferred        libasound_module_pcm_pulse.so
ELF	b6c74000-b6c9e000	Deferred        winealsa<elf>
  \-PE	b6c80000-b6c9e000	\               winealsa
ELF	b6c9e000-b6cbf000	Deferred        mmdevapi<elf>
  \-PE	b6ca0000-b6cbf000	\               mmdevapi
ELF	b6cbf000-b6d08000	Deferred        dsound<elf>
  \-PE	b6cc0000-b6d08000	\               dsound
ELF	b6d5f000-b6d67000	Deferred        libsm.so.6
ELF	b6d67000-b6d6a000	Deferred        libx11-xcb.so.1
ELF	b6d6a000-b6d75000	Deferred        libjson-c.so.2
ELF	b6d99000-b6e00000	Deferred        dbghelp<elf>
  \-PE	b6da0000-b6e00000	\               dbghelp
ELF	b6f01000-b6f06000	Deferred        libcap.so.2
ELF	b6f06000-b6f2a000	Deferred        imm32<elf>
  \-PE	b6f10000-b6f2a000	\               imm32
ELF	b6f2a000-b6f46000	Deferred        libgcc_s.so.1
ELF	b7065000-b7079000	Deferred        libtasn1.so.6
ELF	b7079000-b707c000	Deferred        libnss_mdns4_minimal.so.2
ELF	b7087000-b7098000	Deferred        gnome-keyring-pkcs11.so
ELF	b7098000-b70be000	Deferred        p11-kit-trust.so
ELF	b70be000-b70ec000	Deferred        netapi32<elf>
  \-PE	b70c0000-b70ec000	\               netapi32
ELF	b70ec000-b711e000	Deferred        secur32<elf>
  \-PE	b70f0000-b711e000	\               secur32
ELF	b711e000-b718e000	Deferred        setupapi<elf>
  \-PE	b7130000-b718e000	\               setupapi
ELF	b718e000-b72c4000	Deferred        oleaut32<elf>
  \-PE	b71a0000-b72c4000	\               oleaut32
ELF	b72c4000-b72d7000	Deferred        psapi<elf>
  \-PE	b72d0000-b72d7000	\               psapi
ELF	b72d7000-b72f0000	Deferred        imagehlp<elf>
  \-PE	b72e0000-b72f0000	\               imagehlp
ELF	b72f0000-b73c0000	Deferred        crypt32<elf>
  \-PE	b7300000-b73c0000	\               crypt32
ELF	b73c9000-b740c000	Deferred        libm.so.6
ELF	b740c000-b7411000	Deferred        libdl.so.2
ELF	b7411000-b75c0000	Dwarf           libc.so.6
ELF	b75c1000-b75dc000	Deferred        libpthread.so.0
ELF	b75ec000-b75f0000	Deferred        libnvidia-tls.so.304.108
ELF	b75f2000-b75fb000	Deferred        libnss_compat.so.2
ELF	b75fb000-b77b0000	Dwarf           libwine.so.1
ELF	b77b2000-b77d3000	Deferred        ld-linux.so.2
ELF	b77d3000-b77d4000	Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	0000001d    0
	0000001c    0
	00000014    0
	00000010    0
	0000000f    0
00000012 winedevice.exe
	0000001b    0
	00000018    0
	00000017    0
	00000013    0
00000019 plugplay.exe
	0000001f    0
	0000001e    0
	0000001a    0
00000020 explorer.exe
	00000021    0
00000022 Steam.exe
	0000005b    2
	0000004a    0
	00000048    0
	0000000d    0
	0000000b    0
	00000047    0
	00000044    0
	00000043    0
	00000042    0
	00000041    0
	00000040    0
	0000003e    0
	0000003d    0
	0000003c    0
	0000003b    0
	0000003a    0
	00000038    0
	00000037    2
	00000035    0
	00000034    0
	00000033    0
	00000032    0
	00000031    0
	00000030    0
	0000002f    0
	0000002e    0
	0000002d    0
	0000002c    0
	0000002b    0
	0000002a    0
	00000029    0
	00000028    0
	00000026    0
	00000023    0
00000053 (D) C:\Program Files\Steam\SteamApps\common\Warlock 2\Game.exe
	0000005a    0
	00000059    0
	00000058    0
	00000057  -15
	00000054    0 <==
System information:
    Wine build: wine-1.7.15
    Platform: i386
    Host system: Linux
    Host version: 3.10-2-686-pae
That suggests to me that it is choking on a call to msvcr110.dll, but I am not able to find and diagnose the specific call. I tried:
1. Using the +relay flag, but the output is numerous GB in size, and I cannot even begin to find what call generated the crash. Needle in a haystack is an understatement...
2. Use the +snoop flag, but that seems to crash steam much earlier in the process. I think it would help if I could figure out how to turn the +snoop flag on (and log output) from the time the EntryPoint call of msvcr110.dll, but my attempts to do that have fallen short.

I would be very grateful for debugging suggestions.
User avatar
dimesio
Moderator
Moderator
Posts: 13367
Joined: Tue Mar 25, 2008 10:30 pm

Re: Warlock 2: the Exiled (Steam Pre-Release) Will not Run

Post by dimesio »

I assume you were the one who filed http://bugs.winehq.org/show_bug.cgi?id=35874. My advice is to attach a log for the crash with builtin msvcr110 to the bug report, and make the bug about the game needing msvcr110.dll.?name@type_info@@QBEPBDPAU__type_info_node@@@Z. Bugs for problems with native dlls are not valid Wine bugs.
Vansteen
Newbie
Newbie
Posts: 1
Joined: Sun Mar 30, 2014 4:53 am

Re: Warlock 2: the Exiled (Steam Pre-Release) Will not Run

Post by Vansteen »

Same issue here.

In fact Warlock 2 tries to run the Visual C++ 2012 redist install before launching (which doesn't run on wine atm because of WiX installer).

This redist should update both msvcr110.dll and msvcp110.dll (and maybe others).

You can bypass the install by removing or leaving blank the installscript.vdf file but then you'll probably miss the right dlls.

I'll try to copy them from a Windows install I have and see if it works.

Keep you in touch.
Locked