layout | title | date | comments |
---|---|---|---|
post |
Installing and running HorizonXI on Linux |
2022-06-19 17:17 -0400 |
true |
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
.` `/
**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.
- "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 usingpacman -S wine-staging
(or any other helper you use). You can findwine-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. - "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 thewine
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. - "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"
From this point, you can click "Install HorizonXI" and things will begin working:
- 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).
- 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.
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.
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.
-
HorizonXI Lutris Script Downloads the script from sarca571ca/horizonxi-lutris repo. Be sure to extract the YAML files inside the archive.
- Open Lutris and hit the (+)plus in the top left.
- Select install from YAML file, select the Horizon-XI.yaml file, and follow the steps in the installer.
- Once completed hit Close not Launch.
- 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.
Check the FAQ section or click here
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.
- 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.
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:
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.
- Boot your Steam Deck into "Desktop Mode"
- Install ProtonQT from Discover (link)
- Open up "Firefox" and "Steam"
- Download the installer from the website. It will end up in
~/Downloads
- 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:
- Launch ProtonQT-Up
- Install "GE-Proton7-42"
- Restart Steam / deck if you can't restart Steam from desktop
It should look something like this:
Next:
- 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) - Right click the new entry, hit Properties > Compatibility
- Change to the new version of Proton GE you just installed
Launch the game!
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.
The gamepad needs configuring to work. In game mode:
- Open the launcher open the Gamepad Configuration
- Enable XInput
In desktop mode:
- 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) - Open
config.json
- 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.
... 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
- Launch the installation once
- Let it begin downloading some of the files
- Kill the launcher
- 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.
- Wait for the download to finish. It won't crash :)
- Open
Dolphin
(file manager) and navigate to/home/deck/.local/share/Steam/steamapps/compatdata/2237253119/pfx/drive_c/Program Files/HorizonXI/Downloads/
. - The above path is an example -- your randomly generated number after
compatdata
is probably different and the install path depends on what you picked. - Place the ZIP in this folder
- Open
Dolphin
(file manager) and navigate to/home/deck/.local/share/Steam/steamapps/compatdata/2237253119/pfx/users/<user>/AppData/Roaming/HorizonXI-Launcher/config.json
- 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.
If you followed the guide, do the following:
-
Find the launcher version you want to update to from https://github.com/HorizonFFXI/HorizonXI-Launcher-Binaries/releases
-
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.
- Launch the game, it should be updated.
This is typically because something has happened to storage.json
. If you just want to fix this, do the following:
- Reboot your Steam Deck and do NOT launch the game at all.
- Boot into desktop mode
- 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 useprotontricks
to find it or just sort by "recently modified" or something else to try and find the folder. - 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.
-
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.
-
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.
Sorry about that. It looks like a bug. Windows users are reporting the same.
You have two choices:
- Re-install and don't click Gamepad configuration -- the bug should be sorted "soon"
- 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.
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").
DXVK can cause this on some older cards. Disable it.
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.
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.
-
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"
-
Navigate to C:\PATH\TO\HorizonXI\bootloader\horizon-loader.exe
-
Hit Patch, OK, and close the Patcher.
You can find some at assets.
These are offical art assets cut for the Deck. Thanks to trent@ and Aku@.