Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TFAR for Arma 3 Linux Version #1030

Open
BdMdesigN opened this issue Dec 5, 2015 · 43 comments
Open

TFAR for Arma 3 Linux Version #1030

BdMdesigN opened this issue Dec 5, 2015 · 43 comments

Comments

@BdMdesigN
Copy link

Would it be possible get TFAR as a Linux version for the Linux TS Client and ArmA 3 for Linux?

@michail-nikolaev
Copy link
Owner

currently not possible due arma not supports native libs on linux yet

@michail-nikolaev michail-nikolaev added this to the 0.9.9 milestone Dec 6, 2015
@rogerxxxx
Copy link

Although the Linux ARMA 3 client is native Linux/GCC compiled code, what you are saying is the feature for supporting native Linux external libraries is not yet completely written into the Linux ARMA 3 client? (ie. Similar to other features not yet completed, such as Advanced Flight Model Rotolib, BattlEye, and Complete Joystick support.) If I'm correct on my interpretation of my last statement, supposedly version 1.54 Linux/Mac native clients will be released soon and then we'll see how much is completed. Hopefully enough so we can proceed within Linux.

@michail-nikolaev
Copy link
Owner

@rogerxxxx yes, correct.

@ghost
Copy link

ghost commented Sep 17, 2016

Now version 1.58 is out. Are there any new information?

@dedmen dedmen modified the milestones: backlog, 0.9.9 Sep 19, 2016
@zacekjakub
Copy link

Hello, any news please? 1.64v is out for Linux. :) Thank you.

@dedmen
Copy link
Collaborator

dedmen commented Dec 22, 2016

AFAIK Linux client still doesn't support Extensions.. We can't do anything till thats not implemented.

@BryanBoru
Copy link

@zacekjakub I saw the solutions you got in ACE3, which were removing the PBOs dependant on dlls, TFARs effectiveness relies on dlls, I would assume it's capabilities were reliant on them due to the nature of the addon

@zacekjakub
Copy link

Hi, thanks for the answers. So there is no chance rewriting the libraries and compiling it as so's for Linux?

Jakub

@rogerxxxx
Copy link

To paraphrase, think they said any effort is futile until they implement (the upper level) extensions function. (AKA: modules or mods)

In my experience, ARMA 3 for Linux works extremely well aside from a few missing or required Steam related library environmental variables (eg. LD_LIBRARY_PATH=/usr/lib32:/usr/lib64:/usr/lib32/apulse steam). But ARMA 3 for Linux is significantly stripped of such features as likely this extension feature, native joystick support, BattlEye, native support for microphone/recording(?) etc; that ARMA 3 for Linux is really not enjoyable to play with on Linux if you have a Windows OS available. What drives ARMA 3 for Linux further down in popularity, ARMA 3 for Linux is always exactly one version release behind ARMA 3 Windows released version almost to the date of each release. (As if saying Linux were not good enough.)

And what further irritates me, is having to deal with all the childish ARMA 3 Windows server admins. (It was more fun to play with the mature folks crowd.)

So to paraphrase and guessing from the past workflow of Bohemia Interactive, these features will likely be eventually overcome directly due to popularity unlike other past company's lackings with their Linux products or supposed hearsay Linux ventures. Or, they might all of a sudden drop updating. From what we've heard and seen, multi-platform is definitely a main goal.

@dedmen
Copy link
Collaborator

dedmen commented Dec 23, 2016

Compiling TFAR for Linux is not really straight forward... For example all communication between Arma and Teamspeak is using Windows exclusive API's so that would need to be fully rewritten.
Also no one of the Dev's is on Linux.. so we would have to setup a VM or something to even compile it.
Also as Linux is always one or two version behind we can never make sure that even the SQF scripts will work.. Because we may be using script commands that don't exist in the old version.
Thats a lot of hassle for something that basically no one except some beta testers use... Because Linux being a version behind you are unable to play together with the rest 98% of Arma players that are on the recent version on Arma.
So.. I can tell you.. Linux TFAR priority is verrrryyyy loooooooooow.

