A cross-platform launcher for FINAL FANTASY XIV v1.23b — the original 1.0 iteration of the game, not A Realm Reborn.
Garlemald Client detects an installed 1.x client, patches it forward to
2012.09.19.0001, runs the login handshake against a private server,
and launches ffxivgame.exe from the same Rust codebase on macOS
(including Apple Silicon), Linux, and Windows. On macOS and Linux it
also downloads and manages its own Wine runtime, so there is nothing
to install beyond the launcher itself.
Created with Claude.
- Single Rust codebase targeting macOS (Apple Silicon and Intel), Linux, and Windows
- Automatic detection of existing FFXIV 1.x installs — CrossOver bottles, Whisky prefixes, and manual Wine installs all work
- Self-managed Wine runtime on non-Windows hosts; no external Wine setup required
- CRC32-verified patch download and ZiPatch apply,
2010.09.18.0000→2012.09.19.0001 - Embedded WebView login flow with session-token handoff to the game binary
- Lobby hostname injected into the PE at launch time, so the same client binary can target any private server
Requires Rust 1.95.0 (pinned in rust-toolchain.toml; rustup
installs it automatically on first build). On Linux, gtk3 and
webkit2gtk-4.1 runtime libraries are needed for the login WebView.
cargo build --release
cargo run --releaseFor a distributable macOS .app bundle:
scripts/package-macos.sh # host arch, ad-hoc signed
scripts/package-macos.sh --universal # x86_64 + aarch64 fat binaryOn Windows, the launcher must be built as 32-bit (i686) so it can
read the suspended thread context of the 32-bit ffxivgame.exe and
patch it at launch. Requires the MSVC C++ x86 build tools.
rustup target add i686-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
cargo run --release --target i686-pc-windows-msvcNew contributor? These docs take you from zero to building the launcher to opening a pull request:
- Contributing guide — request access, pick an issue, fork, and open a PR (start here).
- Architecture — the launcher pipeline (detect → patch → Wine → WebView login → launch), the module map, and how the client talks to a server.
- Developer environment — per-OS build/run,
RUST_LOGand Wine-log toggles, where launcher state lives + how to reset it, and running against a local Garlemald-Server. - Working an issue with an AI agent — Claude / OpenAI setup; the
in-repo
CLAUDE.md/AGENTS.mdtell the agent the house rules. - Releasing — the
develop→mainbranching model and release automation.
Contributions are welcome. The short version: ask for collaborator + project-board
access on Discord, pick an issue from the board's
Ready column, branch off develop, keep CI green
(fmt / clippy / build / test), and open a PR into develop. The full
walkthrough is in CONTRIBUTING.md.
Garlemald Client derives from upstream projects under copyleft and
permissive licenses. See NOTICE.md for attribution to
Project Meteor Server, Seventh Umbral, and the wider FFXIV 1.0
preservationist community — plus a companion acknowledgment of
LandSandBoat (and its
DarkStar Project ancestor), the FFXI server emulator that the
sister project garlemald-server uses as its structural reference
for the XI-inherited portions of FFXIV 1.x gameplay. See
LICENSE.md for the full terms of the
GNU Affero General Public License, version 3 or later, under
which this project is distributed.
- Garlemald-Server — the Rust FFXIV 1.23b server (lobby / world / map) this launcher is designed to connect to.
- XIV-1.0-Apple-Silicon-Installer — helper for getting a working FFXIV 1.x install on Apple Silicon Macs, which Garlemald Client can then detect and drive.
Questions, bug reports, or just want to talk about the project? Join the Discord: