XIV 1.0 Linux Installer

One-command FFXIV 1.0 install for x86_64 Linux.

Shell
Installer
MIT
Linux

XIV 1.0 Linux Installer

License: MIT Platform: Linux (x86_64) Discord

A single-command installer that brings the original FINAL FANTASY XIV 1.0 — the 2010 release, not A Realm Reborn — up on x86_64 Linux, across distributions. Given the retail install disc or its ISO, install.sh handles every step through to a playable ffxivboot.exe.

Under the hood it downloads a self-contained Kron4ek Wine build, provisions a dedicated Wine prefix, and drives the stock ffxivsetup.exe through to completion. Everything it produces lives inside ./target/ next to the script — no distro Wine packages, no i386/multilib setup, no root, and nothing written outside the repository.

The default Wine build is an amd64 WoW64 flavor: it runs the 32-bit game using only 64-bit host libraries, which is what lets a single script work the same on Debian/Ubuntu, Fedora, Arch, openSUSE, and friends without each distro's particular 32-bit-Wine incantation. Prefer your own system Wine? Pass --system-wine.

This repository ships the installer and its documentation. It does not redistribute the FFXIV 1.0 client; you must supply your own retail disc or ISO.

Created with Claude.

Features

  • One idempotent script. Re-running skips any step whose output already exists, so failed runs resume without cleanup.
  • Self-contained runtime. The Wine build installs under target/runtime/. Removing the repository removes the install.
  • Distro-agnostic 32-bit support. The default WoW64 Wine build runs the 32-bit client with no i386/multilib packages and no root.
  • Automatic disc discovery. Scans /run/media/$USER, /media/$USER, /media, and /mnt for ffxivsetup.exe — no path arguments to pass. You can still pass a mount dir or an .iso file explicitly.
  • Rootless ISO handling. Given an .iso, it extracts with 7z (or loop-mounts with udisksctl) — no sudo mount required.
  • Local ISO staging. Copies disc contents into target/iso/disc1/ before launching the installer, so the install survives ejecting or unmounting the original medium.
  • Post-install verification. Confirms ffxivboot.exe, ffxivupdater.exe, ffxivconfig.exe, and the expected data/ / client/ archive layout before declaring success.

Requirements

  • x86_64 Linux with a graphical session (X11 or Wayland — the InstallShield GUI needs a display).
  • FINAL FANTASY XIV 1.0 install disc, or its ISO, with ffxivsetup.exe at the root. Either mount it (most desktops auto-mount under /run/media/$USER/…) or pass the .iso path to the script.
  • curl or wget, plus tar and xz, for the Wine download. For the .iso convenience path, 7-Zip (7zz, 7z, or 7za) or udisksctl (udisks2) — the latter also works headless/over SSH.
  • Internet access on first run for the Wine build download (skipped with --system-wine).

Installation

./install.sh

Common variations:

./install.sh --dry-run                 # show the detected plan, change nothing
./install.sh /run/media/me/FFXIV_1_0   # point at a specific mounted disc
./install.sh --iso ~/Downloads/ffxiv-1.0.iso   # open an ISO file directly
./install.sh --system-wine             # use the wine already on your PATH

The script runs unattended until the InstallShield GUI appears, at which point it hands control to you for the manual click-through. Accept all defaults; in particular, leave the install path at C:\Program Files (x86)\SquareEnix\FINAL FANTASY XIV so verification can find the expected file layout.

Tunables

Set these as environment variables to override the defaults:

VariableDefaultPurpose
WINE_SOURCEdownloaddownload a self-contained build, or system to use $PATH wine (same as --system-wine).
WINE_VERSION10.0Kron4ek Wine build version (see its releases).
WINE_FLAVORstaging-amd64-wow64Asset flavor. Use staging-amd64 (classic, needs 32-bit host libs) if a game hits WoW64 graphics glitches; staging-x86 on 32-bit hosts.
WINE_URL(computed)Full override for the Wine tarball URL.
WINEARCHwin64 (wow64)win64 or win32 prefix architecture.
TARGET./targetInstall root.

Launching the game

After install.sh reports "Install verified.":

cd target
source ./wine-env.sh
"$WINE" "$WINEPREFIX/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV/ffxivboot.exe"

wine-env.sh exports WINEPREFIX, WINEARCH, WINE, WINESERVER, and (for a downloaded build) prepends its bin/ to PATH. Source it from any shell before invoking Wine directly.

Or hand the install off to Garlemald Client, which detects a 1.x install (including a manual Wine prefix like this one), patches it to 2012.09.19.0001, and drives it against a private server. The script prints the exact install directory to point it at.

Repository layout

After a successful install, the layout of target/ is:

target/
├── runtime/
│   └── wine/              self-contained Kron4ek Wine build (bin/, lib/, share/)
├── prefix/               WINEPREFIX — the Wine C: drive
├── iso/disc1/           local copy of the install disc contents
└── wine-env.sh          source to activate the local Wine

Troubleshooting

SymptomLikely cause and resolution
No mounted volume contains ffxivsetup.exeThe ISO isn't mounted, or the mounted disc isn't the 1.0 client. Mount the 1.0 .iso (or pass its path: ./install.sh --iso path.iso) and re-run.
no 7-Zip (7zz/7z/7za) or udisksctl to open …You passed an .iso on a box with neither extractor. Install one (p7zip/7zip or udisks2), or mount the ISO yourself and pass the mount dir.
Wine failed to executeA downloaded build is missing a host library (install your distro's base Wine dependencies), or, with --system-wine, wine isn't installed correctly.
Installer or game shows a black/blank 3D viewThe default WoW64 build can glitch on some GPUs for this DirectX 9 title. Re-run with WINE_FLAVOR=staging-amd64 ./install.sh (classic build; needs your distro's 32-bit Wine libraries) after deleting target/prefix.
Verification reports too few data/ or client/ subdirectoriesThe InstallShield GUI was cancelled, or a non-default install path was chosen. Delete target/prefix/drive_c/…/SquareEnix/ (or the whole target/prefix) and run install.sh again.
Changed WINE_FLAVOR/WINEARCH and now Wine errors on the prefixA prefix is locked to the arch it was created with. Delete target/prefix and re-run.

Licensing and attribution

The installer script and the documentation in this repository are distributed under the MIT License. See LICENSE.md for the full terms and a per-component breakdown of the third-party software fetched at runtime — the Kron4ek Wine build (Wine itself is LGPL-2.1-or-later) and the FFXIV 1.0 client (© SQUARE ENIX CO., LTD., not redistributed).

Sister projects

  • XIV 1.0 Apple Silicon Installer — the macOS counterpart to this script.
  • Garlemald Server — Rust port of Project Meteor's FFXIV 1.23b server emulator (lobby / world / map) that the install produced by this script can connect to.
  • Garlemald Client — cross-platform Rust launcher that detects the install produced by this script and drives it against a private server.

Community

Development discussion, bug reports, and direct contact with the maintainer happen on the project Discord:

https://discord.gg/CVjwWs6jnX