Project 1999 on Steam Deck and Linux via Proton
Introduction
[edit]This guide covers installing and running Project 1999 EverQuest on a Steam Deck, or on any Linux PC with Steam installed, using Valve's Proton compatibility layer.
If you are running Linux without Steam and prefer the traditional Wine approach, see Project 1999 on Linux via WINE.
Multiple P99 players have found that Proton works more reliably out of the box than vanilla Wine, with no custom patches or recompiling required. It is the recommended path for Steam Deck users and the easiest path for any Linux user who already has Steam installed.
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 plan to play directly on the Steam Deck, while others plan to use it like a PC), 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).
The Guide
[edit]What you need
[edit]- A Steam Deck, or a Linux PC with Steam installed
- The EverQuest Titanium client — see Acquiring The EverQuest Client
- A Project 1999 account — register free at www.project1999.com
- An internet connection
Step 1 — Get 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.
Option A — You have an already-installed EverQuest folder
[edit]If you already play P99 on Windows and have a working EverQuest folder, the simplest approach is to copy it directly to your Steam Deck. Skip to Transferring an existing EQ folder below.
Option B — You have physical Titanium discs
[edit]You can either:
- Insert the discs and run the installer directly (requires a USB optical drive), or
- First create an ISO image from your discs using a tool like ImgBurn on a Windows PC, then transfer the ISO to the Steam Deck and follow the ISO path below.
If using a USB optical drive connected to the Deck, the disc should appear as a mounted device in the Dolphin file manager. Navigate to it and locate setup.exe, then follow the Installing from setup.exe steps below.
Option C — You have an ISO file
[edit]An ISO is a single file containing the full contents of a disc. To use it on the Steam Deck you need to mount it first, which makes it appear as a virtual disc drive.
Mounting an ISO on the Steam Deck
[edit]- Switch to Desktop Mode (hold Power button → Switch to Desktop).
- Open Discover and search for Mount Unmount ISO (by Pulsar-ai). Install it.
- Open Dolphin File Manager and navigate to your ISO file.
- Right-click the ISO file → Mount/unmount iso image → Mount.
- The mounted disc will appear in the Devices section in the left-hand pane of Dolphin, and can be browsed like a folder.
- Locate
setup.exeinside the mounted disc and proceed to Installing from setup.exe below.
Installing from setup.exe via Proton
[edit]EverQuest's installer is a Windows executable. On the Steam Deck you run it through Proton by temporarily adding it to Steam as a non-Steam game.
- In Desktop Mode, open Steam.
- Go to Games → Add a Non-Steam Game to My Library → Browse.
- Navigate to the disc, mounted ISO, or extracted folder and select
setup.exe. - Click Add Selected Programs.
- In your Steam Library, right-click the newly added entry → Properties → Compatibility tab.
- Check Force the use of a specific Steam Play compatibility tool and select a Proton version.
- Launch it. The EverQuest Titanium installer will run. Follow the on-screen steps and install to the default location.
- Once installation is complete, remove this entry from Steam — you will add the actual game in Step 2.
| Note: EverQuest Titanium uses SecuROM copy protection, which can cause the installer to stall or fail under Proton. If this happens, try a different Proton version, or use an already-installed folder instead (Option A above). |
Transferring an existing EQ folder to the Steam Deck
[edit]If your EverQuest folder is on a Windows PC, the easiest wireless method is:
- On your Steam Deck (Desktop Mode), open Discover and install Warpinator.
- On your Windows PC, download and install Winpinator from winpinator.app.
- Make sure both devices are on the same Wi-Fi network and run both programs — they will detect each other automatically.
- Send your EverQuest folder from Winpinator on the PC to the Deck, and accept the transfer in Warpinator on the Deck.
Alternatively, copy the folder to a USB drive or microSD card and transfer it that way.
Apply the P99 Patch Files
[edit]However you obtained the Titanium client, you must apply the P99 patch files before playing.
- Download the latest patch ZIP from the P99 files page. Always use the latest version available (V62 as of May 2026).
- Extract the ZIP directly into your EverQuest folder. The safest way is to use the terminal — this ensures files are merged correctly rather than whole folders being replaced:
unzip -o ~/Downloads/P99FilesV62.zip -d "/path/to/your/EverQuest folder/"
Replace the filename and path with your actual ZIP name and EQ folder location.
- Check for the DSETUP.dll case conflict: you should have one file named
dsetup.dll(all lowercase) in your EverQuest folder. If you also haveDSETUP.dll(uppercase), delete the uppercase one. Linux is case-sensitive and the wrong file will be loaded otherwise.
Getting an "Error in GUI XML files" message? This usually means the patch files were not merged correctly — whole subfolders were replaced instead of merged. Re-run the unzip -o command above pointing at your EQ folder. If the error only appears when launching via a Steam shortcut but not from the terminal, see the troubleshooting section below.
|
Step 2 — Add EverQuest to Steam and Create a Launch Script
[edit]Steam's built-in Proton management for non-Steam shortcuts can be unreliable on some setups due to how Steam wraps programs in its Linux Runtime container. The recommended approach is to create a small shell script that calls Proton directly, then add that script to Steam. This bypasses the container entirely and gives you full control over the launch environment.
Find your compatdata ID
[edit]When you ran setup.exe through Proton in Step 1, Steam created a folder under ~/.local/share/Steam/steamapps/compatdata/ to hold the Windows environment (Wine prefix). You will need its ID number when creating the launch script in the next section.
Open a terminal (Konsole) and run:
ls -lt ~/.local/share/Steam/steamapps/compatdata/ | head -5
The output will look something like this:
total 132 drwxr-xr-x 3 deck deck 4096 May 31 11:33 3359329736 drwxr-xr-x 3 deck deck 4096 May 30 09:11 2180100 drwxr-xr-x 3 deck deck 4096 Apr 5 13:02 1739530 drwxr-xr-x 3 deck deck 4096 Feb 24 21:52 1063420
The most recently created folder is at the top. In this example, that is 3359329736. Note this number for the next section (if you want a menu shortcut to the game).
If you transferred an existing EQ folder rather than running setup.exe, Proton still needs a Wine prefix (compatdata folder) to run the game, even though your EQ files are elsewhere. Create one by adding any file as a non-Steam game in Steam, enabling Proton for it, and launching it once. Note the resulting folder's number, then remove that placeholder shortcut. Your EQ files can stay wherever they are, and you will point the launch script at them directly.
Create the launch script
[edit]In a terminal, run:
nano ~/eq_launch.sh
Paste the following, replacing YOUR_ID with the number you found above:
#!/bin/bash EQ_DIR="$HOME/.local/share/Steam/steamapps/compatdata/YOUR_ID/pfx/drive_c/Program Files (x86)/Sony/EverQuest" cd "$EQ_DIR" STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/YOUR_ID" \ STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \ "$HOME/.local/share/Steam/steamapps/common/Proton - Experimental/proton" run \ "$EQ_DIR/eqgame.exe" patchme
Save (Ctrl+O, Enter, Ctrl+X), then make it executable:
chmod +x ~/eq_launch.sh
Note: The cd "$EQ_DIR" line at the top is required. Without it, EverQuest cannot find its UI files and will show an "Error in GUI XML files" dialog immediately on launch.
|
Note: The Proton Experimental folder is named Proton - Experimental (with a dash). To use a different Proton version, replace this portion with the correct folder name, e.g. Proton 9.0 (Beta).
|
Add the script to Steam
[edit]- In Desktop Mode, open Steam.
- Go to Games → Add a Non-Steam Game to My Library → Browse.
- Navigate to your home folder and select
eq_launch.sh. - Click Add Selected Programs.
- Right-click the new entry → Properties:
- On the Shortcut tab, give it a name like EQ Project 1999 and set Start In to
/home/deck. - On the Compatibility tab, make sure Force the use of a specific Steam Play compatibility tool is unchecked — the script calls Proton itself, so Steam must not also try to wrap it.
- On the Shortcut tab, give it a name like EQ Project 1999 and set Start In to
| Tip: Name the game EQ Project 1999 in Steam. Controller layouts are shared between players by game name, so a consistent name makes community layouts easier to find. |
Desktop Mode shortcut (optional)
[edit]To launch EQ from the application menu in Desktop Mode without opening Steam, create ~/.local/share/applications/EQP1999.desktop with a text editor and paste:
[Desktop Entry] Type=Application Name=EQ Project 1999 Categories=Game; Exec=bash -c 'cd "/home/deck/.local/share/Steam/steamapps/compatdata/YOUR_ID/pfx/drive_c/Program Files (x86)/Sony/EverQuest" && STEAM_COMPAT_DATA_PATH=~/.local/share/Steam/steamapps/compatdata/YOUR_ID STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam ~/.local/share/Steam/steamapps/common/"Proton - Experimental"/proton run "/home/deck/.local/share/Steam/steamapps/compatdata/YOUR_ID/pfx/drive_c/Program Files (x86)/Sony/EverQuest/eqgame.exe" patchme' Terminal=false
Replace YOUR_ID with your actual folder ID.
Step 3 — Configure eqclient.ini
[edit]A clean Titanium install creates an eqclient.ini with settings that cause rendering problems under Proton. Replace the entire contents of the file with the following before your first launch.
Open eqclient.ini in your EverQuest folder with a text editor (KWrite works well in Desktop Mode), delete everything in it, and paste this:
[Defaults] Sound=TRUE TextureQuality=1 VertexShaders=FALSE 20PixelShaders=FALSE 14PixelShaders=FALSE 1xPixelShaders=FALSE MultiPassLighting=FALSE UseLitBatches=FALSE WindowedMode=TRUE TextureCache=FALSE DoProperTinting=FALSE
[VideoMode] Width=1280 Height=800 FullscreenRefreshRate=0 FullscreenBitsPerPixel=32 WindowedWidth=1280 WindowedHeight=800 WidthWindowed=1280 HeightWindowed=800
Save the file.
| Steam Deck native screen: The values above (1280×800) match the Steam Deck's built-in display. If you are using an external monitor, replace all four width/height values with your desired resolution. Leave around 90 pixels of height for the window title bar and taskbar (e.g. on a 1440p monitor, use 1340 rather than 1440). |
| Getting a black screen with an unclickable seizure warning modal? This is caused by the default shader settings. Make sure you have replaced eqclient.ini with the config above — particularly that all shader values are set to FALSE and WindowedMode=TRUE. |
Tip: If text in-game is too small, use the command /chatfontsize 5 (any number 1–8) to increase the chat font size.
|
Step 4 — Launch the Game
[edit]On Steam Deck, switch back to Gaming Mode and find the game in your Non-Steam library. On desktop Linux, launch it from Steam or run the script directly:
~/eq_launch.sh
Log in with your P99 account credentials at the login screen.
| Note: The game may crash the first time you try to enter the world. This is normal — simply relaunch and try again. |
Step 5 — Fix the Server List
[edit]After logging in, the server selection screen may show a blank list. This is caused by a UDP networking quirk in Linux's handling of EverQuest's login protocol.
Option A — Retry or restart (no setup required)
[edit]Logging out and back in a few times, or restarting the Deck and trying again, sometimes resolves the issue on its own. Not reliable, but worth trying first.
Option B — Use a mobile hotspot
[edit]Connecting to a mobile phone hotspot instead of home Wi-Fi makes the server list populate reliably for many players.
| Note: Some home Wi-Fi router configurations cause this consistently. If a hotspot works but home Wi-Fi never does, use the middleman tool (Option C) rather than continuing to troubleshoot the router. |
Option C — Build the login middleman (recommended)
[edit]Two tools exist for this — both are source-only and require a one-time build.
Option C1 — p99-login-middlemand by Zaela (C):
sudo pacman -S base-devel git clone https://github.com/Zaela/p99-login-middlemand cd p99-login-middlemand make
Option C2 — p99_login_helper by rtrajano (Python, no build required):
git clone https://github.com/rtrajano/p99_login_helper
Before each EQ session, run whichever you built:
~/p99-login-middlemand/bin/p99-login-middlemand &
or
python3 ~/p99_login_helper/p99_login_helper.py &
Then launch EQ from Steam as normal.
Step 6 — MIDI Music (optional)
[edit]EverQuest's background music uses MIDI. You may hear no music by default.
Steam Deck / Arch Linux
[edit]sudo pacman -S timidity++ soundfont-fluid timidity -iA &
Then relaunch EverQuest. For music on every boot, set up a systemd user service for Timidity.
Ubuntu / Debian / Mint (desktop Linux with Steam)
[edit]sudo apt install timidity fluid-soundfont-gm timidity -iA &
Step 7 — Controller Layout (optional, Steam Deck)
[edit]A Bluetooth keyboard remains the best solution for chat-heavy play. A layout that has worked well:
- Left joystick: W (forward), S (back), Q (strafe left), E (strafe right)
- Right joystick: Page Up / Page Down (camera), A (turn left), D (turn right)
- Face buttons: spell gem / hotkey bindings (1, 2, 3, 4...)
- Triggers / paddles: additional abilities, Alt key
To browse community layouts, name your game EQ Project 1999 in Steam, then go to controller settings → Community Layouts.
Troubleshooting
[edit]Game exits immediately after launching from Steam
[edit]- Is Compatibility unchecked? The script calls Proton directly — Steam must not also apply Proton.
- Is the Target set to
eq_launch.sh? - Is the script executable? Run
chmod +x ~/eq_launch.sh.
Run the script directly from a terminal to see error output:
~/eq_launch.sh
Debugging from the terminal
[edit]PROTON_LOG=1 ~/eq_launch.sh
Errors will print to the terminal and a log file will be saved to your home directory.
Note: The Proton Experimental folder name is Proton - Experimental (with a dash), not Proton Experimental.
|
Error in GUI XML files
[edit]Two causes:
Cause 1 — Bad patch file extraction: The patch ZIP replaced whole subdirectories instead of merging files. Fix: re-run unzip -o from Step 1 pointing at your EQ folder.
Cause 2 — Wrong working directory: EverQuest looks for UI files relative to the directory it is launched from. The launch script must cd into the EQ folder before running Proton. Make sure your eq_launch.sh contains the cd "$EQ_DIR" line.
Game crashes entering world
[edit]Normal on first launch. Exit fully and relaunch — it usually succeeds on the second attempt.
Black screen or freeze when exiting
[edit]Wait a moment before pressing Escape. If frozen, press Steam button → Home to return to the Steam Deck UI without force-quitting.
Invisible characters / shadow outlines instead of models
[edit]In the [Defaults] section of eqclient.ini, set:
VertexShaders=FALSE 20PixelShaders=FALSE 14PixelShaders=FALSE 1xPixelShaders=FALSE
"Your files are out of date" at character select
[edit]Re-extract the patch ZIP and confirm overwrites. Also check: Linux is case-sensitive — you should have dsetup.dll (lowercase) only. If DSETUP.dll also exists, delete the uppercase version.
Mouse cursor stuck on left side of screen (Steam Deck)
[edit]Resolution is not set correctly. Return to Step 3 and make sure all four width/height values match your display (1280×800 for the built-in screen).
Frame rate drops / lag in crowded areas
[edit]Social animations: Disable them in Options → Display. This has a significant impact in the Bazaar and raid zones.
32-bit memory limit: EQ can exhaust its virtual address space in very crowded areas. Add this to your eq_launch.sh on the same line as the other variables:
PROTON_FORCE_LARGE_ADDRESS_AWARE=1
Blank server list
[edit]See Step 5. The login middleman tools (Option C) are the reliable long-term fix. Some home Wi-Fi configurations cause this consistently — a mobile hotspot is a quick test to confirm it is network-related.
Game is too dark
[edit]The Gamma= setting in eqclient.ini only applies in fullscreen mode and has no effect in windowed mode. The fix is to use xrandr to adjust the display gamma before launching the game.
Add this line near the top of your eq_launch.sh, before the cd line, and a reset line at the end:
#!/bin/bash xrandr --output DisplayPort-0 --gamma 2.0:2.0:2.0 EQ_DIR="$HOME/.local/share/Steam/steamapps/compatdata/YOUR_ID/pfx/drive_c/Program Files (x86)/Sony/EverQuest" cd "$EQ_DIR" STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/YOUR_ID" \ STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \ "$HOME/.local/share/Steam/steamapps/common/Proton - Experimental/proton" run \ "$EQ_DIR/eqgame.exe" patchme xrandr --output DisplayPort-0 --gamma 1:1:1
Replace DisplayPort-0 with your actual output name if different — run xrandr with no arguments to list connected outputs. The three numbers in 2.0:2.0:2.0 are R:G:B gamma — keep them equal for neutral brightening and adjust to taste. The reset line at the end restores normal gamma when you exit EQ.
References
[edit]- How to mount an ISO on the Steam Deck — XDA Developers
- EverQuest in Linux Guide — Project 1999 Wiki
- "Project 1999 on the Steam Deck? Absolutely!" — P99 Forums (Mithu)
- "P99 STEAMDECK STEP BY STEP" — P99 Forums (framk71389)
- "Steam Deck" — P99 Forums (Kylenorr)
- "Running EQ under LINUX" — P99 Forums (mgellan)
- p99-login-middlemand — GitHub (Zaela)
- p99_login_helper — GitHub (rtrajano)
- project1999-for-linux — GitHub (eliashow)
- EverQuest on Lutris
- Linux and Steam Deck Install Guide — Quarm.Guide
- EverQuest on a Steam Deck — RedGuides