rankyn/xivlauncher

Project ID: 68076

Description

XIVLauncher.Core Copr build status

XIVLauncher (abbreviated as XL) is a faster launcher for our favorite critically acclaimed MMO, with various available addons and enhancements to the game!

Repos

[ XIVLauncher.Core git: goatcorp/XIVLauncher.Core ]

[ FFXIVQuickLauncher git: goatcorp/FFXIVQuickLauncher ]

[ XIVLauncher4rpm git: rankynbass/XIVLauncher4rpm ]

[ COPR Repo: rankyn/xivlauncher ]


XIVLauncher is functionally the same as the latest flatpak release. I used slightly newer git commits to avoid a bug with version checking, which doesn't apply to native builds. This package is XIVLauncher outside of the sandbox. This makes it possible to run ACT, and easier to set up IINACT, for example. It might also have slightly better performance, depending on system libraries.

This is based on the main branch XIVLauncher4rpm.


XIVLauncher-RB has a few custom patches:

  • Added an App Launcher to the settings tab. This will allow you to set some apps to be launched just prior to the game. For example, ACT, IINACT or winediscordipcbridge.exe (for Discord Rich Presence).
  • Added a button on the Wine tab for a Wine Explorer with WineD3D. Some apps may not like DXVK, so you can use this to launch them without DXVK.
  • Added XL_PATH environment variable. This will let you specify an alternate directory for the xlcore folder. So instead of using the default ~/.xlcore, you can use XL_PATH=~/.local/share/xlcore, for example. This will create a completely new folder, so you'll need to configure it to point to the correct ffxiv game and config folders. This may help with multiboxing, since you can run multiple copies of the game from different prefixes / wine installs.
  • Added a DXVK tab to Settings. This has all the DXVK settings now. Default version is 1.10.1, but you can try out .2, .3, or even the new 2.0 version. Be aware that Reshade, GShade, and Dalamud may all have issues with 2.0. I haven't had issues in my testing with GShade, but use at your own risk. If the game doesn't launch, or is glitchy, change this back to one of the 1.10 versions.
  • Hud options and Async option have been moved to DXVK tab. Frame rate limit has also been added.
  • WineD3D can now be enabled from the Wine tab. Not recommended, but it's there.
  • Font size can be adjusted (requires restart).

You can't install XIVLauncher and XIVLauncher-RB at the same time. You'll have to uninstall one before installing the other.

This is based on the RB-patched branch of XIVLauncher4rpm. If you would prefer to install a flatpak version of this release, try this: FLATPAK


XIVLauncher-git package is available for testing purposes. XIVLauncher-git can be installed side-by-side with the release package. It will install into /opt/XIVLauncher-git, with launcher script at /usr/bin/xivlauncher-git and similarly named desktop and icon files. Don't expect it to work all the time, and don't report problems with them in the official Discord without mentioning which package you are using.

  • XL_PATH patch - You can now use the environment variable XL_PATH to set a path for the xlcore directory. For example, XL_PATH=$HOME/.local/share/xlcore to conform with XDG directory structure.
  • DXVK switcher - You can now choose between 1.10.1, .2, .3, and 2.0
  • Use XL_FORCE_WINED3D=1 to use WineD3D (openGL-based) instead of DXVK. I don't recommend it, but it's there.
  • The titlebar now says "RB-Unofficial" at the end to indicate that you're not running the default launcher.
  • XIVLauncher-git is versioned off the timestamp of the latest commit from when the repo was cloned (UTC).

This is based on the canary branch of XIVLauncher4rpm.


Installation Instructions

Fedora

Install

sudo dnf copr enable rankyn/xivlauncher sudo dnf install XIVLauncher

Uninstall

sudo dnf remove XIVLauncher sudo dnf copr remove rankyn/xivlauncher

openSUSE

There are repos for tumbleweed and LEAP 15.4. If you ever have problems with the repo not refreshing properly (not seeing a new update, for example), just uninstall and reinstall the repo. You can get the repo links from the buttons at the bottom of the page, or from the instructions directly below.

Install

