protonscr

Attack on Titan 2 - A.O.T.2 - 進撃の巨人2

protonopen appid 601050Game compatibility - UnofficialXAudio2
ValveSoftware/Proton#2830 · opened 2019-06-23 by zelikos · updated 2020-06-28 · 5 comments · github · game page · search this game
2 matching comments, n / p to jump
Zzelikos 2019-06-23 github

Compatibility Report

  • Name of the game with compatibility issues: Attack on Titan 2 - A.O.T.2 - 進撃の巨人2
  • Steam AppID of the game: 601050

System Information

  • GPU: RX 570
  • Driver/LLVM version: Mesa 19.1.0/8.0.0
  • Kernel version: 4.18.0-21-generic
  • Link to full system information report as Gist
  • Proton version: 4.2-7

I confirm:

  • [X] that I haven't found an existing compatibility report for this game.
  • [X] that I have checked whether there are updates for my system available.

steam-601050.log

Symptoms

Game crashes after a "This game uses autosaves..." popup, before even getting to the main menu.

Reproduction

Launch the game through Steam.

Kkisak-valve maintainer 2019-06-23 github

err:ole:CoGetClassObject no class object {187463a0-5bb7-11d3-acbe-0080c75e246e} could be created for context 0x3 in the log hints this game is trying to use WMA (#1464), and it looks like it's with quartz.

Qqsniyg 2020-03-15 github

Using the qasf verb from winetricks allows that error to be bypassed, but it still crashes regardless, this time with:

...
620269.337:0030:0031:err:ole:StdMarshalImpl_MarshalInterface Format is: "Failed to create ifstub, hres=0x%x\n"
Failed to create ifstub, hres=0x80004002
620269.337:0030:0031:trace:msvcrt:pf_printf_a Format is: "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}"
620269.337:0030:0031:err:ole:CoMarshalInterface Format is: "Failed to marshal the interface %s, %x\n"
Failed to marshal the interface {ea1ea136-19df-11d7-a6d2-00065b84435c}, 80004002
620269.337:0030:0031:Call KERNEL32.HeapFree(00010000,00000000,5f127730) ret=7f45703bb65b
620269.337:0030:0031:Ret  KERNEL32.HeapFree() retval=00000001 ret=7f45703bb65b
620269.337:0030:0031:trace:ole:CoMarshalInterface Format is: "completed with hr 0x%08x\n"
completed with hr 0x80004002
620269.337:0030:0031:Ret  ole32.CoMarshalInterface() retval=80004002 ret=7f45702fc38d
620269.337:0030:0031:trace:ole:RpcStream_Release Format is: "size=%d\n"
size=0
620269.337:0030:0031:Call KERNEL32.HeapFree(00010000,00000000,5f11f6d0) ret=7f45702fbd3a
620269.337:0030:0031:Ret  KERNEL32.HeapFree() retval=00000001 ret=7f45702fbd3a
620269.337:0030:0031:Call KERNEL32.RaiseException(80004002,00000000,00000000,00000000) ret=7f4570321239
620269.337:0030:0031:trace:seh:raise_exception code=80004002 flags=0 addr=0x7b02e383 ip=7b02e383 tid=0031
620269.337:0030:0031:trace:seh:raise_exception  rax=000000007b02e330 rbx=000000000022f618 rcx=000000000022f220 rdx=0000000000000000
620269.337:0030:0031:trace:seh:raise_exception  rsi=000000000022f360 rdi=000000000022f2f0 rbp=000000000022f2c0 rsp=000000000022f200
620269.337:0030:0031:trace:seh:raise_exception   r8=0000000000000000  r9=0000000000000000 r10=000000000022eb0c r11=0000000000000000
620269.337:0030:0031:trace:seh:raise_exception  r12=0000000141b45968 r13=0000000080004002 r14=0000000141e6ddf0 r15=0000000000000001
...

As the uuid suggests, I tried using msctf, but it didn't do any difference. The same error happens regardless of whether devenum or quartz was added through winetricks.


Nevermind, that wasn't the issue. It actually fails here:

00fa:trace:file:nt_to_unix_file_name_internal L"\\??\\C:\\windows\\system32\\wmvcore.dll" -> "/home/user/.wine/dosdevices/c:/windows/system32/wmvcore.dll"
00fa:trace:module:map_image mapped PE file at 0x62a30000-0x62c7b000
00fa:trace:module:map_image mapping section .text at 0x62a31000 off 400 size 186000 virt 185f27 flags 60000020
00fa:trace:module:map_image mapping section .rdata at 0x62bb7000 off 186400 size 53c00 virt 53ae8 flags 40000040
00fa:trace:module:map_image clearing 0x62c0ac00 - 0x62c0b000
00fa:trace:module:map_image mapping section .data at 0x62c0b000 off 1da000 size 7400 virt cd04 flags c0000040
00fa:trace:module:map_image clearing 0x62c12400 - 0x62c13000
00fa:trace:module:map_image mapping section .pdata at 0x62c18000 off 1e1400 size f600 virt f4a4 flags 40000040
00fa:trace:module:map_image clearing 0x62c27600 - 0x62c28000
00fa:trace:module:map_image mapping section .didat at 0x62c28000 off 1f0a00 size 400 virt 3b0 flags c0000040
00fa:trace:module:map_image clearing 0x62c28400 - 0x62c29000
00fa:trace:module:map_image mapping section .rsrc at 0x62c29000 off 1f0e00 size 4da00 virt 4d950 flags 40000040
00fa:trace:module:map_image clearing 0x62c76a00 - 0x62c77000
00fa:trace:module:map_image mapping section .reloc at 0x62c77000 off 23e800 size 3e00 virt 3c18 flags 42000040
00fa:trace:module:map_image clearing 0x62c7ae00 - 0x62c7b000
00fa:trace:module:LdrGetDllHandle L"wmvcore.dll" -> (nil) (load path L"Z:\\home\\user\\Games\\Attack on Titan 2;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\WindowsPowershell\\v1.0")
00fa:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1411743ef ip=1411743ef tid=00fa
00fa:trace:seh:raise_exception  info[0]=0000000000000000
00fa:trace:seh:raise_exception  info[1]=0000000000000010

After copying wmvcore.dll, wmasf.dll, and various media foundations libraries (especially mfperfhelper.dll) from my windows 10 installation, I got a bit further:

010f:trace:module:get_load_order looking for L"C:\\windows\\system32\\devenum.dll"
010f:trace:module:get_load_order_value got standard key n for L"*devenum"
010f:trace:module:load_dll L"\\??\\C:\\windows\\system32\\devenum.dll" is a fake Wine dll
010f:warn:module:load_dll Failed to load module L"C:\\windows\\system32\\devenum.dll"; status=c0000135
010f:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\devenum.dll"
010f:warn:ole:CoGetClassObject class {4315d437-5b8c-11d0-bd3b-00a0c911ce86} not registered in-proc handler
010f:trace:ole:apartment_release cafe: after = 7
010f:err:ole:CoGetClassObject no class object {4315d437-5b8c-11d0-bd3b-00a0c911ce86} could be created for context 0x3
0151:trace:ole:CoUninitialize ()
0151:trace:ole:apartment_release cafe: after = 6
0151:trace:module:LdrShutdownThread ()
...
010f:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1411743ef ip=1411743ef tid=010f
010f:trace:seh:raise_exception  info[0]=0000000000000000
010f:trace:seh:raise_exception  info[1]=0000000000000010

After copying devenum.dll from my windows 10 installation (note that winetricks's devenum verb doesn't work) and setting it to native, I got further, but it still crashes.


I should note that when wmvcore is builtin, these fixme's occur before the crash:

00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({d2827540-3ee7-432c-b14c-dc17f085d3b3} 000000006F8CAEE0)
00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({befe7a75-9f1d-4075-b9d9-a3c37bda49a0} 000000006F8CAEE8)
00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8} 000000006F8CAEF0)
00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({5c938aeb-6378-479e-bfd5-eafba63dc6e9} 000000006F8CAF10)
00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({cee3def2-3808-414d-be66-fafd472210bc} 000000006F8CAF18)
00dc:fixme:wmvcore:WMReader_QueryInterface (0000000060E41ED0)->({7af7d5ed-4ef9-48da-a4b6-8ea7eb38f5cc} 000000006167EA30)
00dc:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1411743ef ip=1411743ef tid=00dc

