Difference between revisions of "Setting Up FAF Linux"
("Issues with the game" section added) |
|||
Line 353: | Line 353: | ||
'''Solution:'''<br /> | '''Solution:'''<br /> | ||
Run winecfg and configure your Proton/wine or vanilla Wine. | Run winecfg and configure your Proton/wine or vanilla Wine. | ||
− | export WINEPREFIX="/home/ | + | export WINEPREFIX="/home/your_linux_user_name/.local/share/Steam/steamapps/compatdata/9420/pfx/" |
winecfg | winecfg | ||
Graphics -> "Emulate a virtual desktop" -> Desktop Size: your native resolution | Graphics -> "Emulate a virtual desktop" -> Desktop Size: your native resolution |
Revision as of 18:59, 10 May 2019
This wiki article details the installation of the Supreme Commander: Forged Alliance game and the Forged Alliance Forever (FAF) clients on Linux.
Contents
Contact
If you have questions please contact the community:
FAF forum Linux support thread
The official FAF Discord Channel: #technical-help - Discord invite
About the game
Supreme Commander: Forged Alliance game runs under Linux using wine.
You only need the Supreme Commander: Forged Alliance game and the #Java Downlord's Client to be able to play in the FAF community. The game is available on Steam
About the clients
There are two FAF clients available but only the Downlords client compatible with the current FAF server. The client can handle the communication between players (IRC), launching team and 1v1 lobbies/games, downloading community mods and maps, patching the game, etc.
- The new Java Downlord's client
- This client was introduced as the official client in 2018 replacing the Python client. The client is built upon Java.
- The legacy Python client
- This client doesn't work anymore. Its development has stopped and it has become incompatible with the current FAF server. The client is built upon Python.
Both of the clients run on Linux. Please refer to the clients' own section in this article for more information.
Install Supreme Commander: Forged Alliance
You can install the game with the following methods:
- Using Linux Steam (RECOMMENDED For the Java client) #Install using native Steam
- Native Linux Steam can install the game and the necessary Windows DLLs, libraries for running it.
- Steam's compatibility tool (Proton/Wine) will be able to run the game.
- Using Windows Steam via Wine
- Windows Steam can install the game and the necessary Windows DLLs, libraries for running it.
- The disadvantage of this method is that you have to deal with Windows Steam that has certain known bugs with Wine (logging in, downloading games). You can manage to do it but it's a hassle.
- Using Linux SteamCMD
- It's basically the same as the first one but you have to install SteamCMD and know SteamCMD commands.
- Not recommended since native Linux Steam is much more convenient.
- Using Windows SteamCMD via Wine
- It's basically the same as the second one but you have to install SteamCMD and know SteamCMD commands.
- It can be less a hassle but certain Windows Steam bugs might still appear.
- Using Lutris
- Lutris has a UI and uses SteamCMD (and your Steam account) to install Steam games in a Wine environment.
- Using retail copy of the game ISO, DVD via Wine
- Just launch the install of the DVD in a Wine environment. You will have to add the necessary Windows DLLs and libraries manually in Wine.
- NOTE: When using the FAF clients, the clients will prompt you to link your Steam account to FAF to prevent duplicated accounts and malicious users joining the FAF community.
- You will have to register the serial number of your game in Steam. This means that illegal copies of the ISO will not work, in this case buy the game on Steam, it's cheap.
Install using native Steam
Set your Steam client
Steam -> Settings -> Steam Play -> under Advanced -> "Enable Steam Play for all other titles"
Install the game, set launch options
Set the following launch options, then start the game from Steam
Properties -> Set Launch Options -> set this:
PROTON_NO_ESYNC=1 PROTON_DUMP_DEBUG_COMMANDS=1 %command%
PROTON_NO_ESYNC will solve slow video playback problems in the main menu and other places.
PROTON_DUMP_DEBUG_COMMANDS will generate a RUN script for your game that you will be able to use later.
Properties -> Force the use of a specific Steam Play compatibility tool:
Proton 3.16-9 Beta (or less)
Proton 4.2-3 causes desync issues during playing the game.
Proceed with the installation of the Java Client after this. #Java Downlord's Client
File Locations
Game directory:
~/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/
Game perf file:
~/.steam/steam/steamapps/compatdata/9420/pfx/drive_c/users/steamuser/Local Settings/Application Data/Gas Powered Games/Supreme Commander Forged Alliance/Game.prefs
WINEPREFIX:
~/.steam/steam/steamapps/compatdata/9420/pfx
Install using SteamCMD
You can download FA using a steam installation in wine. The following steps describe how to download FA using steamcmd on Arch Linux:
Install steamcmd:
yaourt -S steamcmd
Now you need to run steamcmd once as root to let it install its updates:
sudo steamcmd
now run steamcmd as your normal user to download your copy of FA and run the following commands in its shell:
login [my_steam_username] @sSteamCmdForcePlatformType windows force_install_dir [my/desired/installlocation] app_update 9420 validate
Install using the retail ISO
Just launch the setup from the CD (ISO).
After installation
Run
winecfg
and enable "emulate virtual screen" option in graphics tab and enter you display resolution.
After installation run the game without the client, setup graphics and make sure everything works like sound etc.
The bloom renderer graphics setting may not work.
If the game does not start again, delete the #Game.prefs
If the game crashs with the following error:
CD3DDeviceResources::DevResInitResources: Unable to load effect file /effects/cartographic.fx
install d3dx9 using winetricks:
winetricks dlls d3dx9
If you have no sound install xact audio:
winetricks dlls xact
File Locations
Game.prefs
Your game.prefs contains all game settings, like graphics settings, keybindings and active UI mods. It is located at
~/.wine/drive_c/users/USER/Local Settings/Application Data/Gas Powered Games/Supreme Commander Forged Alliance/Game.prefs
but this path depends on your WINEPREFIX and probably on the Windows version you set up in wine.
Java Downlord's Client
Please #Contact the community for more information.
Script Installation
Currently there is a bash script for installing everything you need (including the game itself). It works on Ubuntu and other distributions as well: atsujb/installFAFscript
This is the fastest way to start playing but please note that this script upgrades your Ubuntu distribution (ex: 18.10 -> 19.04). This you may not want.
Manual Installation
The followings are a step by step example installation on Ubuntu 18.xx, it's built upon a native Steam installation of the game.
Download the Java FAF client
Download the latest Java FAF client (currently it is v0.10.0-beta)
URL: https://github.com/FAForever/downlords-faf-client/releases
File name: _dfc_unix_0_10_0-beta.tar.gz
Extract it to ~/Games/javaFafClient/
Download openJDK 10
URL: https://jdk.java.net/archive/
File name: openjdk-10.0.2_linux-x64_bin.tar.gz
Extract it to ~/Games/javaFafClient/
Note: Ubuntu repositories don't have Java 10 so you have to use this. There is no need to install it from unofficial PPAs etc...
Note: Recommended directory for jdk is /usr/lib/jvm/, but we are not using that for simplicity.
If the archive site doesn't work, your other options are:
http://forums.faforever.com/viewtopic.php?f=2&t=4507&p=174037#p174037
Set execute flags
Open a terminal and set execute flags for the following files
cd ~/Games/javaFafClient/downlords-faf-client-0.10.0-beta/ sudo chmod +x downlords-faf-client sudo chmod +x ./lib/faf-uid
Set INSTALL4J_JAVA_HOME
In the same terminal, set the INSTALL4J_JAVA_HOME environment variable
export INSTALL4J_JAVA_HOME=~/Games/javaFafClient/jdk-10.0.2
At this point you should be able to run the FAF client. Please test this:
./downlords-faf-client
Note: You will need to set the INSTALL4J_JAVA_HOME environment variable every time you open a new terminal. Alternatively, it is possible to create your own bash script for starting the client or to append the export command to your .bashrc file.
Copy the Steam RUN script
If you ran the game from Steam you should have a file called "run" in /tmp/proton_your_linux_username. The tmp directory is only temporary so copy this file to somewhere nice.
cp /tmp/proton_test1/run ~/Games/javaFafClient/downlords-faf-client-0.10.0-beta/
If you cannot find the run file, please check your Steam settings again. #Install the game, set launch options
Note: This file contains the environment variables for Proton that are necessary to launch the game in a Proton/Wine environment. The FAF client will use this file to launch the game after we set it.
Create symbolic links for Maps and Mods
Create symbolic links for Maps and Mods directories
cd ~/.steam/steam/steamapps/common/Supreme\ Commander\ Forged\ Alliance/ ln -s ~/My\ Games/Gas\ Powered\ Games/Supreme\ Commander\ Forged\ Alliance/Maps/ Maps ln -s ~/My\ Games/Gas\ Powered\ Games/Supreme\ Commander\ Forged\ Alliance/Mods/ Mods
Note: There is already a "maps" directory in ~/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/. This contains the original maps of the game and the game expects to see the community maps here too that are downloaded by the client. So you need only one "maps" directory here.
Solution: Copy the content of the "maps" directory to the "Maps" directory and rename/delete the "maps" directory otherwise downloaded maps won't appear in lobbies.
Client Setup
Launch the FAF client
./downlords-faf-client
Settings
Settings -> Forged Alliance Forever Game location:
/home/your_linux_username/.steam/steam/steamapps/common/Supreme Commander Forged Alliance
Advanced, Command line format for executable:
/home/your_linux_username/Games/javaFafClient/downlords-faf-client-0.10.0-beta/run "%s"
Note: The run file mentioned here is the run file you copied earlier from the Steam temporary directory.
Execution directory:
Leave this empty
Try to create a game and wait for the client to patch the FAF executable. At this point everything should work.
File Locations
Configuration directory for the client
It contains logs, client.prefs the configuration file of the client, etc...
~/.faforever
Note: The client.prefs file contains your username and password.
Location of mods and maps downloaded by the client
It needs to be linked: #Create symbolic links for Maps and Mods
~/My Games/Gas Powered Games/Supreme Commander Forged Alliance
The script that launches the client: downlords-faf-client
~/Games/javaFafClient/downlords-faf-client-0.10.4-beta/downlords-faf-client
Legacy Python Client
The community client (the client) is written in Python3/PyQt5, which means that the client runs straight away on Linux.
Installation
Arch Linux
You need AUR access, so install something like yaourt. Then install my package with
yaourt -S python-fafclient
This should install wine as a dependency. Now you can install the game using wine. You can use your default wine prefix or create a new one. A nice UI tool for handling wine prefixes is PlayOnLinux.
Debian/Ubuntu
There's no .deb package yet, please create one. Some discussion about that is in http://forums.faforever.com/viewtopic.php?f=2&t=4507&p=141217&hilit=linux#p141217
Client 0.18.0 runs on Ubuntu 17.04 using system packages only. Install instructions follow:
- Install required packages:
sudo apt-get install python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtmultimedia python3-jsonschema python3-jinja2
- Download the latest client source tar.gz (for example from here)
- Download and install the faf-uid smurf protection executable:
sudo wget https://github.com/FAForever/uid/releases/download/v4.0.5/faf-uid -O /usr/local/bin/faf-uid
sudo chmod +x /usr/local/bin/faf-uid
(Note that faf-uid runs xrandr, lspci, lsblk and uname. You need an lspci version that supports the --json switch, which is util-linux-2.27 or greater.)
- Create a version file:
echo "0.18.0" > res/RELEASE-VERSION
- Run the client (from source root directory):
python3 src/__main__.py
Gentoo
There is an experimental overlay available at https://github.com/Wesmania/faforever, along with installation instructions. You will need layman to set it up. Note that wine is not a dependency of these packages, you will have to install it on your own.
Run from source
See basic instructions at https://github.com/faforever/client#running-on-linux
Client Setup
First thing is to point your client to your game directory using Options -> Settings -> Game Path... If you install FA using the Retail ISO, your game path probably is
~/.wine/drive_c/Program Files/THQ/Gas Powered Games/Supreme Commander - Forged Alliance
When using the steam download, your game path probably is
~/.steam/steam/steamapps/common/ForgedAlliance
I created some client settings so you can adjust how the client starts the game using wine. The are only accessible through the #FA Lobby.ini file while the client is not running (because it overwrites the file on close).
[wine] exe=/usr/bin/wine <- points to your wine binary, defaults to 'wine' prefix=/home/linuxmasterrace/.PlayOnLinux/wineprefix/faf <- points to your WINEPREFIX path, defaults to '~/.wine' cmd_prefix=primusrun <- prefix the program start for something like switchable graphics
File Locations
FA Lobby.ini
The settings file of the client is located at
~/.config/ForgedAllianceForever/FA Lobby.ini
It contains all settings of the client.
Logs
~/FAForever/logs
Look here if something goes wrong.
Maps
Your maps are located at
~/Documents/My Games/Gas Powered Games/Supreme Commander Forged Alliance/Maps
but this path may be altered by the documents directory set up in wine and localization of your system.
Issues with the game
Ladder 1v1 doesn't start, init_faf.lua
Ladder 1v1 doesn't start, the game crashes with a "cannot read init_faf.lua" exception.
Solution:
There is no real fix for this yet but you can run this script:
https://github.com/FAForever/downlords-faf-client/issues/1095#issuecomment-490646613
No sound when the game is minimized
No sound when the game is minimized or running in the background.
Solution:
Run winecfg and configure your Proton/wine or vanilla Wine.
export WINEPREFIX="/home/your_linux_user_name/.local/share/Steam/steamapps/compatdata/9420/pfx/" winecfg
Graphics -> "Emulate a virtual desktop" -> Desktop Size: your native resolution
Mouse cursor flickering
The mouse cursor flickers/disappears.
Solution:
Try the previous one and enable vsync(on) in the game's settings.
Certain effects are not rendered
The game doesn't render certain effects.
Solution:
Use Gallium nine enabled Proton/wine or vanilla Wine
Proton wine is the easiest to install: https://github.com/popsUlfr/Proton/releases
Proton 3.16-6 Gallium Nine Extras 0.3.0 is tested and it works.
Note: You will need to have opensource Mesa drivers for AMD and intel cards that support Gallium Nine (the recent ones in Ubuntu for example) or the opensource Nouveau driver for Nvidia cards
The game crashes at ~45min in game time
The game crashes at ~45min in game time
Solution:
- Turn off the minimap and don't use split view.
- Use Gallium nine enabled Proton/wine or vanilla Wine (see the previous one).
Desync issues
The desync window appears during gameplay.
Solution:
Turn off mods and use appropriate Proton/Wine and vanilla Wine versions. See: