Preamble

A few months and improvements to Proton after its first release, i had the first known, good working Arma installation on Linux.

Since Proton 4.11 as good as all tweaks needed to run Arma became obsolete, and it became as easy as never before to play not only Arma and Steam Games, but also non-Steam games because of many Proton improvements being up streamed to Wine. You can check if your games are working on the Lutris website, the WineHQ and the ProtonDB websites.

With the release of Proton 6.3-8, the last major burden, BattleEye, is now working and we can play Arma 3 on Linux without any restriction! As of 2023, the official Arma launcher also works on Linux using Proton.

This new guide is based on all the knowledge that got collected up until now. This guide will get continuous Updates

Last guide update: 2023-11-15 - Licensed, see below

Notice

As of 2023-11-27, this guide is licensed under CC BY-NC 4.0

Arma Reforger

1. Prepare (Reforger)

If you haven’t done so yet, activate Steam Play for all Games in the global Steam settings. Refer to the “Prepare” Chapter of the Arma 3 Section on how to do so.

To play Arma Reforger on Linux, you’ll just have to set your launch options to the following. (Refer to the Arma 3 Section again on how to do so.)

echo "%command%" | sed 's/ArmaReforger_BE.exe/ArmaReforgerSteam.exe/' | sh

Thats it, it should be playable now, assuming you have downloaded it.

Credits for this go to HER0#0927 on Discord.

Arma 3

0. Disclaimer

I don’t take any responsibility if any (im)possible damage occurs on your hardware, software or your health, if you lose your job due to you being late because your alarm clock didn’t ring or if a thermonuclear war breaks out. You are responsible for all changes you are making! Please read everything carefully and if needed twice to prevent misunderstandings. You can contact me via the information provided on my website

As of now, Flatpak Steam is unsupported!

1. Prepare (Arma 3)

You should have

  • Basic terminal/Bash knowledge
  • All software and drivers up to date
  • wine-staging installed (make sure all dependencies are installed)
  • For BattleEye: Steam beta client (switch via steam settings)

2. Downloading Arma

Do the following before starting to download Arma!

Go into Steam settings and then click on “Steam Play”. Check both boxes and choose the newest Proton version available (not Experimental)

Now go into the Steam game settings menu and add the %command% -nolauncher to the launch options

Then go into the “Compatibility” Tab and set the Proton version again

Now you can start the downlaod of Arma 3.

3. Starting and playing the Game

When the download is finished, start the game once and exit it again after reaching the main menu.

Now you need a launcher to manage Mods and launch options. I highly recommend using the Arma 3 Unix Launcher by muttleyxd instead of the official launcher. Download: Arch Linux AUR | as .deb or .AppImage

This is everything you need to play Arma 3 on Linux without ACRE2 or TFAR. Congratulations to get this far. ;)

4. The Helper script and ACRE2 / TFAR

Important: Make sure to start Arma at least once into the main menu before moving on!

4.1 The Helper script

The Arma3Helper Script (formerly Arma3TS.sh) is reqired to run ACRE2 or TFAR on Linux. It also provides utility to make some troubleshooting (see Chapter 5) easier.

Place the Arma3Helper.sh provided here (click me) in your home directory for easy access.
Edit the file and adjust the settings inside the marked area in that file according to the comments.

4.2 Preperation for ACRE2 / TFAR

The Arma3Helper script provides a wrapper for winetricks that will set the wineprefix to Arma’s compatdata folder after you adjusted the settings inside the script.
To install a variety of DLLs/features that are required for ACRE2 / TFAR as well as fix alot of common issues, run the following command.
./Arma3Helper.sh winetricks Arma
For transparency: The DLLs/features installed are d3dcompiler_43, d3dx10_43, d3dx11_43, mfc140 and xact_x64.

4.3 ACRE2 / TFAR

Download Teamspeak 3 for Windows x64(!).
Install Teamspeak into the compatdata directory of Arma by running
./Arma3Helper.sh install path/to/TS3-Installer.exe.
IMPORTANT: In the Teamspeak installer, select “Install for all Users” and leave the default path!!!

After the insallation you can start TeamSpeak by just running ./Arma3Helper.sh After you have started Arma.

Before joining a TeamSpeak server, disable the “Gamepad and Joystick Hotkey Support” plugin to prevent it from crashing.

For TFAR you need to manually copy the plugin dll’s folders into your Teamspeak path (c/Program Files/TeamSpeak 3 Client/plugins/). Note that a .ts3plugin file is nothing but a ZIP with a different extension. Just unzip it with the tool of your choice.

5. Troubleshooting

Note: Some troubleshooting steps require the Arma3Helper script. See Chapter 4.1 for more info. Alternatively you can use protontricks.

5.1 I have problems with sound and/or thermal vision

See Chapter 4.2

5.2 I still have problems with sound (only for Proton 6.3 and older!)

You have 2 options to achieve the same fix.
You can set the enviromental variable WINEDLLOVERRIDES="xaudio2_7=n" in the Steam startup options (or via the Arma 3 Unix Launcher).

The other way is to set it via ./Arma3Helper.sh winecfg and then under “Libraries”.

5.3 Arma doesnt open or crashes instantly

Run the following command depending on your linux distro to install possibly missing dependencies
Arch Linux based: sudo pacman -S vulkan-tools
Debian/Ubuntu based: sudo apt install mesa-vulkan-drivers vulkan-utils
Fedora: sudo dnf install mesa-vulkan-drivers vulkan-tools

5.4 Command X returns error Y

Double check for software and driver updates as well as the spelling of the commands and the settings. If you still got errors continue to Chapter 5.99

5.99 I still have a problem

More help is available on the ArmaOnUnix Discord
Important: Do not open a issue in ninelore/armaonunix before asking on the Discord!

6. Increasing Performance

6.1 Additional Launch Parameters

Try a combination of one or more of the following to see what works for you the best. Set them as desired via the Arma 3 Unix Launcher or add them to the Steam command line.

  • -noSplash No splash screens. Game startup speedup.
  • -skipIntro Static Background for main manu. Minor game startup speedup.
  • -world=empty Load an empty world for main menu background. Significant game startup speedup.
  • -exThreads=3 for 2 CPU cores or -exThreads=7 for 4 cores or more; Offloads some work onto different threads. Usually a minor FPS Increase.
  • -enableHT enables use of logical cores instead of only physical cores. May improve or harm FPS depending of your PC. Try if it works for you. This is overwritten by -cpuCount.
  • -hugepages Enable huge page size for memory allocation. Try if it works for you.
  • -noLogs Not having to write logs may increase performance, but be sure to disable this if you need to troubleshoot problems.
  • -malloc=<string> Use a particular Memory Allocator (for advanced users, more info here).
  • -cpuCount=1 Reportedly solves some issure for some people but might decrease performance. NOTE: This should be fixed on the arma perf branch and will find its way into the release branch of Arma soon.

6.2 General Linux gaming optimizations

Note: These Tips aren’t exclusive to Arma, but will apply to almost all Linux gaming.

  • Use different desktop enviroment or optimize a slow one:

    • KDE Plasma users can replace kwin with kwin-lowlatency
    • You might want to switch to a slimmer desktop enviroment like XFCE, LXQt or a bare window manager setup (advanced users)
  • Advanced users can build a customized kernel for their system with the help of linux-tkg for performance gains

Epilogue

This Guide was first released in the Armaworld Forums by me. If you have Feedback or Questions dont hesitate to open a Issue.