Jump to content
This is a wiki for a reason. Anyone can contribute. If you see something that is inaccurate or can be improved, don't ask that it be fixed--just improve it.
[ Disclaimer, Create new user --- Wiki markup help, Install P99 ]

Project 1999 on Linux via WINE

From p99 Backup
Revision as of 20:16, 31 May 2026 by imported>Loramin
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

[edit]

This guide covers installing and running Project 1999 EverQuest on Linux using Wine, the Windows compatibility layer. It covers all major Linux distributions, with clear notes where steps differ between them.

If you are using a Steam Deck, or have Steam installed and prefer an easier setup, see Project 1999 on Steam Deck and Linux via Proton instead — that path requires less configuration.

This guide was compiled from over a decade of community contributions. Credit to mgellan, cadiz, Ruien, Lakserejseren, and many other forum contributors whose work is listed in the References section.

What you need

[edit]

Distribution quick-reference

[edit]

This guide uses the following labels to flag distro-specific commands:

  • [Debian/Ubuntu/Mint] — covers Ubuntu, Linux Mint, Debian, and derivatives. Uses apt.
  • [Fedora/RHEL/CentOS] — covers Fedora, Red Hat Enterprise Linux, CentOS, and Rocky Linux. Uses dnf or yum.
  • [Arch/Manjaro] — covers Arch Linux, Manjaro, and derivatives. Uses pacman.

Where a command is the same on all distributions, no label is shown.

Improving the Guide

[edit]

Please feel free to update and improve this guide for others. However, please also consider that different users might have different circumstances (e.g. some are on Ubuntu, others on Arch; some have Nvidia cards, others have AMD), so don't delete anything unless you are certain it is irrelevant to everyone.

It's also worth noting that this guide was originally compiled from many other sources (see References at the end), using Anthropic's Claude ... but again, everyone is welcome to edit it (Claude just helped with initially collecting and combining all of the different sources).

Step 1 — Install Graphics Drivers

[edit]

EverQuest uses Direct3D 9, which Wine translates to OpenGL or Vulkan. Getting your graphics drivers right first saves troubleshooting later.

Nvidia

[edit]

Proprietary Nvidia drivers are strongly recommended. Open-source Nouveau drivers have historically had poor 3D performance with EverQuest.

  • [Debian/Ubuntu/Mint] Install via your system's "Additional Drivers" tool (found in System Settings), or:
sudo ubuntu-drivers autoinstall
  • [Fedora/RHEL]
sudo dnf install akmod-nvidia
  • [Arch/Manjaro]
sudo pacman -S nvidia nvidia-utils

AMD

[edit]

The open-source AMDGPU driver is generally good. Check the AMDGPU feature matrix to confirm your GPU is supported. Proprietary AMD drivers can be downloaded from AMD's website if needed.

Intel

[edit]

Intel integrated graphics use the open-source i915 driver which is included in the kernel. No additional installation is usually needed.

DXVK (optional but recommended)

[edit]

DXVK translates Direct3D calls to Vulkan instead of OpenGL, and can improve performance and compatibility. It requires Mesa (for AMD/Intel) or Nvidia's Vulkan driver. If you encounter graphical issues without it, installing it is worth trying — Wine can use it automatically when present in the game directory. See the DXVK GitHub page for installation instructions.

Step 2 — Install Wine

[edit]

Wine is not usually installed by default. Use the WineHQ stable packages for the most reliable results — the version in your distro's default repositories is often outdated. The current stable release is Wine 11.0 (as of May 2026).

Debian / Ubuntu / Mint

[edit]

These steps install the latest WineHQ stable release using the official repository.

sudo dpkg --add-architecture i386
sudo apt update
sudo mkdir -p /etc/apt/keyrings
sudo wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key

Now add the WineHQ source for your release. This command detects your Ubuntu/Mint codename automatically:

. /etc/os-release && sudo wget -NP /etc/apt/sources.list.d/ \
  https://dl.winehq.org/wine-builds/ubuntu/dists/${VERSION_CODENAME}/winehq-${VERSION_CODENAME}.sources

If the automatic method fails, you can find the correct source URL for your release on the WineHQ Ubuntu page or WineHQ Debian page.

sudo apt update
sudo apt install --install-recommends -y winehq-stable

Fedora / RHEL / CentOS

[edit]

The WineHQ repository provides current builds for Fedora. First install dependencies:

sudo dnf install liberation-narrow-fonts nss-mdns openldap pulseaudio-libs liberation-sans-fonts

Then add the WineHQ repo and install. See the WineHQ Fedora page for the current repo URL for your Fedora version, then:

sudo dnf install winehq-stable
Note — 64-bit Fedora: If you get an error about /lib/ld-linux.so.2 on a 64-bit system, you need the 32-bit glibc library: sudo dnf install glibc.i686

Arch / Manjaro

[edit]

Enable the multilib repository in /etc/pacman.conf (uncomment the [multilib] section), then:

sudo pacman -Sy wine wine-mono wine-gecko

Step 3 — Configure Wine

[edit]

Initialize your Wine prefix

[edit]

A Wine prefix is Wine's virtual Windows environment. Initialize it by running:

winecfg

This opens the Wine configuration window. Press OK through any prompts to install the Gecko engine. On the Audio tab, select your sound system (PulseAudio is the default on most modern distros; use ALSA if you have no PulseAudio).

Close winecfg when done.

Set Wine to 32-bit mode (if needed)

[edit]

Some users find EverQuest Titanium only works reliably with a 32-bit Wine prefix. If you encounter crashes or launch failures, try this before anything else:

mv ~/.wine ~/.wine64-backup
WINEARCH=win32 winecfg

This creates a fresh 32-bit prefix. Proceed from here as normal.

Configure the Graphics tab (optional)

[edit]

In winecfg, the Graphics tab lets you:

  • Enable Emulate a virtual desktop — useful if the game refuses to launch or has display issues
  • Set the desktop size to match your monitor resolution
  • Control mouse capture behaviour

Step 4 — Install the EverQuest Titanium Client

[edit]

You must obtain the EverQuest Titanium client before proceeding. See Acquiring The EverQuest Client for your options. You will end up with either physical discs, an ISO file, or an already-installed folder of game files. Each path is covered below.

The goal of this step is to end up with a working EverQuest folder at:

  • 64-bit prefix (default): ~/.wine/drive_c/Program Files (x86)/Sony/EverQuest/
  • 32-bit prefix (if you used WINEARCH=win32 in Step 3): ~/.wine/drive_c/Program Files/Sony/EverQuest/
Note: The .wine directory is hidden by default. Press Ctrl+H in your file manager to show hidden files and folders.

Option A — You have an already-installed EverQuest folder

[edit]

If you already play P99 on Windows and have a working, patched EverQuest folder, the simplest approach is to copy it directly into Wine's drive_c. In your file manager, navigate to your Windows partition or copy source and copy the EverQuest folder to the path above. Then skip to Step 5.

You can also copy from the terminal:

cp -Rv /path/to/your/EverQuest ~/.wine/drive_c/Program\ Files\ \(x86\)/Sony/EverQuest

After copying, fix ownership so your user owns the files:

chown -Rv $(whoami) ~/.wine/drive_c/Program\ Files\ \(x86\)/Sony/EverQuest

Option B — You have physical Titanium discs

[edit]

The Titanium client comes on five discs. If you have a USB optical drive, you can insert all five simultaneously using a USB hub and multiple drives, or insert them one at a time — but the easiest approach is to first create ISO images from each disc using a tool like ImgBurn on a Windows PC, then follow the ISO path below.

If you only have one optical drive and want to install directly from discs, insert disc 1. It should mount automatically and appear in your file manager. Then follow the winecfg drive mapping steps above, mapping D: to your optical drive's mount point (e.g. /run/media/yourusername/disc1). Run the installer:

wine D:\\setup.exe

When the installer asks for the next disc, eject disc 1, insert disc 2, and click OK. Repeat for each disc.

Tip: Creating ISOs from your discs first and mounting all five at once (as in Option C) is much smoother than swapping physical discs during installation.

Option C — You have ISO files

[edit]

The Titanium client comes on five discs, so you will have five ISO files. Mount all five before running the installer — Wine will find each one automatically as the installer needs it.

Step 1: Mount all five ISOs

[edit]

The method depends on your desktop environment. Mount each ISO to a separate location, then proceed to Step 2.

GNOME (Ubuntu, Fedora Workstation, Debian GNOME)

GNOME's Disk Image Mounter is built in — no extra software needed.

For each ISO file:

  1. Right-click the ISO → Open With Disk Image Mounter, or simply double-click it.
  2. The mounted disc appears in the left panel of the Files app under Devices.
  3. Note the mount path — it will be something like /run/media/yourusername/disc_name.

Repeat for all five ISO files.

KDE / Dolphin (Kubuntu, KDE Neon, Fedora KDE, Manjaro KDE)

Dolphin has native ISO support — no extra software needed.

For each ISO file:

  1. Right-click the ISO → Mount Image.
  2. The disc appears in Dolphin's left panel under Devices.
  3. Note the mount path — it will be something like /run/media/yourusername/disc_name.

Repeat for all five ISO files.

Cinnamon / Nemo (Linux Mint)

Nemo has native ISO support — no extra software needed.

For each ISO file:

  1. Right-click the ISO → Mount ISO.
  2. The disc appears in Nemo's left panel under Devices.

Repeat for all five ISO files.

Xfce / Thunar (Xubuntu, Linux Mint Xfce, Fedora Xfce)

Thunar requires a plugin. Install it first:

[Debian/Ubuntu/Mint]

sudo apt install xfce4-mount-plugin

[Fedora/RHEL]

sudo dnf install xfce4-mount-plugin

Then for each ISO:

  1. Right-click the ISO → Mount Image.

Repeat for all five ISO files.

Terminal (any distro — fallback method)

Create five mount points and mount each ISO:

sudo mkdir -p /mnt/eq1 /mnt/eq2 /mnt/eq3 /mnt/eq4 /mnt/eq5
sudo mount -o loop /path/to/disc1.iso /mnt/eq1
sudo mount -o loop /path/to/disc2.iso /mnt/eq2
sudo mount -o loop /path/to/disc3.iso /mnt/eq3
sudo mount -o loop /path/to/disc4.iso /mnt/eq4
sudo mount -o loop /path/to/disc5.iso /mnt/eq5

Step 2: Map drive letters in winecfg

[edit]

Wine needs to know where each disc is. Open winecfg:

winecfg
Note — mount paths vary by distro: When mapping drive letters in winecfg, the mount path prefix differs depending on your distribution. Common paths are:
  • /run/media/yourusername/disc_name — GNOME on Ubuntu, Fedora, Arch
  • /media/yourusername/disc_name — Linux Mint (Cinnamon, Xfce, MATE)
  • /run/media/yourusername/disc_name — KDE on most distros

If you are not sure, open your file manager, click on the mounted disc in the left panel, and look at the path shown in the address bar. That is the path to use in winecfg.

  1. Click the Drives tab.
  2. Click Add... to add a new drive. Assign it a letter (e.g. D:).
  3. Click Show Advanced.
  4. Set the Path to the mount point of disc 1 (e.g. /run/media/yourusername/disc1_name or /mnt/eq1).
  5. Set the Type to CD-ROM.
  6. Click Apply.
  7. Repeat for the remaining four discs, assigning each a new drive letter (E:, F:, G:, H:).
  8. Click OK when done.

Step 3: Run the installer

[edit]

Run the installer from the drive letter you assigned to disc 1:

wine D:\\setup.exe

The installer will launch and proceed through all five discs automatically, finding each one via the drive letters you mapped.

Running the Titanium installer via Wine

[edit]

Whether you are installing from a disc or a mounted ISO, the process is the same once you have the path to setup.exe:

wine /path/to/setup.exe

The EverQuest Titanium installer will launch. Follow the on-screen steps. When it asks where to install, the default location is fine — Wine will place it inside drive_c/Program Files (x86)/Sony/EverQuest/ automatically.

Note: EverQuest Titanium uses SecuROM copy protection, which can cause the installer to stall or hang under Wine. If this happens, try running the installer with WINEDEBUG=-all wine setup.exe to suppress debug output, or try copying the disc/ISO contents to a folder first and running setup.exe from there. If the installer still fails, use an already-installed folder (Option A) instead.

EverQuest Titanium is a 32-bit application. On a 64-bit Wine prefix Wine places it in Program Files (x86) — the same way 64-bit Windows handles 32-bit programs.

Step 5 — Apply the P99 Patch Files

[edit]
  1. Download the latest patch ZIP from the P99 files page. Always use the latest version available (V62 as of May 2026).
  2. Extract the ZIP. You will see files and subfolders inside.
  3. Copy the files into your EverQuest folder, merging folders rather than replacing them. Do not drag the entire extracted folder on top of your EQ folder — this replaces whole directories and will cause "Error in GUI XML files" when you try to play. Copy the contents, folder by folder.

Fix the DSETUP.dll filename conflict

[edit]

Linux filesystems are case-sensitive; Windows is not. The P99 patch includes a file called dsetup.dll (lowercase) but the Titanium installer creates DSETUP.dll (uppercase). On Linux these are treated as two different files, and the wrong one gets used.

Fix this by running the following commands from inside your EverQuest directory.

64-bit prefix (default):

cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Sony/EverQuest
mv DSETUP.dll DSETUP.tmp
mv dsetup.dll DSETUP.dll
mv DSETUP.tmp dsetup.dll

32-bit prefix (if you used WINEARCH=win32 in Step 3):

cd ~/.wine/drive_c/Program\ Files/Sony/EverQuest
mv DSETUP.dll DSETUP.tmp
mv dsetup.dll DSETUP.dll
mv DSETUP.tmp dsetup.dll

This renames the files so the P99 dsetup.dll is the one Wine will load.

Note: If you get a "spell files out of date" error at character select, this DSETUP.dll swap is almost always the cause. Return here and make sure it was done correctly.

Step 6 — Configure eqclient.ini

[edit]

Before launching, edit eqclient.ini in your EverQuest folder to avoid common display and crash issues.

At minimum, set these values. If the sections do not exist yet, add them — the file will be created the first time you run the game, so you may need to launch once, let it crash or close, then edit.

[Defaults]
WindowedMode=TRUE
VertexShaders=FALSE
[VideoMode]
Width=1920
Height=1080
FullscreenRefreshRate=0
FullscreenBitsPerPixel=32
WindowedWidth=1920
WindowedHeight=1080

Replace 1920×1080 with your actual monitor resolution.

If you have texture or model problems

[edit]

Add these additional settings to the [Defaults] section:

20PixelShaders=FALSE
14PixelShaders=FALSE
1xPixelShaders=FALSE
MultiPassLighting=FALSE
UseLitBatches=FALSE
TextureCache=FALSE
DoProperTinting=FALSE

A full working reference eqclient.ini is available at Linux Reference eqclient.ini File.

Step 7 — Launch EverQuest

[edit]

EverQuest must be launched with the patchme argument — without it, the game tries to patch itself against the live servers, which breaks P99. The P99 patch provides a file called Launch Titanium.bat which does this automatically.

Option A — Run Launch Titanium.bat directly

[edit]

From inside your EverQuest directory:

64-bit prefix (default):

cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Sony/EverQuest
wine cmd /c "Launch Titanium.bat"

32-bit prefix:

cd ~/.wine/drive_c/Program\ Files/Sony/EverQuest
wine cmd /c "Launch Titanium.bat"

Option B — Create a launch script (recommended)

[edit]

Create a reusable shell script so you do not have to type the path every time. Open a text editor and save the following as ~/eq.sh, substituting the correct path for your prefix type:

64-bit prefix (default):

#!/bin/bash
cd "$HOME/.wine/drive_c/Program Files (x86)/Sony/EverQuest"
WINEPREFIX="$HOME/.wine" wine eqgame.exe patchme 2>/dev/null

32-bit prefix:

#!/bin/bash
cd "$HOME/.wine/drive_c/Program Files/Sony/EverQuest"
WINEPREFIX="$HOME/.wine" wine eqgame.exe patchme 2>/dev/null

Make it executable:

chmod +x ~/eq.sh

Run it with:

~/eq.sh

You can also create a desktop launcher pointing to this script.

Option C — Create a desktop icon

[edit]

To create a clickable desktop icon, save the following as ~/Desktop/EQP1999.desktop, substituting the correct path for your prefix type:

64-bit prefix (default):

[Desktop Entry]
Type=Application
Name=EQ Project 1999
Exec=sh -c 'cd "$HOME/.wine/drive_c/Program Files (x86)/Sony/EverQuest";wine cmd /c "Launch Titanium.bat"'
Terminal=false

32-bit prefix:

[Desktop Entry]
Type=Application
Name=EQ Project 1999
Exec=sh -c 'cd "$HOME/.wine/drive_c/Program Files/Sony/EverQuest";wine cmd /c "Launch Titanium.bat"'
Terminal=false

Then right-click the icon and select Allow Launching.

Option D — Use Lutris

[edit]

Lutris is a game launcher that manages Wine configurations per game, keeping P99's Wine settings separate from other games. It also provides some additional Wine fixes.

  1. Install Lutris using your package manager.
  2. Click the + button → add a game manually.
  3. On the Game Options tab, set the Executable to your Launch Titanium.bat file.
  4. Set the Wine Prefix to a dedicated directory (e.g. ~/Games/P99/prefix) — keeping prefixes separate per game avoids conflicts.
  5. On the Runner Options tab, enable windowed mode and set your resolution.

Step 8 — Fix the Server List

[edit]

This is the most common problem on Linux. After logging in, the server selection screen may show a blank list. This is a UDP networking quirk in Linux's handling of EverQuest's login protocol.

Option A — Retry or restart

[edit]

Logging out and back in a few times sometimes works. Not reliable, but zero effort.

Option B — Use Zaela's login middleman

[edit]

This tool intercepts and re-routes the login traffic in a way Linux can handle. It must be running before you launch EQ.

  1. Install build tools if you do not have them:
    [Debian/Ubuntu/Mint] sudo apt install build-essential
    [Fedora/RHEL] sudo dnf groupinstall "Development Tools"
    [Arch/Manjaro] sudo pacman -S base-devel
  2. Download and build:
git clone https://github.com/Zaela/p99-login-middlemand
cd p99-login-middlemand
make
  1. Run it before launching EQ:
./bin/p99-login-middlemand &

Option B combined with launch script

[edit]

Add the middleman to your eq.sh script so it starts and stops automatically. Substitute the correct path for your prefix type:

64-bit prefix (default):

#!/bin/bash
~/p99-login-middlemand/bin/p99-login-middlemand &
echo $! >/tmp/p99middle.pid
cd "$HOME/.wine/drive_c/Program Files (x86)/Sony/EverQuest"
WINEPREFIX="$HOME/.wine" wine eqgame.exe patchme 2>/dev/null
kill -9 $(cat /tmp/p99middle.pid)

32-bit prefix:

#!/bin/bash
~/p99-login-middlemand/bin/p99-login-middlemand &
echo $! >/tmp/p99middle.pid
cd "$HOME/.wine/drive_c/Program Files/Sony/EverQuest"
WINEPREFIX="$HOME/.wine" wine eqgame.exe patchme 2>/dev/null
kill -9 $(cat /tmp/p99middle.pid)

Step 9 — MIDI Music (optional)

[edit]

EverQuest's background music uses MIDI. You may hear no music, or see a Wine error about no MIDI port. Modern systems running PipeWire may find MIDI works automatically via winetricks directmusic. Otherwise:

Install FluidSynth and QSynth

[edit]

[Debian/Ubuntu/Mint]

sudo apt install fluidsynth fluid-soundfont-gm qsynth

[Fedora/RHEL]

sudo dnf install fluidsynth fluid-soundfont-gm qsynth

[Arch/Manjaro]

sudo pacman -S fluidsynth soundfont-fluid qsynth

Configure QSynth

[edit]
  1. Launch QSynth.
  2. Go to Setup → Audio tab and select ALSA.
  3. Go to the Soundfonts tab and load FluidR3_GM.sf2.
  4. Click OK. QSynth must remain open while playing for MIDI music to work.
Note: If using PipeWire (the default on most modern distros), try running winetricks sound=alsa first — MIDI may work without QSynth at all.

Troubleshooting

[edit]

Invisible characters / shadow outlines instead of models

[edit]

This is usually a Direct3D vertex shader issue. In eqclient.ini, set:

VertexShaders=FALSE

If that does not help, also set:

20PixelShaders=FALSE
14PixelShaders=FALSE
1xPixelShaders=FALSE

As a registry workaround (especially useful on AMD cards), run Wine's regedit and create:

HKEY_CURRENT_USER\Software\Wine\Direct3D

Add a string value: UseGLSL = disabled

"Error in GUI XML files" on launch

[edit]

The P99 patch files were merged incorrectly — whole folders were replaced instead of merged. Re-apply the patch by copying files individually, preserving the folder structure.

"Your files are out of date" at character select

[edit]

Almost always caused by the DSETUP.dll case conflict. Return to Step 5 and redo the rename steps.

No servers at server select

[edit]

See Step 8. The login middleman tool is the reliable fix.

winecfg errors on first run (64-bit Fedora)

[edit]

If you see /lib/ld-linux.so.2: bad ELF interpreter, install 32-bit glibc:

sudo dnf install glibc.i686

No OpenGL / Direct3D not available

[edit]

On 64-bit systems you may need 32-bit graphics libraries:

[Fedora/RHEL]

sudo dnf install mesa-libGL.i686 mesa-dri-drivers.i686

[Debian/Ubuntu/Mint]

sudo apt install libgl1:i386

GameLauncherCefChildProcess page fault error

[edit]

Seen on some Ubuntu/Nvidia combinations. Fix with winetricks:

winetricks corefonts d3dx9 d3dx9_43 dxvk

Mouse stuck in centre of screen / mouselook stops at screen edge

[edit]

In winecfg → Graphics tab, enable Automatically capture the mouse in full-screen windows. Alternatively, running in windowed mode (which is recommended anyway) avoids this issue entirely.

Game runs slowly / poor performance

[edit]

Disable desktop compositing effects (Compiz, KWin effects, etc.) while playing. These are known to significantly impact Wine game performance. In GNOME, KDE, or XFCE you can usually toggle effects off in System Settings.

References

[edit]

This guide was compiled from the following community resources: