June 19, 2022

Installing and running HorizonXI on Linux

The following is for installing HorizonXI, a FFXI private server on Linux. Specifically, I am installing with the following Arch Linux System:

touma@setsuna:wine/x86_64-windows $ neofetch
                   -`                    touma@setsuna 
                  .o+`                   ------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Model: B450 AORUS PRO WIFI 
               `+oooooo:                 Kernel: 5.12.9-arch1-1 
               -+oooooo+:                Uptime: 6 days, 19 hours, 29 mins 
             `/:-:++oooo+:               Packages: 1672 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.8 
           `/++++++++++++++:             Resolution: 2560x1440 
          `/+++ooooooooooooo/`           DE: GNOME 40.2 
         ./ooosssso++osssssso+`          WM: Mutter 
        .oossssso-````/ossssss+`         WM Theme: EvoPop-Azure 
       -osssssso.      :ssssssso.        Theme: Materia-light-compact [GTK2/3] 
      :osssssss/        osssso+++.       Icons: Numix [GTK2/3] 
     /ossssssss/        +ssssooo/-       Terminal: gnome-terminal 
   `/ossssso+/:-        -:/+osssso+-     CPU: AMD Ryzen 7 3800X (16) @ 3.900GHz 
  `+sso+:-`                 `.-/+oso:    GPU: NVIDIA GeForce GTX 1080 
 `++:.                           `-/+/   Memory: 5913MiB / 32116MiB 
 .`                                 `/
                                                                 

Install HorizonXI - wine-staging (non steam-deck; steam deck below)

Prepare a version of Wine with the proper patches

**tldr; install wine-staging if you want something simple (such as yay wine-staging) and you’re good to go.

You need a version of WINE that won’t crash when accepting the EULA, presumably like most XI installs. There are a couple options here.

  1. “Easy, recommended”: Use a variant of WINE that has the patch integrated into it already, such as wine-staging (here). If you are on Arch Linux, you can do this using pacman -S wine-staging (or any other helper you use). You can find wine-staging in some other repos as well, such as the Ubuntu ones. You can find more on the WINE install page. There are other versions that include that patch in their definition – any of them will do.
  2. “Easy, works in a pinch”: You can download a patched imm32.dll from the web such as https://github.com/bluffnix/ffxi-wine/tree/master/linux and replace your system library with it. You can find some directions on the web to do this – I would recommend you don’t do this because every time you update the operating system and the wine package it’s going to get replaced with a new binary. However, I wanted to write this here since it’s shown on the web a lot as a drag and drop solution from a lot of users.
  3. “Hard”: You can compile a version of WINE that has the proper fix. The patch in question is this. If you are an advanced user, you can do this if you can’t replace your system wine. If you do this, make sure you compile WINE with 64 bit support since you will need it. If you need help with this, leave a comment but for most users this shouldn’t be needed and should only be done if you can’t use the other options.

At the time of writing, this worked with:

touma@setsuna:tidus $ wine --version
wine-7.22 (Staging)

Note: A lot of places on the Internet tell you to use a specific prefix architecture for Final Fantasy XI; this does not work for many private servers – so please follow the directions very closely. If in doubt, follow step by step and start with a fresh prefix.

Prepare a new prefix for HorizonXI using the following command:

WINEPREFIX=~/.wine-horizonxi-64 winecfg

Check that “Windows 7” is selected as the version.

Moving along, let’s run the installer inside of WINE:

WINEPREFIX=~/.wine-horizonxi-64 wine "~/Downloads/HorizonXI-Launcher-1.0.1.Setup.exe"

image-20210619214000116

From this point, you can click “Install HorizonXI” and things will begin working:

  1. An install directory, you can leave that as a default but it defaults to your virtual “Users” drive. I left it there since there is no harm (virtualized drive).
  2. You do not need to login to install the game from what I can tell.

That’s it as far as we know right now.

Install HorizonXI - Linux Desktop using Lutris (non steam-deck; steam deck below)

Lutris is meant to be an all-in-one installer, however there are additional steps required at present to make it work. If you want a quick solution that will work use the process listed above. Otherwise follow the instructions below. Once new Lutris runners are shipped with Lutris i’ll update the script and this guide. Should be early next year for a new runner.

Requirements

You need to have wine-staging installed.

  • ProtonUp-Qt and runner “lutris-GE-Proton7-42-x86_64” installed for lutris.

    Install ProtonUp-Qt on your distribution and open it up.

    1. At the top make sure Lutris is selected.
    2. Then hit “Add Version”

      img

    3. Select “Wine-GE” for compatability tool.
    4. Select “GE Proton 7-42” for version.
    5. Hit install and once it’s complete you’re done with ProtonUp-Qt.

      img

  • HorizonXI Lutris Script Downloads the script from sarca571ca/horizonxi-lutris repo. Be sure to extract the YAML files inside the archive.

Installation

  1. Open Lutris and hit the (+)plus in the top left.
  2. Select install from YAML file, select the Horizon-XI.yaml file, and follow the steps in the installer.
  3. Once completed hit Close not Launch.
  4. Now your free to launch HorizonXI you will get a launch prompt asking for either HorizonXI or the 4GB Patch. Select HorizonXI and install like normal.

Note: You might get an error about missing the prereqs.zip, this can be ignored as lutris installed all pre-reqs automatically for you. If you experience the “black void” while changing areas you can lower your textures some in the HorizonXI Launcher. You can also use the 4GB patch i’ve included.

4GB Patch

Check the FAQ section or click here

Windower 4

If you want to install Windower follow the README.md provided in the archive you downloaded earlier. Unless otherwise requested by Vaughan I won’t clog this guide up with that install process.

Version

  • Updated September 22, 2023
    • Added new requirement for ProtonUp-Qt
    • Updated install process for a smoother install.
    • Supports Horizon Launcher v1.2.1
  • Initial guide December 22, 2022

Guide by: Ex1L3(Asri) in the HorizonXI discord, feel free to ask question etc.

Install HorizonXI - Steam Play (Steam Deck / other systems)

There is an video that goes with this guide if you would prefer: https://www.youtube.com/watch?v=4pWbxU025Ak

If you are new to Proton or Linux, it may be valuable.

The following is for Steam Deck users:

Automatic installation

Download Trent’s script and execute in konsole.

Follow the prompts instructions, and report any bugs in the Steam Deck Thread tagging @trent with a snippet including the konsole logs.

For those who click through without reading the basic idea is to install the base game with v1.0.1, then when that is fully completed rerun update-horizon.sh and it will update the installer for you to the latest.

Manual installation

  1. Boot your Steam Deck into “Desktop Mode”
  2. Install ProtonQT from Discover (link)
  3. Open up “Firefox” and “Steam”
  4. Download the installer from the website. It will end up in ~/Downloads
  5. Open a terminal and do the following:

Note: At the time of writing, the installer from the website may not work due to some breaking changes. You may need to install from https://github.com/HorizonFFXI/HorizonXI-Launcher-Binaries/releases/tag/v1.0.1 first, and then upgrade later. The install process seems broken on Linux on the newer launcher

mkdir ~/horizon-xi
cp "/home/deck/Downloads/HorizonXI-Launcher-1.0.1.Setup.exe" ~/horizon-xi/installer.exe
cd ~/horizon-xi
7z x installer.exe
7z x HorizonXI_Launcher-1.0.1-full.nupkg

OK, that’s done.

Now:

  1. Launch ProtonQT-Up
  2. Install “GE-Proton7-42”
  3. Restart Steam / deck if you can’t restart Steam from desktop

It should look something like this:

image-20210619214000116

Next:

  1. Now, open “Steam” and add a ‘Non-Steam Game’ and navigate to ~/horizon-xi/lib/net45/HorizonXI-Launcher.exe for the executable (you may have to change “.desktop” at the bottom to all application types)
  2. Right click the new entry, hit Properties > Compatibility
  3. Change to the new version of Proton GE you just installed

Launch the game!

image-20210619214000116

Begin installing. You should pick C:\Program Files when prompted for an install path. You should not pick anything else. You can move compatdata to an SD card later if needed.

The launcher has some bugs. Continue down to FAQ down below to find any problems you might have. You may want to read them all before clicking install.

When install is complete you can run:

sudo find /home -name "HorizonXI.zip" -type f | sed 's/ /\\ /g' | xargs -i rm {}

… to clean up the ZIP to get some space back. You may want to save a copy if you want to install somewhere else in the future.

Gamepad

The gamepad needs configuring to work. In game mode:

  1. Open the launcher open the Gamepad Configuration
  2. Enable XInput

In desktop mode:

  1. Open Dolphin to /home/deck/.local/share/Steam/steamapps/compatdata/<prefix_id>/pfx/drive_c/users/<user>/AppData/Roaming/HorizonXI-Launcher/ (protontricks can help find the ID)
  2. Open config.json
  3. Make the following edits to the config:
"padmode000": {
    "name": "Gamepad Settings Controls",
    "key": "padmode000",
    "value": [
        1,
        1,
        0,
        0,
        1,
        1
    ]
}

and:

"padsin000": {
    "name": "Button Mappings",
    "key": "padsin000",
    "value": [
        8,
        9,
        13,
        12,
        10,
        0,
        1,
        3,
        2,
        15,
        -1,
        -1,
        14,
        -33,
        -33,
        32,
        32,
        -36,
        -36,
        35,
        35,
        6,
        7,
        5,
        4,
        11,
        -1
    ]
}

Gamepad should now work in game mode. Credit goes to Sabriel@ for the gamepad directions.

FAQ for Linux

The launcher keeps crashing while trying to install the game

… and it’s wiping all my progress!

Mandatory warning from the HorizonXI staff:

Please note: We will not offer support for users that bypass the launcher with this setup, it’s a work around for users having memory issues due to having less than 16gb ram on PC.**

Still with me? OK, next.

There is a memory leak in the launcher as of launch day. The launcher does not save progress. The staff are working on fixing it but in the meantime, you can follow the below steps to get it working:

magnet:?xt=urn:btih:4eecae8431428820347314bc002492e210f29612&dn=HorizonXI.zip&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=https%3a%2f%2ftracker.nanoha.org%3a443%2fannounce&tr=https%3a%2f%2ftracker.lilithraws.org%3a443%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a6969%2fannounce&tr=https%3a%2f%2fopentracker.i2p.rocks%3a443%2fannounce&tr=udp%3a%2f%2ftracker1.bt.moack.co.kr%3a80%2fannounce&tr=udp%3a%2f%2ftracker.torrent.eu.org%3a451%2fannounce&tr=udp%3a%2f%2ftracker.tiny-vps.com%3a6969%2fannounce&tr=udp%3a%2f%2fpublic.tracker.vraphim.com%3a6969%2fannounce&tr=udp%3a%2f%2fp4p.arenabg.com%3a1337%2fannounce&tr=udp%3a%2f%2fopen.stealth.si%3a80%2fannounce&tr=udp%3a%2f%2fopen.demonii.com%3a1337%2fannounce&tr=udp%3a%2f%2fmovies.zsw.ca%3a6969%2fannounce&tr=udp%3a%2f%2fipv4.tracker.harry.lu%3a80%2fannounce&tr=udp%3a%2f%2fexplodie.org%3a6969%2fannounce&tr=udp%3a%2f%2fexodus.desync.com%3a6969%2fannounce&tr=udp%3a%2f%2f9.rarbg.com%3a2810%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337&tr=udp%3a%2f%2fexplodie.org%3a6969
  1. Launch the installation once
  2. Let it begin downloading some of the files
  3. Kill the launcher
  4. Grab the magnet with your favourite torrent client – you can use a PC for this and transfer the file to the deck or just install something like Transmission / Deluge / qtBitTorrent on your Deck to use.
  5. Wait for the download to finish. It won’t crash :)
  6. Open Dolphin (file manager) and navigate to /home/deck/.local/share/Steam/steamapps/compatdata/2237253119/pfx/drive_c/Program Files/HorizonXI/Downloads/.
  7. The above path is an example – your randomly generated number after compatdata is probably different and the install path depends on what you picked.
  8. Place the ZIP in this folder
  9. Open Dolphin (file manager) and navigate to /home/deck/.local/share/Steam/steamapps/compatdata/2237253119/pfx/users/<user>/AppData/Roaming/HorizonXI-Launcher/config.json
  10. Open config.json and modify the file:
		"baseGame": {
			"downloaded": false,

should be replaced with:

		"baseGame": {
			"downloaded": true,
            

If you open the launcher, it should now finish installing the game.

How can I update the launcher?

If you followed the guide, do the following:

  1. Find the launcher version you want to update to from https://github.com/HorizonFFXI/HorizonXI-Launcher-Binaries/releases

  2. Run the following commands in the terminal one-by-one in Desktop mode again. This is just like the initial install:

cp "/home/deck/Downloads/HorizonXI-Launcher-1.1.12.Setup.exe" ~/horizon-xi/installer.exe
cd ~/horizon-xi
7z x installer.exe
7z x HorizonXI_Launcher-1.1.12-full.nupkg

Make sure to replace the version number in the file paths to match the version of the launcher you just installed.

That’s it.

  1. Launch the game, it should be updated.

My game is asking me to install again. What happened?

This is typically because something has happened to storage.json. If you just want to fix this, do the following:

  1. Reboot your Steam Deck and do NOT launch the game at all.
  2. Boot into desktop mode
  3. Head to /home/deck/.local/share/Steam/steamapps/compatdata/<PREFIX_ID>/pfx/users/<user>/AppData/Roaming/HorizonXI-Launcher/storage.json on the deck via Dolphin or some other file manager. Just like all other Proton installed software, the prefix ID will be random. You can use protontricks to find it or just sort by “recently modified” or something else to try and find the folder.
  4. Open the file. Inside of this, you will find a bunch of JSON with several sections. The following section should be present.
		"installPath": {
			"name": "installPath",
			"description": "Location of HorizonXI Game install.",
			"path": "C:\\Program Files\\HorizonXI\\Game"
		},
		"downloadPath": {
			"name": "downloadPath",
			"description": "Location of HorizonXI zip download.",
			"path": "C:\\Program Files\\HorizonXI\\Downloads"
		}
	},

If you have followed the guide, you should have a copy of the game at C:\\Program Files\\HorizonXI. Some folks may have also installed it to C:\\. If you are not sure where it is, go back to the drive_c inside of the pfx folder (up a few directories from this config file) and find the location. The path will be whatever it is under drive_c, so for example if drive_c/HorizonXI exists, then your path is probably C:\\Program Files. The double slash is intentional, it’s called escaping.

  1. Modify the paths to point to the copy of the HXI game you have located. If you can’t find it, then that means your install is either lost or you cannot locate it. You will need to reinstall.

  2. In addition, there is a section of the config file that looks like this:

		"currentVersion": 3,
		"latestVersion": 3,
		"baseGame": {
			"downloaded": true,
			"extracted": true
		},
		"updater": {
			"downloaded": 3,
			"extracted": 3
		},

You can modify the values to match this. If you don’t know if your old install is fully patched or not, I would recommend replacing currentVersion with 2 or 1 to redownload any DATs needed.

Launching gamepad configuration prevents my game from launching anymore

Sorry about that. It looks like a bug. Windows users are reporting the same.

You have two choices:

  1. Re-install and don’t click Gamepad configuration – the bug should be sorted “soon”
  2. If you need gamepad support (Deck / using gamepad out of the box), you can follow this guide: https://www.youtube.com/watch?v=0UYdFoaVnOE&lc=UgywlUbnFvFWxBUOzW54AaABAg. It’s not supported by the team, but has been confirmed to work on the deck.

A patch is supposed to come soon for gamepad players.

I can’t see buttons on the UI

The launcher has a fixed size. You can open the Steam keyboard and use tab to move around controls you can’t see, dock your Steam Deck to a montior / TV for more space, or use KDE window management features to move it around (google: “kde move window with mouse”).

The launcher is showing all black

DXVK can cause this on some older cards. Disable it.

I’m getting told I can’t run it as admin

admin

You’re probably trying to run the installer as-is from the website. Don’t do that; follow the directions above closely and make sure the item you added in Steam is the extracted HorizonLauncher and not the setup.

4GB Patch

Allows the game to use 4gb of RAM instead of the default 2gb. The disclamer in the discord says VRAM but Thorny(the Aurthor of the patch) says it increases RAM allowance of the executable.

  1. If you are using the Lutris install script then:

    Launch HorizonXI in Lutris seclect 4GB Patch option and hit ok.

    If using the base wine install then:
    > Download the Patch here and extract the archive.
    > Run the patcher inside your prefix

    WINEPREFIX=~/.wine-horizonxi-64 wine "~/Downloads/LargeAddressAwarePatcher/LargeAddressAwarePatcher.exe"

  2. Navigate to C:\PATH\TO\HorizonXI\bootloader\horizon-loader.exe
  3. Hit Patch, OK, and close the Patcher.

Where can I get artwork for my install?

You can find some at assets.

These are offical art assets cut for the Deck. Thanks to trent@ and Aku@.