Skip to content

Cross-platform version of XIVLauncher, optimized for Steam Deck

License

Notifications You must be signed in to change notification settings

rankynbass/XIVLauncher.Core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xlcore_sized

XIVLauncher-RB: XIVLauncher.Core with additional patches Discord Shield

Cross-platform version of XIVLauncher for Linux and Steam Deck. Comes with several versions of WINE tuned for FFXIV, as well as Proton and Steam Runtime support.

Changes from XIVLauncher.Core

  1. Proton support. At the moment there are no plans to add proton to XIVLauncher.Core, so if you want to use proton, this is it. To enable proton, go to settings, Wine tab, and change the Installation Type to Steam Runtime with Proton
  2. Preview of various PRs for XIVLauncher.Core: I try to add various feature and bugfix PRs before they get merged.
  3. Wine and DXVK switchers. This feature will hopefully be merged upstream soon. For now, though, you can test it out here.
    • Allows switching between various pre-selected Wine and DXVK versions. DXVK is moved to its own tab.
    • Allows you to easily add new wine and dxvk versions by dropping them in ~/.xlcore/compatibilitytool/wine and ~/.xlcore/compatibilitytool/dxvk, respectively.
  4. Automatic DLSS. You can either use proton, or choose an nvapi version in the DXVK tab. You need to use Wine 9, ValveBE wine, or wine-ge 8-x wine, along with DXVK 2.0+.
  5. Auto-Start other windows programs from the Auto-Start tab. They'll be launched within the same prefix (and container, in the case of proton) just before FFXIV is launched. Only works with windows programs at the moment.
  6. Managed wine includes several versions taken from my github repos at Unofficial Wine-XIV and Wine-GE-XIV in addition to the official versions.

For an up-to-date changelog, see: CHANGELOG.md

Using as a Steam compatibility tool using XLM (recommended for Steam Deck)

XLM is now the recommended way to install XIVLauncher-RB as a compatibility tool. XLM will keep itself and its own copy of XIVLauncher-RB up to date. Instructions are copied from the XLM readme.

Before using any of these scripts, run Steam at least once!

Run one of the following commands to install XIVLauncher-RB as a Steam compatibility tool using XLM. What command you need to run depends on how you have Steam installed.

Steamdeck:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/rankynbass/XIVLauncher.Core/refs/heads/RB-patched/xlm/install-steamdeck.sh)"

Steam (Native)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/rankynbass/XIVLauncher.Core/refs/heads/RB-patched/xlm/install-native.sh)"

Steam (Flatpak)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/rankynbass/XIVLauncher.Core/refs/heads/RB-patched/xlm/install-flatpak.sh)"

Steam (Snap) (Ubuntu 24.04 default)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/rankynbass/XIVLauncher.Core/refs/heads/RB-patched/xlm/install-snap.sh)

After the auto-installer has finished running, follow these steps to use it in Steam:

  1. Switch back to gaming mode (Steam Deck) or restart Steam.
  2. Navigate to your library and select "FINAL FANTASY XIV Online" or "FINAL FANTASY XIV Online Free Trial" (trial and non-steam users).*
  3. Open the game properties menu and switch to the "compatibility" tab.
  4. Enable the "Force the use of a specific Steam Play compatibility tool" checkbox.
  5. From the dropdown that appears select "XLCore [XLM]" (if this does not show, please make sure you restarted Steam first).
  6. You can now launch the game. XIVLauncher-RB will be automatically installed to the compatibilitytools.d directory and start as usual. When you close the game, Steam will recognise this.

* If FFXIV or the FFXIV free trial are not available on Steam in your region, you can technically use any game. Download a free game from steam and set up the controls how you like for FFXIV, and then set up the compatibility tool as above from step 3.

Installing as a compatibility tool from the launcher

Instead of downloading scripts, you can install directly from the launcher. XLM will still keep itself and it's own copy of XIVLauncher-RB up to date.

  1. You'll want to switch to desktop mode and download the latest flatpak file. From the terminal (Konsole) install with flatpak install --user xivlauncher-rb-v1.1.0.2.flatpak (or whatever the latest flatpak file is).
  2. Run XL_USE_STEAM=0 flatpak run dev.rankyn.xivlauncher --deck-install
  3. Restart Steam. This is necessary to get the compatibility tool to register.
  4. In Steam, do the initial install of FFXIV or FFXIV free trial. You do not have to run the official launcher, you just need to have it installed in your steam library.
  5. Go into the FFXIV properties, and go to Compatibility. Check "Force the use of a specific Steam Play compatibility tool", and select "XLCore [XLM]".
  6. You can now launch the game from desktop mode or game mode. Both should work.

Deleting the old compatibility tool

XIVLauncher-RB v1.1.0.13 and earlier contained a different compatibility tool that was not self-updating. You can use the following methods to remove it.

  • From the command line, run the launcher with XL_USE_STEAM flatpak run dev.rankyn.xivlauncher --delete-old (flatpak) or xivlauncher-rb --delete-old (native install, AppImage).
  • Alternately, find your steam compatibility tool path at ~/.steam/root/compatibilitytools.d and delete the xlcore folder. For the flatpak, it'll be at ~/.var/app/com.valvesoftware/Steam/data/Steam/compatibilitytools.d.

Installing Locally (Experimental)

The vast majority of desktop linux distributions will already have all the dependencies of XIVLauncher already installed. I've checked this on HoloIso, official Steam Deck, Bazzite, Ubuntu 22.04, and Fedora KDE spin, and all of them can launch XIVLauncher out of the box. As such, I've created a local install script which will create a .desktop entry in your application menu. This will use XLM to keep XIVLauncher-RB up-to-date and launch the game.

This is experimental, and may not be quite ready yet.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/rankynbass/XIVLauncher.Core/refs/heads/RB-patched/xlm/install-local.sh)"

Using the AppImage

I've started creating AppImages as well. These have worked on the Steam Deck in my testing, although there are a couple of minor issues.

  1. Download the AppImage tarball and extract somewhere.
  2. Run the included install.sh script. This will move the AppImage to ~/Applications and create a .desktop entry in your menus.
  3. The desktop shortcut can now be added to steam the same way you'd do with the official Flatpak, without the need for the extra parameters. You will still need the XL_SECRET_PROVIDER=file if you want to save passwords in Game Mode.
  4. Do not hilight the AppImage file in your file browser and launch with the enter key. It launches multiple copies, for some unknown reason. Double-clicking on it, or launching from the terminal or desktop file all work fine, however.

If you're having trouble, you can join the XIVLauncher Discord server, grab the Steam Deck & Linux and join the #xlcore-questions channel. I'm online most days and can usually help out, and there are a number of other people who may also be willing. Please don't use the GitHub issues for troubleshooting unless you're sure that your problem is an actual issue with XIVLauncher-RB.

Environment Variables for troubleshooting

Variable Description
XL_SECRET_PROVIDER Set to file if using the Steam Deck or other desktop session that doesn't have a secret provider.
XL_SCALE Set a custom scale factor for the UI. Accepts decimal values between 1 and 4 (e.g. 1.5). Overrides the desktop scale factor.
XL_DECK Force XIVLauncher-RB to pretend it's Steam Deck. Does not enable the Steam keyboard.
XL_GAMEMODE Forces XIVLauncher-RB to pretend it's in Steam Deck Game Mode. Also does not enable the Steam keyboard.
XL_FIRSTRUN Set to 0 or 1 to force the launcher to skip or activate the Steam Deck First Run screen.
XL_USE_STEAM Set to 0 or 1 to enable or disable steam API checks.
XL_APPID Set to a steam AppID number to hook that application instead of FFXIV or the free trial.
XL_FORCE_DLSS Skip DLSS checks and assume that the nvngx dlls are in the game folder.
XL_NVNGXPATH Set a custom path for the folder containing nvngx.dll and _nvngx.dll. Most useful for NixOS, which has unusual paths.
XL_DISTRO Override the wine package to download. Valid values are arch, fedora, and ubuntu.

Building & Contributing

  1. Clone this repository with submodules
  2. Make sure you have a recent(.NET 8.0) version of the .NET SDK installed
  3. Run dotnet build or dotnet publish

Common components that are shared with the Windows version of XIVLauncher are linked as a submodule in the "lib" folder. XIVLauncher Core can run on Windows, but is by far not as polished as the original Windows version. Windows users should not use this application unless for troubleshooting purposes or development work.

Distribution

XIVLauncher-RB is not officially supported by the XIVLauncher community, but many people have used it successfully on different linux distros. You can download flatpak files and AppImages from the releases, but it is also in several user-submitted repos:

Repo Status
AUR AUR version
Copr (Fedora+openSuse+EL9) COPR version
MPR (Debian+Ubuntu)* MPR package
Nix Flake Update

* The MPR just pulls the latest git master, so it should always be up to date. If you want a specific tag, change the url in the PKGBUILD source section from branch=RB-patched to tag={tag}. Tags will be in the format rb-v1.1.0.11.

If there are any others, please let me know and I'll add them.

About

Cross-platform version of XIVLauncher, optimized for Steam Deck

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.0%
  • Other 1.0%