@Davilka
Copy link

Davilka commented Jun 14, 2017

Count me in beta-testers of linux version of TFAR!

@Frozen-byte
Copy link

Frozen-byte commented Nov 15, 2017

FYI: ArmA3 Linux branch is now Up-To-Date (1.76): https://dev.arma3.com/post/sitrep-00206

I'd love to see more Linux-Support in the most common mods. Especially TFAR!

@dedmen
Copy link
Collaborator

dedmen commented Nov 16, 2017

Linux branch will stay up to date for 14 days. The priority for Linux version is now just below the priority for getting 1.0 released.
But nothing really changed on the hardness to do it.
Although.. Quite some stuff from my last post here changed. A lot of windows only stuff was rewritten and should now be easy to replace that stuff with a linux version

@rogerxxxx
Copy link

rogerxxxx commented Nov 17, 2017 via email

@dedmen dedmen modified the milestones: backlog, 1.0.1 Nov 17, 2017
@sonicpp
Copy link

sonicpp commented Mar 14, 2018

Arma3 Linux branch is now Up-To-Date again (1.80): guys can I help you somehow?

@Nivelfacile
Copy link

Im just another linux user interested in this, any news?

@Preisschild
Copy link

we might get our final version parity in the near future, anything being done to support linux or do you guys have some problem?

@dedmen
Copy link
Collaborator

dedmen commented Aug 5, 2018

As I said yesterday no big priority now as we want 1.0 out first.
Linux compat shouldn't be alot of work.

@theparrow
Copy link

No news? When I open teamspeak on my Linux computer it has addons option in setting. So is there maybe something possible now?

@dedmen
Copy link
Collaborator

dedmen commented Jan 1, 2019

@theparrow teamspeak was never the problem.
Arma linux client doesn't support it. And BI suspended the further development of the Linux client, so it might never actually happen.

@theparrow
Copy link

Darn I didn't know that. Man as soon as I fell in love with Linux. Guess it's time to vm windows 10 and get arma back.

@Viti0
Copy link

Viti0 commented Mar 13, 2019

Well, with Proton Arma is perfectly playable with all mods including TFAR on non-battleye servers once you do one or two tweaks. Is there a way to make it work for a linux TFAR TS plugin to communicate with a Proton Arma TFAR plugin?

@dedmen
Copy link
Collaborator

dedmen commented Mar 13, 2019

Is there a way to make it work for a linux TFAR TS plugin to communicate with a Proton Arma TFAR plugin

No. But you could try running Teamspeak in Wine/Proton and see if that connects.

@Viti0
Copy link

Viti0 commented Mar 14, 2019

I'll be damned, that actually works! Needs to be the same Wine/Proton bottle apparently and I had to tell Proton TS3 to use Direct sound for incoming/outgoing audio. I installed Proton TS3 using the Arma Proton bottle and it using the following script:

#!/usr/bin/env python
import os
import sys

home = os.environ["HOME"]
os.environ["STEAM_COMPAT_DATA_PATH"] = "/home/tacshen/.steam/steam/steamapps/compatdata/107410"

run = "run"
exe = "\"" + "/home/tacshen/.steam/steam/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/Local Settings/Application Data/TeamSpeak 3 Client/ts3client_win64.exe\""
cmd = "\"" + "/home/tacshen/.steam/steam/steamapps/common/Proton 3.16 Beta/proton\" "+ run + " " + exe

for arg in sys.argv[1:]:
cmd += " " + arg

os.system(cmd)

@gabevenberg
Copy link

@tacshen Could you explain what that script is doing/how to use it? I seem to have borked my install and will need to re-install proton bottle from scratch, and would like to do it the right way.

@dedmen dedmen pinned this issue Apr 13, 2019
@DrymarchonShaun
Copy link

