Proton icon indicating copy to clipboard operation
Proton copied to clipboard

Age of Empires II: Definitive Edition (813780)

Open ThaChillera opened this issue 6 years ago • 638 comments
trafficstars

Compatibility Report

  • Name of the game with compatibility issues: Age of Empires II: Definitive Edition
  • Steam AppID of the game: 813780

System Information

  • GPU: GTX 680
  • Driver/LLVM version: nvidia 435.21
  • Kernel version: 5.3.8-arch1-1
  • Link to full system information report as Gist:
  • Proton version: 4.11-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.

Proton Log

Symptoms

When it starts, I get a splash screen and a popup: Title: "Wine C++ Runtime Library". Text: "A Program: Z F Press OK to exit program, or Cancel to start the Wine debugger."

Reproduction

Just boot the game normally

ThaChillera avatar Nov 04 '19 16:11 ThaChillera

Possibly due to missing SpVoice object. From your log:

2901.866:0039:003a:err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17
2909.925:0039:003a:trace:seh:NtRaiseException code=80000003 flags=0 addr=0x7bcaf638 ip=7bcaf639 tid=003a

aeikum avatar Nov 04 '19 20:11 aeikum

How can I solve this?

ThaChillera avatar Nov 04 '19 20:11 ThaChillera

If you want to get into Wine development, implement the SpVoice class and whatever interfaces the app requests (probably ISpeechVoice, possibly more) in dlls/sapi, and see if that is enough to get the game running or if it needs more work past that.

aeikum avatar Nov 04 '19 20:11 aeikum

I have tried installing several versions of VC Runtime, both using Winetricks and with normal prefix installation and none of them worked. I also tried using DotNet but I haven't got past that same error you're telling us @ThaChillera

I tried installing SpVoice dll with winetricks today but still nothing. @aeikum I tried sweeping all the error's on Chillera's log and on mine but still nothing.

In case it helps in any way:

https://gist.github.com/Marroja/2c9b6a118c7d6b19359839b92a3fd7c3

Marroja avatar Nov 09 '19 05:11 Marroja

At the moment I understand the main problem is regarding an unwinding problem. I'm not sure how to deal with it.

Marroja avatar Nov 09 '19 08:11 Marroja

Seeing this issue on a new install of the officially released game.

ozyman42 avatar Nov 15 '19 05:11 ozyman42

I think that the problem is related also to https://github.com/ValveSoftware/Proton/issues/2995 so probably in this other ticket there are info to fix this one.

Mte90 avatar Nov 15 '19 16:11 Mte90

AFAIK this is actually a problem related to sapi.dll not existing?

krisives avatar Nov 15 '19 17:11 krisives

As a workaround, how hard would it be to kill the speech recognition functionality? I don't think sapi would be needed for anything other than speech recognition, right?

busyboredom avatar Nov 15 '19 21:11 busyboredom

Has anyone tried this yet?

https://www.reddit.com/r/aoe2/comments/dwuplr/how_to_run_age_of_empires_2_definitive_edition_on/

nawaik avatar Nov 15 '19 23:11 nawaik

I am trying this but with the last proton (waiting to download the game). Anyway this tutorial suggest to use DXVK 1.4.4 or newer and Proton 4.11-8 (https://github.com/ValveSoftware/Proton/releases/tag/proton-4.11-8) already include them.

So the big difference with proton is wine staging that they are at wine 4.20 (https://dl.winehq.org/wine/source/4.x/) and to execute the 2 commands of the tutorial to set win10 and reinstall vcrun2017.

So my doubt are more about proton that is using an old version of wine compared to this tutorial.

Mte90 avatar Nov 16 '19 13:11 Mte90

Following the instructions from reddit: https://i.imgur.com/zdleeea.png Using Wine-Staging 4.20.

mozo78 avatar Nov 16 '19 14:11 mozo78

I installed the game in steam with proton 4.11-8 and get the already known error. Using the reddit thread (after that installation in steam with all the dependence) I am trying with executing protontricks 813780 win10 vcrun2017. This didn't worked :-(

Mte90 avatar Nov 16 '19 15:11 Mte90

After protontricks 813780 speechsdk vcrun2017 win10 I am getting the same error but now the library sapi.dll is avalaible, I am trying to understand if it isn't registered.

"/home/myuser/.steam/steam/steamapps/common/Proton 4.11/dist/bin/wine" regsvr32 sapi.dll Says that is registered rightly.

Mte90 avatar Nov 16 '19 16:11 Mte90

Last insights about sapi.dll I don't think that is the problem because is a common issue in wine and everything worked (I searched on mailing lists and so on). So I think that is a fake positive, looking at my debug:

10919.688:002f:0030:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
10919.689:002f:0030:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
10919.689:002f:0030:err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered
10919.690:002f:0030:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
10919.690:002f:0030:err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17
10956.011:002f:0030:trace:seh:MSVCRT_raise (22)
Setting breakpad minidump AppID = 813780
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198055726040 [API loaded no]
10957.051:0016:001a:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\drivers\\winebus.sys" : builtin
10957.051:0016:001a:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\setupapi.dll" : builtin
pid 64012 != 64011, skipping destruction (fork without exec?)

The real error is at MSVCRT_raise but doesn't include any hints about the error. I am not an expert of wine/proton but I finished all my ideas.

Mte90 avatar Nov 16 '19 16:11 Mte90

Uhm I said to quickly, enabling D9VK (PROTON_USE_D9VK=1) I got an error finally:

11342.603:002f:0030:trace:seh:MSVCRT_raise (22)
Unable to read VR Path Registry from C:\users\steamuser\Local Settings\Application Data\openvr\openvrpaths.vrpath
Setting breakpad minidump AppID = 813780
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198055726040 [API loaded no]
11343.640:0016:001a:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\drivers\\winebus.sys" : builtin
11343.640:0016:001a:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\setupapi.dll" : builtin
pid 64461 != 64460, skipping destruction (fork without exec?)

Mte90 avatar Nov 16 '19 16:11 Mte90

Hello there, I am the creator of the tutorial and looking at your and mine output I discovered something which might be helpful for you. I also get this part: 010d:fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0x13f006fd0, 0x13f0595c0, 0x13f0595b8) stub. 010d:fixme:nls:get_dummy_preferred_ui_language (0x8 0x22e1cc 0x22e630 0x22e1c8) returning a dummy value (current locale) 010d:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported 010d:err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17

The error Message where you can click on ignore appears right now, when clicked on ignore it goes on like this: 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000003-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000003-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000019-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_BeginList 0x5c3a678 (0x993fbcc {92ca9dcd-5622-4bba-a805-5e9f541bd8c9} 0x993fbd8): stub ...

So with wine-staging 4.19 I don't get the MSVCRT_raise error. In mozo78s output (wine-staging 4.20) this error is also missing there just isn't an ignore option for him (for some reason).

DXVK is needed to display buildings and units otherwise they are invisible it shouldn't have to do with this bug.

GSchuemann avatar Nov 16 '19 18:11 GSchuemann

Here's the log with Wine-Staging 4.19: https://pastebin.com/DWdmJtZh

mozo78 avatar Nov 16 '19 18:11 mozo78

Hello there, I am the creator of the tutorial and looking at your and mine output I discovered something which might be helpful for you. I also get this part: 010d:fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0x13f006fd0, 0x13f0595c0, 0x13f0595b8) stub. 010d:fixme:nls:get_dummy_preferred_ui_language (0x8 0x22e1cc 0x22e630 0x22e1c8) returning a dummy value (current locale) 010d:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered 010d:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported 010d:err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17

The error Message where you can click on ignore appears right now, when clicked on ignore it goes on like this: 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000003-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000003-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_QueryInterface not implemented for {00000019-0000-0000-c000-000000000046} (unknown) 0142:fixme:shell:CustomDestinationList_BeginList 0x5c3a678 (0x993fbcc {92ca9dcd-5622-4bba-a805-5e9f541bd8c9} 0x993fbd8): stub ...

So with wine-staging 4.19 I don't get the MSVCRT_raise error. In mozo78s output (wine-staging 4.20) this error is also missing there just isn't an ignore option for him (for some reason).

DXVK is needed to display buildings and units otherwise they are invisible it shouldn't have to do with this bug.

Have you tried to run winetricks -q vcrun2015 When using wine 4.19 staging?

kubapet avatar Nov 16 '19 21:11 kubapet

Yes I did. It doesn't change nothing :( Here's the log with vcrun2015 and Wine-Staging 4.19: https://pastebin.com/Xk04auTH

mozo78 avatar Nov 16 '19 21:11 mozo78

I was actually asking Georg, but nevermind, I GOT IT WORKING on pure wine 4.19 staging installation, I even though I got the "message where you can click ignore" (the same one as you reported you got on 4.20 https://i.imgur.com/zdleeea.png.. but as georg said on 4.19 staging you can click on ignore for some reason)..

kubapet avatar Nov 16 '19 21:11 kubapet

Great that it also worked on pure (wanted to test this in the next few days, but other people aren't as lazy as me ;))

The missing buildings are fixed with DXVK.

Interesting that the ignore button is missing in 4.20

GSchuemann avatar Nov 16 '19 22:11 GSchuemann

:) So where did you manage to run it before? or how did you know that DXVK is needed for buildings and units?

kubapet avatar Nov 16 '19 22:11 kubapet

:) So where did you manage to run it before? or how did you know that DXVK is needed for buildings and units?

I saw the game needed DirectX11 (looked at Systemrequirements) and I knew that it isn't yet fully implemented in wine, so I tried DXVK, which just worked.

I reinstalled vcrun, because I thought that a reinstalled vcrun would help. I hadn't the idea to click on ignore before I did that so I was unsure if it really runs on pure.

Have you also changed the Windowsversion or does it also run with "Windows 7" ?

GSchuemann avatar Nov 16 '19 22:11 GSchuemann

:) So where did you manage to run it before? or how did you know that DXVK is needed for buildings and units?

I saw the game needed DirectX11 (looked at Systemrequirements) and I knew that it isn't yet fully implemented in wine, so I tried DXVK, which just worked.

I reinstalled vcrun, because I thought that a reinstalled vcrun would help. I hadn't the idea to click on ignore before I did that so I was unsure if it really runs on pure.

Have you also changed the Windowsversion or does it also run with "Windows 7" ?

I am not sure we mean the same thing by "pure" .. I still ment the staging version, just not proton.. And yes, it runs with Windows 7 as well.. But now I have installed the DXVK and it doesn't run anymore.. The game just doesn't pop up, only cursor changes and then nothing is rendered and mouse is not moving (looks like the screen is controllerd by the app but nothing is rendered) and I can get out of it only after I press alt+tab .. I am probably still missing some DX dependencies ?

EDIT: OK, now it runs, and buildings and units are rendered properly.. I just wasn't patient enough :)

kubapet avatar Nov 16 '19 22:11 kubapet

Has anybody tried online functionality?

EnriqueWood avatar Nov 16 '19 23:11 EnriqueWood

I was actually asking Georg, but nevermind, I GOT IT WORKING on pure wine 4.19 staging installation, I even though I got the "message where you can click ignore" (the same one as you reported you got on 4.20 https://i.imgur.com/zdleeea.png.. but as georg said on 4.19 staging you can click on ignore for some reason)..

What do you mean by pure? Without vcrun2017? It doesn't run both with or without vcrun 2017 installed and I have no "Ignore" button with Wine-Staging 4.19...

mozo78 avatar Nov 16 '19 23:11 mozo78

Has anybody tried online functionality?

Spectating works flawlessly.

Haven't tried out a real match yet, but I am expecting it to work.

We mean by pure that no changes were made to the prefix.

Maybe the missing button is distribution related, I use ubuntu 19.10, which one do you use?

GSchuemann avatar Nov 16 '19 23:11 GSchuemann

The reason people aren't getting the "Ignore" button on the assertion error is that when vcrun2017 is being installed, for some reason ucrtbase.dll isn't being installed properly.

Copying over a 64-bit ucrtbase.dll to c:\windows\system32 is sufficient to get the "Ignore" button to work, after which the game works fine in Proton.

Ideally, of course, either wine would support the SpApi speech API stuff properly, or the game would handle it not loading better, but this works for now.

sulix avatar Nov 16 '19 23:11 sulix

Maybe the missing button is distribution related, I use ubuntu 19.10, which one do you use?

Not the guy you replied to, but I am using Manjaro 18.1.3 KDE and I also am not getting an "ignore" button on the error.

Edit: doing the above fix makes the ignore button appear for me, but the game is hanging after that when using Proton

Edit 2: can get in game now

Jyndigo avatar Nov 16 '19 23:11 Jyndigo