Borderlands 3 on Steam with proton and DXVK
Welcome, Guest.
“Theory and practice sometimes clash. And when that happens, theory loses. Every single time.” ― Linus Torvalds

Author Topic: Borderlands 3 on Steam with proton and DXVK  (Read 141 times)

Offline Ironclaw

  • Terminal Multiplexer
  • Staff Member
  • ********
  • Posts: 364
Borderlands 3 on Steam with proton and DXVK
« on: April 22, 2020, 02:07:59 PM »
Boredom got the best of me sitting at home for the last couple of weeks, thank goodness for administrative leave as I haven't had to go without a paycheck. Anyhow, I decided to try the latest episode of the Borderlands games since it came out on Steam last month.  This is what ended up working for me after digging through multiple different resources available.  Most of it is an adaptation from The Linux Experiment's video on getting it to work through Epic Games Store on Lutris with an additional hat tip to Robo 'n Tux

It runs well via Proton 4.11, Proton 5.0 seems to have issues with online matchmaking and connecting to SHIFT.


Step one is to make sure that DXVK is functioning on your system.  Lutris has a very good guide for this on their wiki that covers the method on multiple different distributions.

Step two:  run it once via proton before the following can be done, this creates the prefix. If you make a mistake, you can simply remove the prefix under your steam directory, it will be in steamapps/compatdata/397540/pfx then run the game via proton again to regenerate it, don’t force yourself to download 70+ GB more than once.

Set Proton up to write scripts:

Add the following lines to user_settings.py in proton’s directory. It should be inside your steam directory (usually ~/.steam) under steamapps/common/.  If there is no user_settings.py, then copy user_settings_sample.py to user_settings.py and then add the lines.


"PROTON_DEBUG_DIR": "some temporary directory",
"PROTON_DUMP_DEBUG_COMMANDS": "1",


Replace “some temporary directory” (mine is ~/temp) with your preference, it allows you to easily get a shell with all of the proper variables set for later steps


In your temporary scripts directory copy the “run” script written by proton to shell.sh then edit shell.sh as follows. Replace the last line of the shell.sh script with /usr/bin/xterm (You can use terminals other than xterm without issue, I simply chose xterm because it is nearly universal that if you have X, you have xterm.)



Next we need the Microsoft Media Foundations.   You will need git and python2 installed for this section.  


Run the shell.sh script from your proton temp directory, that will give you a shell with all of the proper variables set which will make the rest easier.  Leave this xterm shell open until the end of the process.

Go to a download location, make sure that git is installed and issue the following commands into the terminal.  


Code: [Select]
git clone https://github.com/z0z0z/mf-install.git


git clone https://github.com/z0z0z/mf-installcab.git



Code: [Select]
cd mf-install


./mf-install.sh

let the script complete


Code: [Select]
cd ..


cd mf-installcab


./install-mf-64.sh

let the script complete, if you are interrupted, rm *.exe and run it again


copy the mfplat.dll file from inside the mf-installcab directory to your Borderlands 3 installation. It will be inside of your Steam directory steamapps/common/Borderlands 3/OakGame/Binaries/Win64/

Get COLORCNV.zip from https://www.dllme.com/dll/files/colorcnv_dll.html, extract and copy the COLORCNV.dll file to $WINEPREFIX/drive_c/windows/system32

Download the following registry key from https://app.box.com/s/nue4aufqbdnfoidyo3xei28bng03bk98
This is a registry key that will enable the color conversion file you just copied.  From the already open shell run regedit and then import that key file (file menu) which will create keys in HKEY_CLASSES_ROOT/CLSID

The last step is to make sure that multiplayer will work, this is a simple command from the same shell we've been using:  WINEARCH=win64 wine wineboot

That last step does not always seem to be necessary, but it's simple and easy enough that there's no reason to skip running it, as if you cannot connect to SHIFT then you cannot play online and matchmaking will not work.

That should complete the process, you should be able to exit the xterm and launch the game from Steam.  Be warned, this game loads slowly, even on a SSD.  You'll know you're on the right track if you see the intro movies as the game is loading but that's not a 100% guarantee.  When you start a new game, if you see Lilith talk to you before you get off of the bus, you should be golden.  If you don't see her as well as hearing her voice then something was not done right and you will not be able to get past the 2nd mission where your character needs to view a video on a screen in-game.  This has been a known issue since the launch of the game, even Windows users end up having to go back and install the media foundations in many cases.

My appologies, Claptrap is still ... Claptrap.

Was it worth the $60?  Your mileage will vary, I've been enjoying it so far.

« Last Edit: April 22, 2020, 02:26:46 PM by Ironclaw »
If you must persist, I will be forced to tar you, then gzip you and finally umount you.

Offline Spatry

  • Benevolent Dictator
  • Administrator - Sysop
  • **********
  • Posts: 5599
  • Cup of Linux Founder
    • Cup of Linux
Re: Borderlands 3 on Steam with proton and DXVK
« Reply #1 on: April 25, 2020, 01:15:06 PM »
I have proton running within Playonlinux and I have a video showing how to set that up as well. I imagine your same procedure could be followed that way. Good stuff indeed!
Windows assumes the user is an idiot... Linux DEMANDS Proof!