@Viti0 that script works great to get ts to launch, but when i try to connect to a server, it gives an error of Failed to connect to server: trying to connect to a server with an unsupported ip protocol. did you run into this?

@DrymarchonShaun
Copy link

DrymarchonShaun commented Aug 7, 2020

I've made progress. I have played a few hours with tfar and it almost works. teamspeak crashes randomly, and i think tfar is at fault. (cut some repeats of the errors out so it isn't as long.) If someone knows how to read teamspeak crashdumps, i can send one or two from different points in which it crashed.


==================================================================================================================================

2020-08-07 00:47:04.008405|INFO    |              |   |TeamSpeak Client 3.5.3 (2020-05-06 09:07:50)
2020-08-07 00:47:04.009069|INFO    |              |   |SystemInformation: Windows 10 (17763) x64 (AMD or Intel) Binary: 64bit
2020-08-07 00:47:04.009092|INFO    |              |   |Using hardware aes
2020-08-07 00:47:04.038009|DEBUG   |Direct Sound  |   |setting timer resolution to 1ms - 
2020-08-07 00:47:04.354843|INFO    |ClientUI      |   |OpenGL Info: LibGLES, Vendor: Google Inc., Renderer: ANGLE (NVIDIA GeForce GTX 1660 Ti Direct3D11 vs_5_0 ps_5_0), Version: OpenGL ES 2.0 (ANGLE 2.1.0.57ea533f79a7)
2020-08-07 00:47:04.473225|INFO    |Addons        |   |Checking for addon updates...
2020-08-07 00:47:04.536884|INFO    |Plugins       |   |Loading plugin: acre2_win64.dll
2020-08-07 00:47:04.554125|INFO    |Plugins       |   |Loading plugin: gamepad_joystick_win64.dll
2020-08-07 00:47:04.559594|INFO    |Plugins       |   |Loading plugin: clientquery_plugin_win64.dll
2020-08-07 00:47:04.564609|INFO    |Plugins       |   |Loading plugin: task_force_radio_win64.dll
2020-08-07 00:47:04.605240|INFO    |task_force_radio|141|registerPluginID: {6afb1877-596d-4968-8609-6cdfa78cab96}
2020-08-07 00:47:04.606607|INFO    |Plugins       |   |Loading plugin: teamspeak_control_plugin_win64.dll
2020-08-07 00:47:04.710565|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - enter - DeviceDeleteList
2020-08-07 00:47:04.710616|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - leave - DeviceDeleteList
2020-08-07 00:47:04.744420|INFO    |Addon         |   |Addon up to date.
2020-08-07 00:47:04.837109|INFO    |              |   |*** Time [BUILD_GUI]: 123
2020-08-07 00:47:04.879285|INFO    |              |   |*** Time [SERVERVIEW]: 171
2020-08-07 00:47:04.886365|INFO    |              |   |*** Time [SERVERVIEWMANAGER]: 186
2020-08-07 00:47:04.916530|INFO    |Addon         |   |Addon up to date.
2020-08-07 00:47:04.994907|INFO    |              |   |*** Time [MAINWINDOW]: 1003
2020-08-07 00:47:04.994962|INFO    |              |   |*** Time [INIT]: 1004
2020-08-07 00:47:05.006850|INFO    |ClientUI      |   |Qt version: 5.12.3
2020-08-07 00:47:05.006898|INFO    |ClientUI      |   |Using configuration location: C:\users\steamuser\Application Data\TS3Client\settings.db
2020-08-07 00:47:05.091838|INFO    |Addon         |   |Addon up to date.
2020-08-07 00:47:05.494384|INFO    |ClientUI      |   |Last update check was: Thu Aug 6 14:02:47 2020
2020-08-07 00:47:05.494637|INFO    |              |   |Statistics report: Not yet, next report on Sat Aug 22 16:49:05 2020
2020-08-07 00:47:05.494700|INFO    |Bookmarks     |   |Collecting autoconnect bookmarks
2020-08-07 00:47:05.987359|INFO    |Newsticker    |   |Newsticker next check: Fri Aug 7 22:27:09 2020 GMT
2020-08-07 00:47:06.429614|ERROR   |task_force_radio|141|Can't get server name : not connected
2020-08-07 00:47:09.608712|INFO    |ClientUI      |1  |Connect to server: 206.221.183.138
2020-08-07 00:47:09.609295|INFO    |ClientUI      |1  |Initiating connection: 206.221.183.138:9987
2020-08-07 00:47:09.615705|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - enter - DeviceDeleteList
2020-08-07 00:47:09.615748|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - leave - DeviceDeleteList
2020-08-07 00:47:09.666012|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - enter - DeviceDeleteList
2020-08-07 00:47:09.666060|DEVELOP |Windows Audio Session|   |DeviceDeleteList::wait_for_deletes - leave - DeviceDeleteList
2020-08-07 00:47:09.708177|INFO    |ClientUI      |1  |Connect status: Connecting
2020-08-07 00:47:09.711014|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:09.711050|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:09.711072|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:09.735537|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.479541|ERROR   |task_force_radio|141|Can't get server name : not connected
2020-08-07 00:47:14.525831|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.525862|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.526173|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.526205|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.526230|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.548789|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.548930|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.548960|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.550835|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.550965|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.550992|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.595184|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.595247|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.595269|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.595596|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.595623|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.595639|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.639495|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.639646|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.639677|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.640087|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.640118|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.640145|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.646236|DEVELOP |PktHandler    |1  |Puzzle solve time: 5
2020-08-07 00:47:14.685745|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.685869|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.685907|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.706860|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.706957|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.706986|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.708931|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.709038|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.709073|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:14.709292|INFO    |task_force_radio|141|Can't get current channel : not connected
2020-08-07 00:47:14.709320|WARNING |Plugins       |   |Plugin failed to unmute clients
2020-08-07 00:47:14.709350|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:15.091597|INFO    |task_force_radio|141|can't center client : not connected
2020-08-07 00:47:15.136459|INFO    |ClientUI      |1  |Connect status: Establishing connection
2020-08-07 00:47:15.140037|INFO    |task_force_radio|141|can't center client : invalid clientID
2020-08-07 00:47:15.175556|INFO    |              |   |Failed to download remote image: Host www.domain.tld not found 3
2020-08-07 00:47:15.183605|INFO    |task_force_radio|141|can't center client : invalid clientID
2020-08-07 00:47:15.185371|INFO    |task_force_radio|141|can't center client : invalid clientID
2020-08-07 00:47:15.209576|INFO    |task_force_radio|141|can't center client : invalid clientID
2020-08-07 00:47:15.209982|INFO    |task_force_radio|141|can't center client : invalid clientID
2020-08-07 00:47:15.661308|INFO    |task_force_radio|141|can't center client : invalid clientID```

