Skip to content

Instantly share code, notes, and snippets.

@arillat
Last active February 15, 2024 09:21
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arillat/2b7e519a69268f519d507d0ed50b9713 to your computer and use it in GitHub Desktop.
Save arillat/2b7e519a69268f519d507d0ed50b9713 to your computer and use it in GitHub Desktop.
Play EVE Online on Arch Linux with WineHQ

Short link to this gist: https://t1p.de/evewine

1. Install Wine

To install Wine and its dependencies, include the [multilib] repo, then just create a meta package and install.

If vulkan is not installed, meta package will ask you to choose a vulkan provider, pick what you like. Since I have an AMD Radeon graphics, I picked vulkan-radeon.

sudo nano /etc/pacman.conf 
# and uncomment the following lines in /etc/pacman.conf 
# [multilib]
# Include = /etc/pacman.d/mirrorlist

# create a meta package
mkdir eve-meta
cd eve-meta/
nano PKGBUILD # create the PKGBUILD file here with the content shared at the end
makepkg -si # select your vulkan when this command runs

2. Configure Environment

export WINEARCH=win64 WINEPREFIX=~/.local/share/wineprefixes/eve-online
winecfg # Staging > Enable VAAPI as backend for DXVA2 GPU Decoding

# Optional: Set temp directory on tmpfs
# rm -r $WINEPREFIX/drive_c/users/$USER/Temp $WINEPREFIX/drive_c/windows/temp
# ln -s /tmp/ $WINEPREFIX/drive_c/users/$USER/Temp
# ln -s /tmp/ $WINEPREFIX/drive_c/windows/temp

winetricks msdelta vkd3d vcrun2022 dxvk2030

Also increasing the vm.max_map_count (link) might be helpful.

3. Installing EVE Online

Get the new installer from the official website:
https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe

Run it as a normal user:

 WINEPREFIX=~/.local/share/wineprefixes/eve-online/ wine ~/Downloads/eve-online-latest+Setup.exe 

EVE Online launcher should be running at this point, let the minimum game files be downloaded until the client is ready.

Wine should also add a .desktop file for EVE Online for easy launching from applications list. The created .desktop file might not launch the game. If so, add start as a command parameter for wine.

image

I tried running the game for a while, and it runs but stops responding every once in a while runs well after downloading the full game client, for now. I also find it useful to run in windowed mode so that client can be forcefully terminated.

image

I have personally added some environment variables to the launch command, and the entire .desktop file is shared below. For ENABLE_VKBASALT=1 to take effect, install vkbasalt from AUR (link).

To associate the URI schemes eveonline: and evelauncher:, update your .desktop file as shown in the reference EVE Online.desktop given below. Then run

 update-desktop-database ~/.local/share/applications/
 update-mime-database ~/.local/share/mime/
[Desktop Entry]
Name=EVE Online
Exec=env LD_BIND_NOW=1 ENABLE_VKBASALT=1 __GL_THREADED_OPTIMIZATIONS=1 __GL_SYNC_TO_VBLANK=0 __GL_NextGenCompiler=1 DXVK_HUD=fps VKD3D_CONFIG=force_host_cached VKD3D_DEBUG=none WINEESYNC=1 WINEDEBUG="-all" STAGING_SHARED_MEMORY=1 WINEPREFIX="/home/username/.local/share/wineprefixes/eve-online" wine start "C:\\users\\username\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\CCP Games\\EVE Online.lnk" "%u"
Type=Application
StartupNotify=true
Path=/home/username/.local/share/wineprefixes/eve-online/dosdevices/c:/users/username/AppData/Local/eve-online/app-1.2.2
Icon=1773_eve-online.0
StartupWMClass=eve-online.exe
MimeType=x-scheme-handler/eveonline;x-scheme-handler/evelauncher
winearch=win64
wineprefix=$HOME/.local/share/wineprefixes/eve-online
echo 'Running Wine Config'
echo 'Check Staging > Enable VAAPI as backend for DXVA2 GPU Decoding'
WINEARCH=$winearch WINEPREFIX=$wineprefix winecfg 2>winecfg.log
echo 'Linking temp dirs to /tmp/'
rm -rf $wineprefix/drive_c/users/$USER/Temp $WINEPREFIX/drive_c/windows/temp
ln -s /tmp/ $wineprefix/drive_c/users/$USER/Temp
ln -s /tmp/ $wineprefix/drive_c/windows/temp
echo 'Installing dependencies'
WINEARCH=$winearch WINEPREFIX=$wineprefix winetricks -q msdelta vkd3d vcrun2022 dxvk2030 2>&1 1>winetricks.log
echo 'Installed dependencies in Wine:'
WINEARCH=$winearch WINEPREFIX=$wineprefix winetricks list-installed 2>/dev/null
echo 'Downloading EVE Online'
curl -LJO 'https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe'
echo 'Installing EVE Online'
WINEARCH=$winearch WINEPREFIX=$wineprefix wine 'eve-online-latest+Setup.exe' 2>&1 1>eveinstall.log
pkgname=eve-online-meta
pkgver=2024.01
pkgrel=9
pkgdesc="The #1 Space MMO"
arch=('any')
url="https://www.eveonline.com/"
license=('custom:unknown')
depends=( 'base-devel' 'gnutls' 'gst-plugins-base-libs' 'libldap' 'libva' 'mpg123' 'openal' 'samba' 'v4l-utils'
'lib32-alsa-lib' 'lib32-alsa-plugins' 'lib32-gnutls' 'lib32-gst-plugins-base-libs' 'lib32-libldap'
'lib32-libpulse' 'lib32-libva' 'lib32-libxml2' 'lib32-mpg123' 'lib32-openal' 'lib32-v4l-utils'
'wine-staging' 'wine-mono' 'wine-gecko' 'winetricks' 'vulkan-driver' 'lib32-vulkan-driver' 'vulkan-tools')
source=('https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe')
cksums=(SKIP)
package() {
true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment