docs: add Linux Wine runtime guide and setup script #1

Merged
jakub merged 2 commits from jann/m2dev-client:claude/linux-wine-runtime into main 2026-04-14 10:30:08 +02:00
Member

Summary

Adds a documented, reproducible way to run the Windows client on Linux via Wine, plus an idempotent setup script.

  • docs/linux-wine.md — full guide covering winetricks verbs, launch commands, logs/debug, and known quirks
  • scripts/setup-wine-prefix.sh — one-shot setup: copies the client to a writable location, creates a fresh Wine prefix, installs required deps

Verified end-to-end on Fedora 41 with Wine 10.15 Staging. The client reaches the character selection screen and connects to the VPS server list (CH1 NORM).

Main finding

The client hard-codes Tahoma as its UI font. On Windows this is invisible because Tahoma is system-provided. On a fresh Wine prefix Tahoma is missing, and the symptom is that login / server picker render layout and backgrounds correctly but all text is invisible. winetricks tahoma fixes it in one shot. This is documented prominently in both the doc and the script.

Why in m2dev-client and not m2dev-client-src

This is about running the built binary, not building it. Fits alongside other runtime assets in this repo.

Test plan

  • Fresh Fedora 41 + Wine 10 Staging → script runs end-to-end
  • Client reaches server picker with readable text
  • CH1 reports NORM status from the VPS
  • Second run on a different machine (not tested yet — please try)
  • Login to an actual game once the game server is up

Notes for reviewer

The guide explicitly frames this as an interim path until a native Linux port lands. It's not pitching Wine as the long-term answer.

## Summary Adds a documented, reproducible way to run the Windows client on Linux via Wine, plus an idempotent setup script. - `docs/linux-wine.md` — full guide covering winetricks verbs, launch commands, logs/debug, and known quirks - `scripts/setup-wine-prefix.sh` — one-shot setup: copies the client to a writable location, creates a fresh Wine prefix, installs required deps Verified end-to-end on Fedora 41 with Wine 10.15 Staging. The client reaches the character selection screen and connects to the VPS server list (CH1 NORM). ## Main finding The client hard-codes **Tahoma** as its UI font. On Windows this is invisible because Tahoma is system-provided. On a fresh Wine prefix Tahoma is missing, and the symptom is that login / server picker render layout and backgrounds correctly but **all text is invisible**. `winetricks tahoma` fixes it in one shot. This is documented prominently in both the doc and the script. ## Why in m2dev-client and not m2dev-client-src This is about running the built binary, not building it. Fits alongside other runtime assets in this repo. ## Test plan - [x] Fresh Fedora 41 + Wine 10 Staging → script runs end-to-end - [x] Client reaches server picker with readable text - [x] CH1 reports NORM status from the VPS - [ ] Second run on a different machine (not tested yet — please try) - [ ] Login to an actual game once the game server is up ## Notes for reviewer The guide explicitly frames this as an **interim path** until a native Linux port lands. It's not pitching Wine as the long-term answer.
jann added 2 commits 2026-04-14 10:23:35 +02:00
Document the interim path for running the Windows client on Linux via
Wine, verified to reach character selection on Fedora 41 with Wine 10
Staging. Main gotcha: winetricks tahoma is mandatory because the client
hard-codes Tahoma as the UI font, and without it all text renders
invisibly even though layouts are correct.
Idempotent helper that copies the client to a writable location,
creates a fresh Wine prefix, and installs the required winetricks verbs
(vcrun2022, d3dx9, corefonts, tahoma). Re-running on an existing target
skips already-done steps.
jakub merged commit 9c95590099 into main 2026-04-14 10:30:08 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: metin-server/m2dev-client#1