sudo zypper addrepo -r https://copr.fedorainfracloud.org/coprs/rankyn/xivlauncher/repo/opensuse-tumbleweed/rankyn-xivlauncher-opensuse-tumbleweed.repo # or sudo zypper addrepo -r https://copr.fedorainfracloud.org/coprs/rankyn/xivlauncher/repo/opensuse-leap-15.4/rankyn-xivlauncher-opensuse-leap-15.4.repo sudo zypper install XIVLauncher

Uninstall

sudo zypper remove XIVLauncher sudo zypper removerepo copr:copr.fedorainfracloud.org:rankyn:xivlauncher

Enterprise Linux (EL9 Only)

Red Hat, Rocky Linux, AlmaLinux, etc.

It's not really possible to get this running on el8 due glibc being too old. You'd have to rebuild ALL el8 packages against a new version of glibc. It will run on el9 with an additional copr repo. I had to grab source rpms from the fedora repos and build them for rhel9, since they were removed from the default repos. Tested on Rocky Linux 9. XIVLauncher launches, but I didn't install the game or try to play.

First enable the EPEL repository. Instructions: [Red Hat] [Rocky Linux] [AlmaLinux]

Install

sudo dnf copr enable rankyn/xl-deps-el9 sudo dnf copr enable rankyn/xivlauncher sudo dnf install XIVLauncher

Uninstall

sudo dnf remove XIVLauncher sudo dnf copr remove rankyn/xivlauncher

If you wish to remove the dependencies as well, you can do this:

sudo dnf remove aria2 libFAudio jxrlib sudo dnf copr remove rankyn/xl-deps-el9

Configuration Info

First run

After install, you should can the /usr/bin/xivlauncher script, either from the terminal or from the .desktop file (which should show up in your desktop menu as "XIVLauncher Native"). This will launch XIVLauncher.Core. Alternativly, you can run /usr/bin/xivlauncher custom (or desktop menu item "XIVLauncher Custom"), which will create run a user-modifiable script at ~/.local/bin/xivlauncher-custom.sh, creating it first if it doesn't already exist. You can edit xivlauncher-custom.sh to add environment variables and call other programs. For example, you could use it to call gamescope or launch an IPC bridge for discord, as well as simpler things like turning on MANGOHUD or adding a frame rate limit. This script file will not be changed when you upgrade, so your changes will be saved.

Another script is included at /opt/XIVLauncher/cleanupprofile.sh which can clean up your ~.xlcore folder and improve performance/compatibility with the native XIVLauncher install. If you are upgrading from 1.0.1.0-2 or earlier, or moving from the flatpak install, you should run this. Running this script will delete a few of the folders in ~/.xlcore. When you run XIVLauncher those folders will be recreated with fresh versions. This may break the flatpak install! If you are trying to switch back and forth between native and flatpak, you may have to run this script each time you switch. If you are running a custom version of wine, this script is not necessary.

Non-Steam Configuration

The program installs to /opt/XIVLauncher. A .desktop file is included at /usr/share/applications/XIVLauncher.desktop, but it might need to be tweaked for your installation. You can also launch it from the terminal with /usr/bin/xivlauncher. If you have a non-steam account and you'd like to still launch with steam, follow the instructions below, but leave off the stuff after %command% in the launch options, and make sure Use Steam Service is unchecked in the launcher.

Steam Configuration