@GangolfOvaert
Copy link

Just found a work arround for it.

Installed Arma 3 with Lutris (Wine / Steam) and installed in the same prefix Java, Teamspeak and Arma3Sync.

Task Force Radio can connect to the Teamspeak in the same prefix and works fine as far as i can see.

@dedmen dedmen changed the title TFAR for ArmA 3 Linux Version TFAR for Arma 3 Linux Version Aug 25, 2020
@Franarroutado
Copy link

Franarroutado commented Sep 2, 2020

Kudos for GangolfOvaert and Viti0... based on your comments I was able to make it run in Steam without any issues.
This is how I have done it:

  • Viti0's script is brilliant, the only bit necessary is to configure it in a way it runs in the same prefix than Arma 3
  • I have been carefully reading the logs of my Arma 3 launcher and luckily I saw the following traces:
This build is licensed to 'Bohemia Interactive a.s.' for use within the scope of the following projects/products: 'All'.
This build is licensed to 'Bohemia Interactive a.s.' for use within the scope of the following projects/products: 'All'.
conf file: "<myHomeDirectory>/.config/a3unixlauncher/launcher.conf"
Running Arma:
env SteamGameId=107410 LD_PRELOAD=<myHomeDirectory>/.steam/steam/ubuntu12_64/gameoverlayrenderer.so 
STEAM_COMPAT_DATA_PATH="/srv<myHomeDirectory>/.local/share/SteamLibrary/steamapps/compatdata/107410" 
"<myHomeDirectory>/.steam/steam/steamapps/common/Proton 5.0/proton" run "/srv<myHomeDirectory>/.local/share/SteamLibrary/steamapps/common/Arma 3/arma3_x64.exe"  -cpuCount=6 -exThreads=7 -noSplash -skipIntro
Running Arma:
env SteamGameId=107410 LD_PRELOAD=<myHomeDirectory>/.steam/steam/ubuntu12_64/gameoverlayrenderer.so STEAM_COMPAT_DATA_PATH="/srv<myHomeDirectory>/.local/share/SteamLibrary/steamapps/compatdata/107410" "<myHomeDirectory>/.steam/steam/steamapps/common/Proton 5.0/proton" run "/srv<myHomeDirectory>/.local/share/SteamLibrary/steamapps/common/Arma 3/arma3_x64.exe"  -cpuCount=6 -exThreads=7 -noSplash -skipIntro
  • Based on the previous execution command, the launcher is using few more environments parameters than Viti0's script.

    • SteamGameId, LD_PRELOAD, STEAM_COMPAT_DATA_PATH.
  • So, based on the previous findings... by adding the previous variables into Viti0's script:

#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]
os.environ["STEAM_COMPAT_DATA_PATH"] = "/<myHomeDirectory>/.local/share/SteamLibrary/steamapps/compatdata/107410"
os.environ["SteamGameId"] = "107410"
os.environ["LD_PRELOAD"] = "/<myHomeDirectory>/.steam/steam/ubuntu12_64/gameoverlayrenderer.so"
run = "run"
exe = "\"" +  "/<myHomeDirectory>/.local/share/SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/TeamSpeak 3 Client/ts3client_win64.exe\""
cmd = "\"" + "/<myHomeDirectory>/.local/share/Steam/steamapps/common/Proton 5.0/proton\" "+ run + " " + exe
for arg in sys.argv[1:]:
  cmd += " " + arg
os.system(cmd)

By doing that I was able to run TS and Arma in the same prefix. As a result I could play for many hours without issues. No crashes, no delays in the sound, It is just per-fect!

@Duchys
Copy link

Duchys commented Nov 14, 2020

Hi @Franarroutado,

Could you please explain how exactly do you launch A3 and Teamspeak in the same container with this script?

Since when I attempt to do it, only the first application launcher. For example, when i start the python script Teamspeak opens and when I try to launch arma using the unix launcher, it just exits with the following output:

Running Arma:
env PROTON_NO_ESYNC=1 SteamGameId=107410 LD_PRELOAD=/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so STEAM_COMPAT_DATA_PATH="/mnt/ssd/SteamLibrary/steamapps/compatdata/107410" /home/duchys/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh "/home/duchys/.local/share/Steam/steamapps/common/Proton 5.0/proton" run "/mnt/ssd/SteamLibrary/steamapps/common/Arma 3/arma3_x64.exe"  -name=Duchy -noSplash -skipIntro
pid 62748 != 62747, skipping destruction (fork without exec?)
pid 62749 != 62747, skipping destruction (fork without exec?)
pid 62750 != 62747, skipping destruction (fork without exec?)
pid 62753 != 62747, skipping destruction (fork without exec?)
pid 62752 != 62747, skipping destruction (fork without exec?)
pid 62756 != 62747, skipping destruction (fork without exec?)
pid 62755 != 62747, skipping destruction (fork without exec?)
pid 62759 != 62747, skipping destruction (fork without exec?)
pid 62758 != 62747, skipping destruction (fork without exec?)
pid 62762 != 62747, skipping destruction (fork without exec?)
pid 62761 != 62747, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

When i try to launch it the otherway around, meaning that I start A3 via the A3 Unix Launcher, the python scripts exits with the following, without launching the Teamspeak 3.

ERROR: ld.so: object '/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

below you can find the script I'm using:

#!/usr/bin/env python3
import os
import sys

home = os.environ["HOME"]

os.environ["STEAM_COMPAT_DATA_PATH"] = "/mnt/ssd/SteamLibrary/steamapps/compatdata/107410"
os.environ["SteamGameId"] = "107410"
os.environ["LD_PRELOAD"] = "/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so"


run = "run"
exe = "\"" +  "/mnt/ssd/SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/TeamSpeak3/ts3client_win64.exe\""
cmd = "\"" + "/home/duchys/.steam/steam/steamapps/common/Proton 5.0/proton\" "+ run + " " + exe
for arg in sys.argv[1:]:
  cmd += " " + arg
os.system(cmd)

Is there anything I'm missing?

Thank you for any support.

@Duchys
Copy link

Duchys commented Nov 14, 2020

I've resolved my issue, apparently A3UnixLauncher runs the game differently than steam, launching the game though steam with the following parameters works great and the TFAR is now able to connect:
env PROTON_NO_ESYNC=1 SteamGameId=107410 LD_PRELOAD=/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so STEAM_COMPAT_DATA_PATH="/mnt/ssd/SteamLibrary/steamapps/compatdata/107410" -name=UserProfile -noSplash -skipIntro -nolauncher

@DrymarchonShaun
Copy link

DrymarchonShaun commented Nov 18, 2020

