As of Feb 8, 2019, Proton is now version 5.0, incorporating Wine 5.0 changes. The strftime() changes have been completed as of Wine 5.0. Therefore, vanilla Proton will now support these changes and this repository is no longer necessary.
I will still keep Proton-4.11-12-strftime here, but it will only be available in the proton-4.11-strftime-archive branch. This is to discourage future use of proton-strftime, since a better alternative -- Proton 5.0 -- is available.
This is a custom build of Proton to fix some issues I found with ESO. Specifically, if any ESO AddOns use os.date() with any of many substitions that are unimplemented by Wine, the result will be nil -- an unexpected outcome for any AddOn. This causes any AddOns that uses these substitutions to crash, resulting in unexpected behaviour.
I submitted a patch to WineHQ (Bug #47809) with a fix for these issues, but due to the politics of Wine development, they are probably unlikely to make it upstream. So, I opted instead to apply my patch to Proton.
This repository's releases contains a build of Proton 4.11 with my patch and upstream patches applied.
Using this method to install Proton is, by far, the easiest method providing that you have ESO installed in Steam.
NOTE: I do not have ESO installed with Steam, so if my instructions are not clear or are incorrect, please let me know.
-
Create the custom Proton directory (if it doesn't exist):
mkdir ~/.steam/root/compatibilitytools.d/
-
Download proton-strftime.tar.xz and extract the whole folder inside into ~/.steam/root/compatibilitytools.d
Once completed, you should have a folder structure like this:
~/.steam/root/compatibilitytools.d/ | |__ proton-[version]-strftime/ | | | |__ compatibilitytool.vdf | |__ dist/ | |__ dist.lock | |__ filelock.py | |__ LICENSE | |__ proton | |__ proton_3.7_tracked_files | |__ toolmanifest.vdf | |__ user_settings.sample.py | |__ version | |__ (possibly other custom Proton versions)
-
Restart the Steam client
-
Right-click 'The Elder Scrolls Online' in your game library and open
Properties...
-
In the General tab, click the checkbox that says "Force the use of a specific Steam Play compatibility tool"
-
From the drop-down menu select "proton-4.11-12-strftime"
-
Run the game, and enjoy!
I have provided a script in the extra
folder in this repository. It automates the process of
downloading proton-strftime, seting up a prefix, running the game, and updating
proton-strftime. Download the script from the link, save it, and make it
executable by issuing the following command:
chmod +x /path/to/downloaded/RunESO.sh
To setup the ESO Proton folder and automatically install ESO use the following command:
./RunESO.sh install
This assumes that your ESO Installer (Install_ESO.exe) is in ~/Downloads/Install_ESO.exe. If it is not, use the alternative command:
./RunESO.sh install /path/to/Install_ESO.exe
By default, this installs Proton and ESO into the ~/.eso folder. To change
this, modify the eso_path
variable at the top of the script.
This use case is useful if you already have the game installed in Wine or the game data files in another location. The basic steps are:
- Run
./RunESO.sh install --prefix-only
- Edit the
game_dir
variable at the top of the script to point to the path of your game data files (usually something like /some/wine/prefix/drive_c/Program Files (x86)/Zenimax Online)
The folder that game_dir
points to should have a structure like this:
game_dir
|
|__ Launcher
| |__ Bethesda.net_Launcher.exe
|
|__ The Elder Scrolls Online
| |__ game
| |__ client
| |__ eso64.exe
|
|__ uninstall
|__ ZosSteamStarter.version
Afterwards, to run the launcher you can use the command:
./RunESO.sh
To skip the launcher you can use
./RunESO.sh game
To update proton-strftime to the latest version, use the following command:
./RunESO.sh update
If, like me, you haven't purchased ESO from Steam, then you have to set up Proton to run ESO outside of Wine. This is a little difficult to understand (even from a seasoned Wine user's perspective), so I'm going to provide my own scripts and methods for running ESO outside of Steam.
In my case, I created a directory called ~/.eso. Make the directory and cd into it.
mkdir ~/.eso
cd ~/.eso
Extract the folder from proton-strftime.tar.xz to ~/.eso using your favorite archive manager.
For ease of future updates, create a symlink for ~/.eso/proton to ~/.eso/proton-4.11-12-strftime
ln -s ~/.eso/proton-4.11-12-strftime ~/.eso/proton
This way, you can keep multiple Proton versions in the folder and swap between them by simply changing where the symlink points.
cp -R ~/.eso/proton-4.11-12-strftime/dist/share/default_pfx ~/.eso/pfx
STEAM_COMPAT_DATA_PATH=~/.eso ~/.eso/proton/proton waitforexitandrun /path/to/Install_ESO.exe
The command line I use to run ESO manually:
STEAM_COMPAT_DATA_PATH=~/.eso PROTON_NO_ESYNC=1 mesa_glthread=true vblank_mode=0 ~/.eso/proton/proton waitforexitandrun "$HOME/.eso/pfx/drive_c/Program Files (x86)/Zenimax Online/launcher/Bethesda.net_Launcher.exe"
I have also provided a script in the extra
folder that can be customized to most use cases. Once the variables at the top of the script are set to your needs, run:
./RunESO.sh
or
./RunESO.sh game