By looking through https://docs.microsoft.com/en-us/windows/win32/wmformat/interface-identifiers, we can see the following:

d2827540-3ee7-432c-b14c-dc17f085d3b3 = IWMDRMReader
befe7a75-9f1d-4075-b9d9-a3c37bda49a0 = IWMDRMReader2
e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8 = ??? (according to include/wmsdkidl.idl, it's IWMDRMReader3)
5c938aeb-6378-479e-bfd5-eafba63dc6e9 = ???
cee3def2-3808-414d-be66-fafd472210bc = ??? (according to mingw-w64-headers/include/wmcodecdsp.idl, it's IWMValidate)
7af7d5ed-4ef9-48da-a4b6-8ea7eb38f5cc = ???

I've gotten farther!

By using winetricks qasf, copying wmvcore, mfperfhelper, and various other media foundation libraries from my windows installation, it crashes here:

0103:trace:file:CreateFileW L"FILE/MOVIE/NA/LOGO_KT.wmv" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE FILE_SHARE_DELETE  creation 3 attributes 0x8000080
0103:trace:file:RtlDosPathNameToNtPathName_U_WithStatus (L"FILE/MOVIE/NA/LOGO_KT.wmv",0x63bff830,(nil),(nil))
0103:trace:file:RtlGetFullPathName_U (L"FILE/MOVIE/NA/LOGO_KT.wmv" 520 0x63bff440 (nil))
0103:trace:file:nt_to_unix_file_name_internal L"\\??\\Z:\\home\\user\\Games\\Attack on Titan 2\\FILE\\MOVIE\\NA\\LOGO_KT.wmv" -> "/home/user/.wine-aot2/dosdevices/z:/home/user/Games/Attack on Titan 2/FILE/MOVIE/NA/LOGO_KT.wmv"
0103:trace:file:CreateFileW returning 00000000000006F8
0103:trace:seh:raise_exception code=80000100 flags=1 addr=0x7b02e528 ip=7b02e528 tid=0103
0103:trace:seh:raise_exception  info[0]=00007f8bf0cd200a
0103:trace:seh:raise_exception  info[1]=00007f8bf0cd2066
wine: Call from 0x7b02e528 to unimplemented function wmasf.dll.ASFFindHeaderObject, aborting

After copying over wmasf and registering it, I got:

00d0:trace:quartz:avi_decompressor_sink_connect Unable to find a suitable VFW decompressor
00d0:trace:quartz:avi_decompressor_sink_connect Connection refused
00d0:warn:quartz:FilterGraph2_Render Unable to connect L"AVI Decompressor" to renderer (80040207)
00d0:trace:quartz:FilterGraph2_RemoveFilter (0000000060636E60/0000000060636E68)->(00000000701520F0)
00d0:trace:quartz:FilterGraph2_RemoveFilter Removing filter L"AVI Decompressor".
00d0:trace:quartz:FilterGraph2_RemoveFilter Disconnect 2: 00000001
00d0:trace:quartz:FilterGraph2_RemoveFilter Disconnect 2: 00000001
00d0:trace:quartz:seeking_passthrough_Release 0000000070159E90 decreasing refcount to 0.
00d0:trace:quartz:EnumMonikerImpl_Next (0000000060600050)->(1, 0000000060DFE998, 0000000060DFE974)
00d0:trace:quartz:EnumMonikerImpl_Next -- fetched 0
00d0:trace:quartz:EnumMonikerImpl_Release (0000000060600050)->() Release from 1
00d0:trace:quartz:FilterGraphInner_Release (0000000060636E60)->(): new ref = 2
00d0:trace:quartz:FilterGraph2_RenderFile Filters in chain:
00d0:trace:quartz:FilterGraph2_RenderFile - L"Reader".
00d0:trace:quartz:FilterGraph2_RenderFile - L"SOURCE".
00d0:trace:quartz:FilterGraph2_RenderFile - L"VideoTextureRenderer".
00d0:trace:quartz:FilterGraph2_RenderFile --> 80040218
00d0:trace:quartz:BasicAudio_Release (0000000060636E60/0000000060636E80)->()
00d0:trace:quartz:FilterGraphInner_Release (0000000060636E60)->(): new ref = 1
00d0:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1411743ef ip=1411743ef tid=00d0
00d0:trace:seh:raise_exception  info[0]=0000000000000000
00d0:trace:seh:raise_exception  info[1]=0000000000000010
00d0:trace:seh:raise_exception  rax=0000000000000000 rbx=0000000037ccf718 rcx=0000000000000000 rdx=0000000000000001
00d0:trace:seh:raise_exception  rsi=0000000000000000 rdi=0000000037cce320 rbp=000000003e4e1a98 rsp=0000000060dfecc0
00d0:trace:seh:raise_exception   r8=0000000000000001  r9=00000000fffffffd r10=0000000000000000 r11=0000000000000000
00d0:trace:seh:raise_exception  r12=0000000141e6df50 r13=0000000000000000 r14=000000014210c780 r15=0000000000000000

The first file it tries to load is FILE/MOVIE/NA/LOGO_KT.wmv, which when run through ffprobe, returns:

ffprobe version n4.2.2 Copyright (c) 2007-2019 the FFmpeg developers
  built with gcc 9.2.1 (Arch Linux 9.2.1+20200130-2) 20200130
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[wmv3 @ 0x558874b5f7c0] Extra data: 8 bits left, value: 20
Input #0, asf, from 'FILE/MOVIE/NA/LOGO_KT.wmv':
  Metadata:
    WM/ToolName     : TMPGEnc Video Mastering Works 6 Version. 6.2.6.33
    WMFSDKVersion   : 12.0.15063.608
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    DeviceConformanceTemplate: MP@HL
  Duration: 00:00:03.05, start: 0.000000, bitrate: 1912 kb/s
    Stream #0:0(jpn): Audio: wmapro (b[1][0][0] / 0x0162), 48000 Hz, 5.1, fltp, 384 kb/s
    Stream #0:1(jpn): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 1920x1080, 10000 kb/s, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc
[wmv3 @ 0x558874b923c0] Extra data: 8 bits left, value: 20

It would appear like as if winetricks wmv9vcm would fix it, however, it only installs a 32-bit dll. I wasn't able to find a 64-bit dll anywhere either. iccvideo is also 32-bit only, leading me to believe that windows can somehow use 32-bit drivers for 64-bit applications.

Qqsniyg 2020-03-18 github

I finally got it working! Here are the steps:

  • Create a 64-bit wine prefix
  • winetricks qasf
  • Copy wmvcore.dll, wmasf.dll and mfperfhelper.dll, as well as the media foundation libraries from a windows 10 installation to your wine prefix/windows/system32, and set them all to native under winecfg
  • Apply this patch I wrote to wine, autoreconf, build it, and either use that version of wine, or copy dlls/nullvidc/nullvidc.dll to wineprefix/windows/system32
  • Under regedit, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Drivers32, create a new string value, name is vidc.WMV3 and value is nullvidc.dll
  • winetricks xact_x64 (faudio currently crashes)
  • Optionally replace all wmv's under FILE to be MOVIE/LOGO_KT.wmv, as otherwise you'll be staring at a blank screen for however long it takes for the video to finish
  • winetricks d3dcompiler_43 and install DXVK (optional, but improves performance)
  • Either use vanilla wine, or use wine-staging without the raw input patches. There's still significant input issues, but you'll at least be able to move your mouse. Probably better to use a controller though.

It's not a good experience though. No cutscenes, performance is really bad, and it's nearly unplayable with a mouse and keyboard.

CCygnusTerminal 2020-04-13 github

Tried the game with Proton GE with the media foundation fixes but no dice. Gonna have to wait on this one it seems.

PpapuSpartan 2020-06-28 github

Using the "no video" option in the game's launcher will bypass the issue and allow the game to launch(though I know not the optimal solution). I'm currently trying to get a proper apitrace looked at because even after getting the game to run I get noticeably worse performance in comparison to native windows. (60 fps all max windows vs. choppy ~35 on all low on linux)

DLLs

Error codes