Proton
Proton is the Windows on Linux compatibility layer that Steam uses to run Windows titles. Read more about it here
Prerequisites
Updating pressure-vessel
Pressure-vessel is the container software that Proton uses to containerize itself. Steam doesn't ship a version of pressure-vessel that supports FEX-Emu, so this needs to be built and overwrite the version that Steam ships.
- On an x86-64 device
- Clone this git repo https://gitlab.steamos.cloud/steamrt/steam-runtime-tools
- Follow build instructions here: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/master/build-aux/many-builds.md
- If all dependencies are already installed then this can be as simple as following
- ./build-aux/many-builds.py setup
- ./build-aux/many-builds.py build
- ./build-aux/many-builds.py install
- After which it gives you an rsync command to follow to get the build in to the correct folder on an AArch64 device.
Gotchas
- When Steam updates its runtimes, it may overwrite the one you've installed. rsync again to overwrite again
- If pressure-vessel complains about missing lib64 files or unable to execute some adverb then two things could have happened
- Your pressure-vessel changes got overwritten, rsync again
- Your version of FEX is too old, needs at least FEX-2207
Running
Selecting a Proton game inside of the Steam install and running it should be all that is necessary. Be patient as due to how pressure-vessel and FEX interacts with each other, building the chroot environment can take a few minutes. Watch the processes in htop if you want to make sure.
DXVK
Lots of games require Vulkan in order to run since they will be executed using DXVK. Make sure your AArch64 device has a new enough Vulkan driver to handle DXVK.