If you are using steam, you can add a non-Steam game and find "XIVLauncher (native)", or browse to /usr/bin/xivlauncher. Then add this to the launch options: --parent-expose-pids --parent-share-pids --parent-pid=1. If you want to add environment variables or make other changes to the command line, consider editing the `~/.local/bin/xivlauncher-custom.sh script instead of the Steam launch options, since that's the script being called anyway.

Start the launcher, and on the main page, make sure "Use Steam Service" is checked. Also, the launcher sometimes does not properly close, and will show itself as still running after you exit the game. You can just click the STOP button to fix it, or right-click and STOP.

If you want an icon for XIVLauncher in the library list, you can find one at /opt/XIVLauncher/xivlauncher.png, and a custom logo at /opt/XIVLauncher/xivlogo.png

Notes on switching from Lutris or traditional Steam installation

If you installed FFXIV through Lutris or through the normal Steam installer, you do not have to redownload the game files or redo your user interface. Instead, launch XIVLauncher and click the gear icon. You can then set the game path and Game config path to point to your old installation. Or you can move/copy/symlink the folders to ~/.xlcore. See XL Troubleshooting for more help with this.

More Info

You can find more information about the official (flatpak) version of XIVLauncher at XIVLauncher Help. Much of the information there applies to this native install as well. You can also join the Discord Server. Linux support can be obtained in the #linux-and-deck channel (don't use the #xivlauncher-help channel).


Building it yourself

Fedora setup

By default, Fedora will want to build in ~/rpmbuild. If it's somewhere different for your setup, replace ~/rpmbuild with your own build directory. When you clone the git repository from github, DO NOT clone it into this folder, do it somewhere else.

Download the required development packages:

sudo dnf rpmdevtools rpm-build

Set up the build directories if they don't already exist (~/rpmbuild and subfolders). Run the command rpmdev-setuptree. Do NOT run with sudo/root access. You want to make these directories in your own home folder.

Install dotnet-sdk-6.0, which is needed for the build, with sudo dnf install dotnet-sdk-6.0.

OpenSUSE setup

This is almost the same as Fedora, just with one extra step. Dotnet is not in the openSUSE repos, so you need to add a Microsoft repo. This can be done as follows:

sudo zypper install libicu sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo zypper ar https://packages.microsoft.com/config/opensuse/15/prod.repo sudo install dotnet-sdk-6.0

After that, install rpm build packages with sudo zypper in rpm-build rpmdevtools, and run rpmdev-setuptree (NOT as root).

Compiling the code

Use git clone to grab the source code. I use a folder called ~/build for compiling various git repos, so that's what I'll do here. But you can use any folder you have read/write access to.

mkdir -p ~/build cd ~/build git clone https://github.com/rankynbass/XIVLauncher4rpm.git cd XIVLauncher4rpm

Now you can build the rpms. First, download the tarballs by using the included script, then build with rpmbuild. The third option is actually what the COPR build system does. It uses .copr/Makefile to install dependencies for making the binary, then calls the getsources script, then executes rpmbuild -bs. It then passes the src.rpm off to the various build environments for different distros. However, even if you have src.rpms, you still need to have internet access. The dotnet publish command needs to grab some remote packages. For manual builds, thats obviously not an issue, since you just cloned the repo. But for remote builds with copr, or with opensuse's OBS (I haven't tried this one yet), you'll need to make sure the builder has internet access. (version and release are listed in the _version file in lines 3 and 4. As of Sep 5, 2022, these are 1.0.1.0 and 4.)

Run the script .copr/getsources.sh and then do one of the following:

rpmbuild -ba --undefine='dist' XIVLauncher4rpm.spec # Build binary and source rpms

OR

rpmbuild -bb --undefine='dist' XIVLauncher4rpm.spec # Build binary only

OR

rpmbuild -bs --undefine='dist' XIVLauncher4rpm.spec # Build source rpm rpmbuild -rb --undefine='dist' ~/rpmbuild/SRPMS/XIVLauncher-version-release.src.rpm # Build binary from source rpm.

By default, Fedora will put a .f36 or similar after the version-release for both the rpm and src.rpm. OpenSUSE may add something like .opensuse.tw, but did not do so during my testing. The COPR build system does put the distro in the rpm name. If you want to edit this macro definition yourself, you can pass --define='dist .mydistro'. The "." is important, as otherwise you'll get something like XIVLauncher-1.0.1.0-4mydistro.x86_64.rpm. Or you can pass --undefine='dist' (as above) to make it blank.

In the end you should have an rpm file in ~/rpmbuild/RPMS/x86_64/ called XIVLauncher-version-release.x86_64.rpm. If you build sources as well, that will be in ~/rpmbuild/SRPMS/.

Install with sudo rpm -i ~/rpmbuild/RPMS/x86_64/XIVLauncher-version-release.rpm.

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
EPEL 9 x86_64 (41)* EPEL 9 (3 downloads)
Fedora 35 x86_64 (46)* Fedora 35 (0 downloads)
Fedora 36 x86_64 (1338)* Fedora 36 (147 downloads)
Fedora 37 x86_64 (448)* Fedora 37 (97 downloads)
openSUSE Leap 15.4 x86_64 [modified] (0)* openSUSE Leap 15.4 (3 downloads)
openSUSE Tumbleweed x86_64 [modified] (190)* openSUSE Tumbleweed (43 downloads)

* Total number of packages downloaded in the last seven days.