protonscr

Age Of Empire 3: Complete Collection

protonopen appid 105450Game compatibility - Unofficial.NET
ValveSoftware/Proton#17 · opened 2018-08-22 by Loooooouuuuu · updated 2024-10-18 · 86 comments · github · game page · search this game
1 matching comments, n / p to jump
LLoooooouuuuu 2018-08-22 github

Hello !

I'm trying to install AOE 3 Complete Collection on Steam. The installation goes well, but I get this when I start the game:

image

When I type my CD key, I cannot type the first 5 characters. I'm limited to only 4.

I think it's related to this : https://bugs.winehq.org/show_bug.cgi?id=20456. In this, "alexandre.rozier" said

This problem appears when one has not installed the correct windows fonts. By installing with winetricks the "all fonts" package, this problem goes away and one can enter 5 chars into each field.

How can I do that using Proton ?

Thanks a lot. This project is amazing

?ghost 2018-08-22 github

You can do that like so:

WINEPREFIX=/path/to/steam/steamapps/compatdata/APPID/pfx/ winetricks allfonts

Just replace the path & appid

I've made an issue about winetricks stuff over here: #54

Kkisak-valve maintainer 2018-08-24 github

Age of Empires III: Complete Collection - Error loading the PID generator DLL

Issue transferred from https://github.com/ValveSoftware/Proton/issues/369.
@Holzhaus posted on 2018-08-24T09:08:39:

After installing and starting Age of Empires III: Complete Collection, the Product Key window pops up. After entering my key, and clicking OK, the following error message pops up:

Error loading the PID generator DLL. The DLL could not be found! Please make sure the file is available int he installation directory and try again.

It's not possible to progress further.

EDIT: Logfile and system info can be found here: https://gist.github.com/Holzhaus/e1a5e7ad8b59d1b5a698a18042c109a8

EDIT 2: I'm using the flatpak installation of steam.


@arzardk commented on 2018-08-24T09:18:15

You need to attach game log file and your system specs via github gist to this issue. You can obtain log file if you running Proton with user settings, which you can find in your /home directory. Path to this folder is something like this /home/arzardk/.steam/steam/steamapps/common/Proton 3.7. In this folder you find file called user_settings.example.py or something similar. Just rename it to user_settings.py and run your game again. You can find log file in your /home directory after that.


@Holzhaus commented on 2018-08-24T09:39:41

Thanks for the info. I added the gist link to my original post.


@Holzhaus commented on 2018-08-24T09:46:10

PidGen.dll does exist:

$ cd ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/Age Of Empires 3/bin
$ ls -l | grep -i pid
-rwxr-xr-x  1 user user    95248 22. Aug 14:51 mgspid.dll
-rwxr-xr-x  1 user user    92944 22. Aug 14:52 mgspidx.dll
-rwxr-xr-x  1 user user    82968 22. Aug 14:52 mgspidy.dll
-rwxr-xr-x  1 user user    48656 22. Aug 14:52 PidGen.dll
-rwxr-xr-x  1 user user    31040 22. Aug 14:50 PidGenX.dll
-rwxr-xr-x  1 user user    30912 22. Aug 14:49 pidgeny.dll

I already tried symlinking PidGen.dll to PIDGen.dll (filename from the logs), but that didn't help.


@arzardk commented on 2018-08-24T09:56:03

I have problems with flatpak version of Steam, like games with Proton unable to running at all. Have you tried running this game on default Steam?


@Holzhaus commented on 2018-08-24T10:15:39

No, but the issue that flatpak was unable to start any games with Proton should now be fixed: flathub/com.valvesoftware.Steam#152
And I can start games other than AOE3 using flatpak'ed steam, e.g. Fallout: New Vegas or Stronghold Crusader 2.

Rryao 2018-08-25 github

A comment on winehq says:

All the problems can be solved with the following commands:

winetricks --force corefonts dsound l3codecx quartz
winetricks -q mfc42
winetricks d3dx9 dotnet20

Note that some of those winetricks (dotnet20) are requiring a 32-bits WINEPREFIX.

https://appdb.winehq.org/objectManager.php?sClass=version&iId=29559

Unfortunately, the prefix is 64-bit and dotnet20 requires 32-bit for some strange reason (why doesn't native Windows break the game over this?), so it isn't possible to make this work. If someone could figure out the .NET 2.0 issue, it should be possible to make the game play.

Rryao 2018-08-25 github

The winetricks issue is here:

https://github.com/Winetricks/winetricks/issues/222

If someone gets that working, I imagine it would be possible to play the game using the files the Steam client installs.

Rryao 2018-08-25 github

I got it to work. Here are the commands:

# First try starting it from Steam. Then exit as soon as the product ID key is requested.

# Download the .NET framework 2.0
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

# Install the .NET Framework 2.0
/tmp/proton_run $HOME/NetFx64.exe

# Install a bunch of other stuff.
env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.7/dist/bin/wine winetricks -q winxp corefonts dsound l3codecx quartz mfc42

# Start it from Steam and enjoy

This was inspired by Lutris' script:

https://lutris.net/games/install/1914/view

Rryao 2018-08-25 github

It turns out that if you have corefonts installed through your distribution's package manager, you don't need to install them via winetricks. My guess is that distributions are missing a proper substitute for one of the corefonts, so fixing #571 would at least mean one less thing is needed here.

HHolzhaus 2018-08-27 github

The PIDGen.dll problem can be easily fixed by installing mfc42 via winetricks.

Jjuanmarin-co 2018-08-28 github

@ryao I tried your fix but it doesn't work

Ssrtomy 2018-08-28 github

this error of the PIDGen.dll was resolved installing mfc42.
Now I have black screen problem.

Rryao 2018-09-02 github

@juanpmarin You will need to be more specific about how it doesn't work. Maybe you don't have /tmp/proton_run being generated from not using proton 3.7-3. There is also the possibility that you don't have winetricks installed.

RRaulvo 2018-09-04 github

I'm also getting the error about the DLL:

Error loading the PID generator DLL. The DLL could not be found! Please make sure the file is available int he installation directory and try again.

HHolzhaus 2018-09-04 github

@Raulvo you can fix this by installing winetricks and running:

env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.7/dist/bin/wine winetricks mfc42
PP4NCH1 2018-09-12 github

Trying to run winetricks to fix the CD-key issue but in SteamOS I get permissions issues

Terminal i/o: aoe3.log

Should I've to add user steam to sudoers and install wine & wintricks logued-in there?

HHolzhaus 2018-09-13 github

@P4NCH1 No. Try giving the steam user write access to /tmp.

PP4NCH1 2018-09-14 github

@P4NCH1 No. Try giving the steam user write access to /tmp.

It should have, @Holzhaus

desktop@steamos:/$ ls -l | grep tmp
drwxrwxrwt  17 root root  4096 Sep 14 02:17 tmp
HHolzhaus 2018-09-14 github

My guess: Your first attempt using the desktop user probably created /tmp/early_wine.err.txt. Thus, the steam user can't write to it since it does not have ownership of the file. If so, try to delete it.

Sstr-dst 2018-09-15 github

I got the game working with
env WINEPREFIX=$HOME/.local/share/Steam/steamapps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/dist/bin/wine winetricks -q d3dx9 winxp corefonts dsound l3codecx quartz mfc42
Key activation worked, no blackscreen and game is playable. But I got no sound. Only a few crackling noises.

Llegluondunet 2018-09-15 github

I think we have to wait for Faudio integration in Proton before to be able to play this one.

Rryao 2018-09-17 github

@elmo-space I am not sure why you had to install d3dx9. Also, sound works for me. You might want to try setting the dll overrides in winecfg that are used for Rise of Nations in #298. Those are dmime, dmsynth, dmusic, dsound, dswave and l3codecx. I do not recall needing to do that for AoE 3 though.

SSanman96 2018-09-19 github

I've been using linux for almost a decade but WINE is relatively new to me... Never had a need to run it until now.

I am also getting the PID error. I have used the small script ryao provided along with other commands in this thread with no luck.

Tried installing mfc42 manually with the wine prefix and path, it installed successfully but AOE is still reporting the PID error.

Let me know what log files you need to help me troubleshoot. Thanks!

Also I got AOE2, MW3, and a few other games working in steam play. Just can't get this one working!

PP4NCH1 2018-09-20 github

I still couldn't install mfc42 through winetricks:

steam@steamos:~$ env WINEPREFIX=$HOME/.local/share/Steam/steamapps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/dist/bin/wine winetricks -q mfc42

wine cmd.exe /c echo '%ProgramFiles%' returned empty string, error message 'wine: '/home/steam/.local/share/Steam/steamapps/compatdata/105450/pfx' is a 64-bit installation, it cannot be used with a 32-bit wineserver.'

Shouldn't that prefix be a 32-bit prefix?

btw, @Holzhaus , there isn't a /tmp/early_wine.err.txt file but seems that the error now is different.

Llegluondunet 2018-09-20 github

@P4NCH1 kill all wine program stayed in your memory:
$ ps aux |grep wine
or simply reboot your computer

then I don't think your winepath is correct, should be:
WINEPATH="$HOME/.local/share/Steam/steamapps/common/Proton 3.7 Beta/proton"

PP4NCH1 2018-09-20 github
steam@steamos:~$ ps aux | grep wine
steam    14553  0.0  0.0  34236  2288 pts/0    S+   03:54   0:00 grep wine
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7\ Beta/
dist  dist.lock  filelock.py  LICENSE  proton  proton_dist.tar.gz  __pycache__  toolmanifest.vdf  user_settings.sample.py  version
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7\ Beta/dist
bin  lib  lib64  share  version
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7\ Beta/dist/bin
wine  wine64  wine64-preloader  wine-preloader  wineserver
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/
dist  dist.lock  filelock.py  filelock.pyc  LICENSE  proton  proton_dist.tar.gz  __pycache__  toolmanifest.vdf  user_settings.sample.py  version
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/dist
bin  lib  lib64  share  version
steam@steamos:~$ ls $HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/dist/bin
wine  wine64  wine64-preloader  wine-preloader  wineserver

I have SteamOS, @legluondunet

steam@steamos:~$ env WINEPREFIX=$HOME/.local/share/Steam/steamapps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/steamapps/common/Proton\ 3.7/proton winetricks -q mfc42
------------------------------------------------------
wine cmd.exe /c echo '%ProgramFiles%' returned empty string, error message 'wine: '/home/steam/.local/share/Steam/steamapps/compatdata/105450/pfx' is a 64-bit installation, it cannot be used with a 32-bit wineserver.'
------------------------------------------------------
steam@steamos:~$
Rryao 2018-09-21 github

I just tried it out and it still works, but there have been changes to proton that require adjustments to the old instructions. Here are new instructions:

# Wipe out wine prefix directory to get a fresh one.
rm -r "${HOME}/.steam/steam/steamapps/compatdata/105450"

# Set launch options: PROTON_DUMP_DEBUG_COMMANDS=1 %command%
# Run Age of Empires III and then exit as soon as product key is requested
# You may remove the launch options after doing that.

# Fetch a 64-bit .NET 2.0 package
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

# Install .NET 2.0
/tmp/proton_${USER}/run "${PWD}/NetFx64.exe"

# Fetch winetricks and protontricks
wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

# Set them as executable
chmod u+x "${PWD}/protontricks" "${PWD}/winetricks"

# Add final workarounds
WINESERVER="${HOME}/.local/share/Steam/SteamApps/common/Proton 3.7/dist/bin/wineserver" WINETRICKS="${PWD}/winetricks" ${PWD}/protontricks 105450 mfc42 winxp l3codecx corefonts

# Start Age of Empires III, enter the product key and enjoy

Also, sound works for me.

Llegluondunet 2018-09-21 github

@ryao Hello Richard, could you tell me why you installed dotnet 2? I didn't need to install it to play this game.

Llegluondunet 2018-09-21 github

my tests results (v2.0 corrected), this game launched with Proton 3.7-6 if:
I set OS to XP and install corefonts mfc42 l3codecx with winetricks.
I met problem if I installed dsound or quartz with winetricks, the game did not start or had no sound.
I tried to install .Net 2 but I obtained an error message: .Net 2 is already installed.
So it is not necessary to install quartz, dsound, d3dx9 or .Net 2 with winetricks to play this game.
Anyway, I started the tutorial and it freezed at a precise point, I can reproduce this bug each time: when I have to move 3 soldiers, the tutorial voice man shut up and sounds/audio become unstable, I can not continue the tutorial. When I exited, the game stayed in memory, I had to kill it.

Rryao 2018-09-21 github

@legluondunet I had a crash from it not having .NET at some point, so I installed it and it was happy. I am not sure why it needs it. I haven't studied the binaries. The cinematics play for me.

Try wiping out your prefix and making a new one. You probably have the mono version of .NET installed from an earlier attempt at fixing it. I haven't had any issues with it being unstable or crashing. I have only done a skirmish though. I have not tried using the tutorial.

By the way, it coudl be that you are missing some prerequisite for Wine. Try installing wine from your distribution repository if you haven't already so that you have all of the prerequisites for Proton installed.

Llegluondunet 2018-09-24 github

Like I said above, the game crashed if I try the tutorial and didn't close properly, I had to kill it.
I can reproduce this bug each time with Proton (and Wine vanilla, Wine staging too).
I joined you the Proton log:
steam-105450.zip
My config:
https://gist.github.com/legluondunet/0f0a56fb4e9cb743f111385e554fce69

Llegluondunet 2018-09-24 github

I just discovered the crash is only happened with the french version, not the english one.
I declared a bug on WineHQ bugzilla as well https://bugs.winehq.org/show_bug.cgi?id=45889

BBloodyIron 2018-10-21 github

Any chance we can get these PID fixes baked into proton? Instead of having to do this manual work-around? :( Kind of a pain since my STEAM content directory is mounted on another drive, and not in my user profile.

Rryao 2018-10-22 github

@BloodyIron I do not have time to pursue it right now, but the workarounds could probably be put into this:

https://simons-public.github.io/protonfixes/

Edit: It seems to have already been added.

Llegluondunet 2018-11-01 github

The font issue that avoid to enter the serial number is corrected with Proton 3.16-4, thank you Valve team.
Next step: the pid.dll that avoid to validate the serial number?

Ppkoretic 2018-11-18 github

on Arch (unsupported) using 3.16-4 beta this was enough to make it fully working:
env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

Zzimudec 2018-11-18 github

on Arch (unsupported) using 3.16-4 beta this was enough to make it fully working:
env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

I do not understand. Where should that command be taken? in the terminal before starting steam? Start steam next to that command? enter it in properties-> define launch parameters?

Ppkoretic 2018-11-18 github

on Arch (unsupported) using 3.16-4 beta this was enough to make it fully working:
env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

I do not understand. Where should that command be taken? in the terminal before starting steam? Start steam next to that command? enter it in properties-> define launch parameters?

As similar commands mentioned before, this is to run winetricks (https://wiki.winehq.org/Winetricks) and install additional libraries for wine, so it is supposed to be run in your terminal. In this case you run this when the game is not running, after first start/attempt so that wine prefix is created.

Zzimudec 2018-11-18 github

on Arch (unsupported) using 3.16-4 beta this was enough to make it fully working:
env WINEPREFIX=$HOME/.local/share/Steam/SteamApps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/SteamApps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

I do not understand. Where should that command be taken? in the terminal before starting steam? Start steam next to that command? enter it in properties-> define launch parameters?

As similar commands mentioned before, this is to run winetricks (https://wiki.winehq.org/Winetricks) and install additional libraries for wine, so it is supposed to be run in your terminal. In this case you run this when the game is not running, after first start/attempt so that wine prefix is created.

I worked your command by terminal, but I had to correct the following problem: "SteamApps" I replaced it with "steamapps" (they are different folders and the second was the correct one), therefore it would look like this:

env WINEPREFIX=$HOME/.local/share/Steam/steamapps/compatdata/105450/pfx/ WINEPATH=$HOME/.local/share/Steam/steamapps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

Thanks!

BBloodyIron 2018-11-18 github

Can we get these winetricks added as automatic setup steps please? :)

Jjaubin 2018-11-25 github

I confirm the game works like a charm when you apply @zimudec trick.

The only thing is that instead of WINEPREFIX and WINEPATH use your own. For example mine where ::

INEPREFIX=$(pwd)/pfx WINEPATH=/mnt/misc3/Steam/steamapps/common/Proton\ 3.16/dist/bin/wine winetricks l3codecx winxp mfc42

With pwd set to /mnt/gamesfast/Steam/steamapps/compatdata/105450

Bboogerlad 2018-12-31 github

For people running into the black screen problem, setting age3.exe to run on windows xp fixes it. You can do so like so

env WINEPREFIX=$HOME/.local/share/Steam/steamapps/compatdata/105450/pfx WINEPATH=$HOME/.local/share/Steam/steamapps/common/Proton\ 3.16\ Beta/dist/bin/wine winecfg
?ghost 2019-01-04 github

@ryao

... Here are new instructions:

# Wipe out wine prefix directory to get a fresh one.
rm -r "${HOME}/.steam/steam/steamapps/compatdata/105450"

# Set launch options: PROTON_DUMP_DEBUG_COMMANDS=1 %command%
# Run Age of Empires III and then exit as soon as product key is requested
# You may remove the launch options after doing that.

# Fetch a 64-bit .NET 2.0 package
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

# Install .NET 2.0
/tmp/proton_${USER}/run "${PWD}/NetFx64.exe"

# Fetch winetricks and protontricks
wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

# Set them as executable
chmod u+x "${PWD}/protontricks" "${PWD}/winetricks"

# Add final workarounds
WINESERVER="${HOME}/.local/share/Steam/SteamApps/common/Proton 3.7/dist/bin/wineserver" WINETRICKS="${PWD}/winetricks" ${PWD}/protontricks 105450 mfc42 winxp l3codecx corefonts

# Start Age of Empires III, enter the product key and enjoy

Also, sound works for me.


THANK YOU so much!
I'm new to this Proton magic, having same problem as OP, and was trying to fix this problem without installing wine (on system). Following Your steps, game works perfect
/system Arch + nVidia GTX 970/ Steam for Linux, and all installed yesterday.
Also, I did not perform first step (Wipe out wine prefix directory to get a fresh one.)

BBloodyIron 2019-01-04 github

So, any chance we can get this to work without any user intervention at all? As in, get these steps baked into proton activity itself. Defeats the point of Steam Play if we're going to need to do CLI fiddling per-game. I'd rather use Lutris.

Mmuriloglix 2019-02-10 github

@Holzhaus, there was no problem trying to install this package? With me it just did not install, I'm getting the error "Unhandled exception: divide by zero in 32 bits code", so the installation does not proceed.
I'm using a clean installation of SteamOS and Proton 3.16-6 Beta.

BBloodyIron 2019-03-10 github

Can we PLEASE get this fix baked into mainline?

Ccantalupo555 2019-03-23 github

I just tried it out and it still works, but there have been changes to proton that require adjustments to the old instructions. Here are new instructions:

# Wipe out wine prefix directory to get a fresh one.
rm -r "${HOME}/.steam/steam/steamapps/compatdata/105450"

# Set launch options: PROTON_DUMP_DEBUG_COMMANDS=1 %command%
# Run Age of Empires III and then exit as soon as product key is requested
# You may remove the launch options after doing that.

# Fetch a 64-bit .NET 2.0 package
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

# Install .NET 2.0
/tmp/proton_${USER}/run "${PWD}/NetFx64.exe"

# Fetch winetricks and protontricks
wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

# Set them as executable
chmod u+x "${PWD}/protontricks" "${PWD}/winetricks"

# Add final workarounds
WINESERVER="${HOME}/.local/share/Steam/SteamApps/common/Proton 3.7/dist/bin/wineserver" WINETRICKS="${PWD}/winetricks" ${PWD}/protontricks 105450 mfc42 winxp l3codecx corefonts

# Start Age of Empires III, enter the product key and enjoy

Also, sound works for me.

:100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal:
:100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal:
:100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal:
:100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal:
:100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal: :100: :1st_place_medal:

Hey, Thank you very much!!!!!

I will update only the final directory because the version of my Proton is different.

# Wipe out wine prefix directory to get a fresh one.
rm -r "${HOME}/.steam/steam/steamapps/compatdata/105450"

# Set launch options: PROTON_DUMP_DEBUG_COMMANDS=1 %command%
# Run Age of Empires III and then exit as soon as product key is requested
# You may remove the launch options after doing that.

# Fetch a 64-bit .NET 2.0 package
wget http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

# Install .NET 2.0
/tmp/proton_${USER}/run "${PWD}/NetFx64.exe"

# Fetch winetricks and protontricks
wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

# Set them as executable
chmod u+x "${PWD}/protontricks" "${PWD}/winetricks"

# Add final workarounds
WINESERVER="${HOME}/.local/share/Steam/steamapps/common/Proton 3.16 Beta/dist/bin/wineserver" 
WINETRICKS="${PWD}/winetricks" ${PWD}/protontricks 105450 mfc42 winxp l3codecx corefonts

# Start Age of Empires III, enter the product key and enjoy
BBloodyIron 2019-03-31 github

Just tested with Proton 4.2.1 same issue.

Clearly there is a solution here, but I think it's time the fixes get baked into Proton already. Please?

BBloodyIron 2019-04-22 github

Tried with 4.2-3, still buggered, DLL error thrown when trying to input CD-Key...

SSanman96 2019-05-21 github

Was still having issues finding a way to get this to work between computers running Ubuntu and found this guide. Works great.

If anyone is looking for an easy install without messing with prefixes, found a useful link. https://jaytuckey.name/tag/steam-play/

  1. Enable steam play for all titles. Go to “Settings” -> “Steam Play” -> check “Enable Steam Play for all other titles”
  2. Launch Steam and install ‘Age of Empires III: Complete Collection’
  3. Run AoE3 for the first time, and let perform the first time setup. One you get to the “Product Key” box, click “Cancel”
  4. You now need to install “winetricks.” See https://github.com/Winetricks/winetricks. The easiest way to install on Ubuntu is to run sudo apt install winetricks
  5. You also need to install “protontricks”, which is a wrapper for winetricks that runs it against Steam Play installations. The version on the original article is out of date, so the newer version is here: https://github.com/Matoking/protontricks. To install this, run:
  6. sudo apt install python3-pip python3-setuptools python3-venv
  7. python3 -m pip install --user pipx
  8. ~/.local/bin/pipx ensurepath
  9. pipx install protontricks
  10. Now install the extra dependencies with protontricks: protontricks 105450 mfc42 winxp l3codecx corefonts
  11. Now you can relaunch the game and enter the CD Key.
BBloodyIron 2019-05-21 github

Can we PLEASE get this baked into mainline Proton already? The solution has been identified, verified, and we just need it mainlined. Been waiting since January...

BBloodyIron 2019-05-21 github

@kisak-valve ?

Kkisak-valve maintainer 2019-05-21 github

Hello @BloodyIron, the way to move forward with the goal of the game working out of the box is to improve the support provided by wine and not to depend on workarounds. Insisting that using protontricks/winetricks is definitely not helping.

The biggest issue was providing .NET support (#18) which has landed and rumor has it that mfc42 can be bypassed.

The remaining codec and font issues need to be properly identified and triaged in wine.

BBloodyIron 2019-05-22 github

has that been communicated to WINE devs?

BBumbadawg 2019-08-03 github

Nota bene:
performance increased a lot with latest Proton 4.11 and the futex patched kernel 5,
(using Feral's gamemode as well)
PROTON_USE_D9VK=1 DXVK_HUD=fps gamemoderun %command%

MMte90 2019-08-24 github

performance increased a lot with latest Proton 4.11 and the futex patched kernel 5,
(using Feral's gamemode as well)
PROTON_USE_D9VK=1 DXVK_HUD=fps gamemoderun %command%

If to someone is not clear where put this string, is inside the proprieties of the game inside steam, right click to the game->proprieties and press launch options.

BBumbadawg 2019-08-25 github

@Mte90 indeed, nor do the futex. Good you clear it up.
I thought it was a report thread mostly, not made for regular gamer support.

Tthawkins 2019-08-31 github

i am facing the PID problem too, but i cant get any of the fixes to work because there are no proton_run files in the /tmp directory, i'm on fedora 30.

Rryao 2019-09-01 github

i am facing the PID problem too, but i cant get any of the fixes to work because there are no proton_run files in the /tmp directory, i'm on fedora 30.

Installing .NET is no longer needed, so you can skip that part of the instructions,

EEternalBlueFlame 2019-12-07 github

I seem to have gotten my install working flawlessly, tested singleplayer, multiplayer, and various graphics settings.

WITH PROTONTRICKS:
NOTE: installing protontricks as sudo gave me problems in ubuntu 19, but installing as normal user worked fine. Additionally protontricks should work regardless of distro, and there's support for the steam flatpak.
NOTE 2: if you have to reinstall protontricks, you may have to manually delete the protontricks file due to permissions, in my case a simple pipx uninstall couldn't remove the file.
This is the variant I used > https://github.com/Matoking/protontricks
Additional note that installing pip seems to be required to use the recommend pipx installer.

then run
protontricks 105450 mfc42 winxp l3codecx d3dx9

WITHOUT PROTONTRICKS:
NOTE: I have not tested this method, but considering protontricks is mostly a shorthand, there shouldn't be issue, however due to filestructure variants, it likely will only work on debian/ubuntu based distros, with the deb version of steam.
WINEPREFIX=~/.steam/steam/steamapps/compatdata/105450/pfx/ winetricks mfc42 winxp l3codecx d3dx9

ADDITIONAL NOTES:

  • corefonts used to be needed, but isn't in proton 4.11-9, you can install it anyway, it won't hurt, and doesn't seem to make a difference.
  • mfc42 and winxp is needed to fix the CD Key input.
  • I3codecx fixes some video stuff supposedly, I haven't tried without it.
  • d3d9x fixes shaders, without it only the low shaders work without significant errors. might be Nvidia specific problem? But installing wont hurt on other cards.
  • sorry for all the edits.
BBloodyIron 2019-12-08 github

While it is good to know the steps to overcome this issue, the fact we need to use winetricks to do this really defeats the point of Proton to begin with: Convenience.

This needs to get baked in already! This needs to be part of Proton so gamers don't need to winetricks each time they install AoE3. There are many gamers who are intimidated by this kind of work, and this completely defeats Proton's primary goals.

Please VALVe, bake this in already!

HHolzhaus 2019-12-08 github

@BloodyIron They simply can't. This would violate Microsoft's license and request after request won't change that. What needs to happen is that someone implements an open-source version of the libraries listed above, to a degree that suffices to run AOE 3. This is a big undertaking. If you're willing to help out, head over to the wine project and send patches.

EEternalBlueFlame 2019-12-12 github

@Holzhaus pre-including a series of winetricks calls for a game installer/updater has nothing to do with microsoft licensing, they already use similar tricks for thousands of other games both on and off windows, ever see that occasional window that pops up saying "Installing Microsoft VC Redist Package"?

The amount of necessary additional DLL development for wine to cover the features, mfc42 for example, on it's own, is far more outreachingly difficult than steam just adding one additional line of configs.

Tthawkins 2019-12-12 github

Perhaps the best approach is to formalize a way of scriping any winetricks
etc hacks, in such a way they can be added simply to proton, ie a directory
of files, one per game that runs before a game launches and checks for the
right conditions, and install corrections if not.

On Thu, 12 Dec 2019, 08:56 Jonathan, [email protected] wrote:

@Holzhaus https://github.com/Holzhaus pre-including a series of
winetricks calls for a game installer/updater has nothing to do with
microsoft licensing, they already use similar tricks for thousands of other
games both on and off windows, ever see that occasional window that pops up
saying "Installing Microsoft VC Redist Package"?

The amount of necessary additional DLL development to cover the features,
mfc42 for example, is far more outreachingly difficult than steam just
adding one additional line of configs.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/Proton/issues/17?email_source=notifications&email_token=AAADRSOZGFI5NC2Y4TA56RDQYGD2RA5CNFSM4FQ3NIAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGVC2JI#issuecomment-564800805,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAADRSO6GKPL72TTFBO45UDQYGD2RANCNFSM4FQ3NIAA
.

HHolzhaus 2019-12-13 github

@Holzhaus pre-including a series of winetricks calls for a game installer/updater has nothing to do with microsoft licensing, they already use similar tricks for thousands of other games both on and off windows, ever see that occasional window that pops up saying "Installing Microsoft VC Redist Package"?

The VC redistributable is included by game devs, not Steam/Proton. Also, Steam cannot legally wrap winetricks AFAIK. Some stuff available via winetricks can only be installed if you own a copy of Windows, e. g. the dotnet4 (used by lots of game launchers) EULA states:

If you are licensed to use Microsoft Windows operating system software (for which this supplement is applicable) (the “software”), you may use this supplement. You may not use it if you do not have a license for the software. You may use a copy of this supplement with each validly licensed copy of the software.

Also, if I was a Valve employee I wouldn't want to maintain a list of winetricks commands for every Windows steam game in existence. It just doesn't scale. Those man hours are better spent with implementing these libraries in wine.

Tthawkins 2019-12-13 github

Also, if I was a Valve employee I wouldn't want to maintain a list of
winetricks commands for every Windows steam game in existence. It just
doesn't scale. >That man hours are better spent with implementing these
libraries in wine.

If a simple bash-script can be used to create a "Patch" for a game, then a
much much larger population of contributors would be able to contribute
these files. all that is needed is the ability to integrate those scripts
into the proton framework. They could even be placed in a
separate repository and proton could sync them from there. the chances of
getting these "libraries" coded in C/C++ is low, and there are not many
people with the required skills to do it, however i see people providing
solution recipes in these issue tickets, that if created as scripts instead
could provide the solution required, all that is needed is for the game
launcher to look for the scripts if they exist and apply them.

On Fri, Dec 13, 2019 at 10:35 AM Jan Holthuis [email protected]
wrote:

@Holzhaus https://github.com/Holzhaus pre-including a series of
winetricks calls for a game installer/updater has nothing to do with
microsoft licensing, they already use similar tricks for thousands of other
games both on and off windows, ever see that occasional window that pops up
saying "Installing Microsoft VC Redist Package"?

The VC redistributable is included by game devs, not Steam/Proton. Also,
Steam cannot legally wrap winetricks AFAIK. Some stuff available via
winetricks can only be installed if you own a copy of Windows, e. g. the
dotnet4 (used by lots of game launchers) EULA states:

If you are licensed to use Microsoft Windows operating system software
(for which this supplement is applicable) (the “software”), you may use
this supplement. You may not use it if you do not have a license for the
software. You may use a copy of this supplement with each validly licensed
copy of the software.

Also, if I was a Valve employee I wouldn't want to maintain a list of
winetricks commands for every Windows steam game in existence. It just
doesn't scale. That man hours are better spent with implementing these
libraries in wine.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/Proton/issues/17?email_source=notifications&email_token=AAADRSKLMJBPBFPJOE2MXBLQYLYIVA5CNFSM4FQ3NIAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGYWTRI#issuecomment-565275077,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAADRSO325IFLDMUAN5DPKLQYLYIVANCNFSM4FQ3NIAA
.

EEternalBlueFlame 2019-12-13 github

If a simple bash-script can be used to create a "Patch" for a game, then a much much larger population of contributors would be able to contribute these files. all that is needed is the ability to integrate those scripts into the proton framework. They could even be placed in a separate repository and proton could sync them from there. the chances of getting these "libraries" coded in C/C++ is low, and there are not many people with the required skills to do it, however i see people providing solution recipes in these issue tickets, that if created as scripts instead could provide the solution required, all that is needed is for the game launcher to look for the scripts if they exist and apply them.

The Lutris community is actually good proof this concept works astoundingly well, if Steam implemented similar capabilities or even lent a hand to lutris for some proper proton support, that could go a very long way.
https://lutris.net/games/
Not to mention if the community had better ability to fix it themselves in ways like this, valve could track the fixes and use that information to better prioritize what libraries need what kind of work in proton/wine themselves. A point in the right direction like that might even speed up such work.

EEternalBlueFlame 2019-12-13 github

The VC redistributable is included by game devs, not Steam/Proton. Also, Steam cannot legally wrap winetricks AFAIK. Some stuff available via winetricks can only be installed if you own a copy of Windows, e. g. the dotnet4 (used by lots of game launchers)

It's included by the devs and wrapped/run by steam itself, thus why the installer uses the steam UI, if the game includes dotnet4, as some do so they can install and run on windows 7 and older that don't pre-include it, you would be met with the same potential legal issue.
Additionally if steam is just calling a terminal command of a 3rd party program, such as winetricks, as you would expect some more lazy bash scripts to do, the legal issue falls on how winetricks obtains and uses the software, not how steam would obtain and use winetricks.

BBloodyIron 2019-12-17 github

Whether STEAM calls winetricks or the user calls winetricks the legal issue is the same, it's legally fine. If Microsoft had an issue with how winetricks installed .NET and such, they would have taken action by now, they're no legal slouches.

This kind of an automation/scripting/streamlining is effectively identical to how STEAM already installs directx and other aspects games need on first launch (this is the same in Linux and Windows). So it is a moot point.

We've clearly identified what it takes to get past this bug, we just need to add it to the Proton steps that STEAM automatically takes, otherwise why even bother developing Proton?... if we can't bridge small steps like this, it's pointless IMO.

HHolzhaus 2019-12-17 github

IMHO it's not legally the same. When a user runs winetricks consciously, he implicitly agrees with it's EULA. You can't really say this for users that just install a game via Steam, because might not even know that it pulls Microsoft dependencies that require a valid Windows license. I might be wrong though.

In any case, Proton already is a great addition to Steam and not pointless at all. Since it's open source so you can propose a feature, and if no dev picks it up you can implement it yourself and send a Pull Request. Being an open-source developer myself I can assure you that just repeatedly demanding stuff and acting entitled on a bug tracker is absolutely not helpful and kills motivation.

BBloodyIron 2019-12-17 github

When a game installs DirectX or .NET through STEAM already (like, Windows game on Windows), they're never prompted for that dialogue either.

I didn't say Proton was pointless, what I was trying to say that not automating things like winetricks produces a very significant roadblock to the whole reasoning behind Proton. If we're not going to have winetricks stuff baked into Proton then we might as we just use Lutris instead of Proton.

Aaeikum 2019-12-20 github

The "PID generator DLL" error, caused by missing mfc42, should be fixed in Proton 4.11-11. However, you will still need the other workarounds for now.

EEchelon9 2019-12-27 github

A report of what doesn't work with Proton 4.11-11, whilst trying to avoid any winetricks/protontricks hacks.

  • With Proton 4.11-11, the "PID generator DLL" error, caused by missing mfc42, is fixed.
  • Game crashes at first frame of what appears to be an opening cinematic (perhaps relying on some middleware video decoder that proton doesn't support as is, and which winetricks provided?)
  • There is no change in the bug, when using the +noIntroCinematics Age of Empires III command line option. Still crashes at first frame.

IMHO it is indeed a different legal position when a user manually copies these non-distributable files vs. an embedded script shipped by Valve. Licenses for software stuff actually matters.

Microsoft might indeed go after Valve if they adopted this questionable route, as they have deep pockets, even if Microsoft can't be bothered doing the same for individuals.

Tthawkins 2019-12-27 github

I can confirm it is working on fedora 31/steam with following, the below are all typed into a terminal as is:

  1. sudo dnf install winetricks
  2. pip3 install protontricks --user
  3. protontricks 105450 mfc42 winxp l3codecx d3dx9

Then started up the game and it all works

Note: The above was after assigning the latest version of Proton (4.11-11) to steam play in settings (and waiting until all the resulting downloads had completed) and starting the game up and putting the CD key in, where it stalled at the opening screen, I then rebooted the machine to clean up the processes and applied the procedure above.

The only issues i saw during the install was:

0024:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
0024:err:xrandr:xrandr10_init_modes xrandr 1.2 support required
0009:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
0009:err:xrandr:xrandr10_init_modes xrandr 1.2 support required

I have the nvidia proprietary drivers installed via rpmfusion which i need to have because of the CUDA support, as i work on ML tools as my role. But the above error seems to be more a warning about using v1.0 xrandr instead of 1.2, and it does not seem to effect the games.

So now i have AOE2HD, AOE3 and AOM all working, all i need to sort out now is AOE2DE which stalls on video screen initialization in the same way as AOE3 did before the fix above was deployed.

I'm tempted to try the same fix, but with the AOE2DE gameID

Tthawkins 2019-12-30 github

for the relevant folks, the AOE II DE version can be fixed by using the steam client to show the game files and then renaming resources/_common/movies to something else. it appears that the video playback is dieing,

it may be possible that
protontricks [nnnn] l3codecx
may fix it,as that is the same symptoms that aoeIII suffered from too.

Yyurikoles 2020-02-29 github

Could not load DATAP.BAR :(

Screenshot_20200229_195201

Aaidalgol 2020-07-17 github

I have tried all the tricks described on this issue and the DLL overrides described on #298 to fix sound, and I still have a major sound issue. I have sound during the intro cinematics and on the menu, but sound almost completely dies after a few seconds into the tutorial. I can hear my unit callouts for the first move command I give him, and then I only hear a short loop of water splashing from then on.

I am using Proton 5 with the flathub distribution of Steam on Debian 10.

Llegluondunet 2020-10-16 github

@yurikoles I just had same error message as you and resolved like this:
uninstall game
delete compdata folder:
...Steam/steamapps/compatdata/105450/
reinstall the game

BBloodyIron 2020-10-16 github

Do we still need to take manual steps to be "allowed" to enter the CD Key? Or is that actually baked in now and I can play the game without having to winetricks all the things?

Wwwagner33 2021-07-23 github

Hi,

I installed AoE3 in my ElementoryOs (based in Ubuntu 18.04), but when I click in Play the program show me the message: I could not load DATAPX.BAR. Can you help me? I use Steam Play on Linux.

Thanks a lot! Itś a amazing project. Congratulations!

Screenshots

Captura de tela de 2021-07-22 00 59 13
Captura de tela de 2021-07-22 00 59 45
Captura de tela de 2021-07-22 00 59 57
Captura de tela de 2021-07-22 01 01 03
Captura de tela de 2021-07-22 01 01 30
Captura de tela de 2021-07-22 01 01 57
Captura de tela de 2021-07-22 01 03 08

Wwwagner33 2021-07-23 github

Hi, everyone!

I installed the Age of Empire II HD Edition and the AoE3 Complete Collection executed correctally. I did not undestand the problem but it is solved.

Thanks.

Yyurikoles 2021-07-23 github

@wwagner33 Thanks for CD Key, frakin saved!

Mminionprocyk 2021-09-08 github

Sharing my recent experience with Proton 6.3-6 and a fresh install. Game loads without any extra workarounds. Multiplayer tends to desync when playing with other windows players w/ AI. But seems to work just fine without AI. Maybe an msxml issue? Skirmishes/campaign/changing menu settings all work as you'd expect.

Ddanilo-bc 2022-01-02 github

Installed the game with Proton 6.3-8, only tested multiplayer and single player skirmish.

It properly connects to ESO and gets me into a match. I can either play against AI or a human opponent. The problem is that at the end of the match I'm thrown out of ESO because it says I don't have the proper file permissions to load my Home City. I suspect this is something to do about how Proton changed from 5.x to 6.x in regards to sandboxing the games for compatibility.

I tested creating a city and changing a few cards in Skirmish and I don't have the same problem as I have for ESO, BUT the city and deck choices don't save (probably an invisible "can't write file because of permissions" error).

After this I switched back to 5.13-6 and I could access my home cities and have them saved. I could finish a multiplayer game with AI on a game I didn't host and, in the end, I could upgrade my home city cards and keep playing.

I currently can't test it (time to wipe prefix, reinstall, etc), but I think the game doesn't work by default on 5.13-6, but installing it through 6.x, running it once, then downgrading did the trick.

Lastly, I checked there was a Multiplayer patch by the creators of the game. I installed it, but everyone else is still using the unpatched client, so I had CRC errors. I recommend postponing the patch until the server truly come offline, then.

AAJuujarvi 2022-12-05 github

@danilo-bc Hi, I tested this and was unable to recreate the issue and the game worked flawlessly. As far as I could tell though, I had to use the multiplayer patch since I didn't have an installation pre multiplayer patch release.

Is this issue with your Home City still happening for you pre-multiplayer patch? Are you having any issues still post-multiplayer patch?

Ddanilo-bc 2022-12-06 github

@danilo-bc Hi, I tested this and was unable to recreate the issue and the game worked flawlessly. As far as I could tell though, I had to use the multiplayer patch since I didn't have an installation pre multiplayer patch release.

Is this issue with your Home City still happening for you pre-multiplayer patch? Are you having any issues still post-multiplayer patch?

Hi @AJuujarvi, thank you for replying. Since it's been about 11 months, the issue seems to be solved in newer Proton versions. I can play Multiplayer and edit my home cities. I have found, though, that applying the multiplayer patch hindered my ability to play with my friend. Since we only play with each other and bots, we decided not to apply the patch to simplify the process.

I want to note that all this testing has occurred several months before I post this reply, so the situation may have changed either in terms of ESO or in Proton compatibility.

As far as Proton itself is concerned, it seems to have improved greatly.

Eevan699 2023-06-17 github
Jjr1991-g 2024-02-07 github

With latest Proton 8.0-5 and Experimental I'm getting this issue.
Captura desde 2024-02-07 19-07-06

EDIT: This can be fixed if the game it's installed in the first drive, under .steam.
If it's installed on another disk under /mnt/xxxx with a long partition name the aforementioned bug occurs, at least on my laptop. Reproducible under ALL Proton versions, even proton-ge.

ThinkPad-E495 Kernel: 6.5.0-17-generic arch: x86_64 bits: 64
    Desktop: GNOME v: 45.2 Distro: Ubuntu 23.10 (Mantic Minotaur)
CPU:
  Info: dual core AMD Ryzen 3 3200U with Radeon Vega Mobile Gfx [MT MCP]
    speed (MHz): avg: 1397 min/max: 1400/2600
Graphics:
  Device-1: AMD Picasso/Raven 2 [Radeon Vega Series / Radeon Mobile Series]
    driver: amdgpu v: kernel
  API: OpenGL v: 4.6 Mesa 23.2.1-1ubuntu3.1 renderer: AMD Radeon Vega 3
    Graphics (raven LLVM 15.0.7 DRM 3.54 6.5.0-17-generic)
BBloodyIron 2024-10-18 github

Can we PLEASE get the font issue fixed for this already???