@Duchys The script isn't working because you are launching arma with esync disabled, but TeamSpeak still has it enabled. add
os.environ["PROTON_NO_ESYNC"] = "1"
to the script to launch TeamSpeak, and that should fix it. (All programs launched at the same time in the same prefix have to have esync enabled or disabled, but you can't mix the two.)

@grey-liner
Copy link

I've resolved my issue, apparently A3UnixLauncher runs the game differently than steam, launching the game though steam with the following parameters works great and the TFAR is now able to connect:
env PROTON_NO_ESYNC=1 SteamGameId=107410 LD_PRELOAD=/home/duchys/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so STEAM_COMPAT_DATA_PATH="/mnt/ssd/SteamLibrary/steamapps/compatdata/107410" -name=UserProfile -noSplash -skipIntro -nolauncher

I modified the parameters to use my local paths, but was unable to use TFAR.

@Duchys
Copy link

Duchys commented Nov 27, 2020

@Duchys The script isn't working because you are launching arma with esync disabled, but TeamSpeak still has it enabled. add
os.environ["PROTON_NO_ESYNC"] = "1"
to the script to launch TeamSpeak, and that should fix it. (All programs launched at the same time in the same prefix have to have esync enabled or disabled, but you can't mix the two.)

Thanks for pointing that out, had no idea you cannot mix those. Launching Arma 3 through the Arma3UnixLauncher + the python script provided by Franarroutado.

@Duchys
Copy link

Duchys commented Nov 27, 2020

@grey-liner Please provide more thorough feedback.

  1. Does Arma 3 load the TFAR addon?
  2. Does Teamspeak 3 load the TFAR plugin?
  3. Is the Teamspeak 3 and Arma 3 present in the same proton container?
  4. What exactly do you mean by not being able to use TFAR?

Below you can find steps I took to make the install and use the TFAR addon with Arma 3 running in proton.

  1. Download Win64 version of Teamspeak 3 from the official website https://teamspeak.com/en/downloads/
  2. Extract the contents of the TeamSpeak3-Client-win64-.exe to a temporary directory (/tmp/teamspeak3) for example
  3. Run Arma 3 for the first time via the Arma3UnixLauncher.
  4. Go to the following path <path-to-steam>/SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/ in there create directory Teamspeak3
  5. Copy the contents from the temporary directory you've extracted the TeamSpeak3-Client-win64-.exe to the Teamspeak3 directory inside the Arma 3 pfx. For example cp -r /tmp/teamspeak3/* <path-to-steam>/SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/Teamspeak3/.
  6. Extract the contents from @tfar_beta/teamspeak/task_force_radio.ts3_plugin and copy the contents of the "plugins" directory to the Teamspeak3 config/plugins directory inside the Arma 3 pfx. Example path, to which you should copy the contents of SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/Teamspeak3/config/plugins/
  7. Change the owner of the SteamLibrary/steamapps/compatdata/107410/pfx/ to the user you are launching Arma 3 under.
  8. Use the python script provided below (or the python script provided by the good people above this comment :) ) to launch the Windows Teamspeak3 Client.
#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]
os.environ["PROTON_NO_ESYNC"] = "1"
os.environ["STEAM_COMPAT_DATA_PATH"] = "<path-to-steam>/SteamLibrary/steamapps/compatdata/107410"
os.environ["SteamGameId"] = "107410"
os.environ["LD_PRELOAD"] = "/home/<username>/.steam/steam/ubuntu12_64/gameoverlayrenderer.so"
run = "run"
exe = "\"" +  "<path-to-steam>/SteamLibrary/steamapps/compatdata/107410/pfx/drive_c/users/steamuser/AppData/Local/Teamspeak3/ts3client_win64.exe\""
cmd = "\"" + "/home/<username>/.local/share/Steam/steamapps/common/Proton 5.0/proton\" "+ run + " " + exe
for arg in sys.argv[1:]:
  cmd += " " + arg
os.system(cmd)
  1. Verify that the TFAR plugin is installed in teamspeak and enable it
    9.1. Stop Teamspeak3 (in my case Arma 3 has to be started first as starting the Teamspeak 3 first would make Arma 3 unable to start)
  2. Start Arma3 using the Arma3UnixLauncher
    10.1.Enable the following options inside the "Parameters>Basic tab"
Skip intro
Skip logos at startup
Proton: Disable esync

  1. Start Teamspeak3 using the python script
  2. Connect to any multiplayer scenario to verify that TFAR plugin is connected to the Arma 3 addon.
  3. Job well done?

@DrymarchonShaun
Copy link

DrymarchonShaun commented Dec 1, 2020

Thanks for pointing that out, had no idea you cannot mix those. Launching Arma 3 through the Arma3UnixLauncher + the python script provided by Franarroutado.

I only spent a week trying to fix the same issue when i first tried to get it working. ;)

@ninelore
Copy link

I've made a all new Guide on how to play with ACRE or TFAR on Linux (yes, i solved ACRE on Linux) here

I've also took the Script from above and rewrote it in Bash (Download here)

@rogerxxxx
Copy link

Good! I hate Python scripting.

@hbjydev
Copy link

hbjydev commented Jan 30, 2023

@ninelore hopefully this still works, gonna be testing it out later :)

@simonramosb
Copy link

simonramosb commented Apr 14, 2023

@hbjydev @ninelore is this still working? Task force is literally the last thing i need to migrate to hopefully delete windows :P

@Frozen-byte
Copy link

Yes I used TFAR on Linux just yesterday. Still working with the newest version.

@Pockets-byte
Copy link

I can confirm that the script doesn't work for me anymore with the latest update of proton, had to shift to linux teamspeak entirely. has anybody had any sucess getitng tfar to work with the linux client? I'm sick of slow scripts that suck up all my performance and run poorly on top of only working when arma is running

@Frozen-byte
Copy link

Frozen-byte commented Apr 23, 2023

You have to use the guide @ninelore provided to play with TFAR. https://ninelore.org/project/armaonlinux/
You will use Protonwrapper, tho.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests