Guide:Path of Exile on Wine

From Path of Exile Wiki
Revision as of 00:07, 15 November 2014 by >Sovyn (Added info about the new patch for Wine 1.7.31 that fixes UI glitches)
Jump to navigation Jump to search

Guide to install PoE on Wine under PlayOnLinux to fix memory leaks, crashes and FPS drops

Now Updated for Path of Exile 1.2.2

Originally posted by Sovyn on the official Path of Exile forums, here.

First, my system is:

Ubuntu Linux 14.04 LTS 64-bit
4 GB RAM
Video Card: Nvidia GeForce GTX 750 Ti with 2GB memory
Nvidia proprietary driver 337.25
Screen Resolution: 1920x1080 (1080p), PoE runs in full screen mode

If your system is different, this guide may or may not solve every little issue but it should get you up and running without memory leak issues or crashes. Different distributions of Linux may have bugs with their packages that I am unable to reproduce.

Step 0) If you don't yet have PlayOnLinux, go get it. It's free and makes it easy to manage different versions of Wine. After installation of PlayOnLinux, you can resume this step-by-step guide.

Step 1) In PlayOnLinux: in the menu, click Tools / Wine Versions. In this window, select a version of Wine for installation (1.7.19-WGL_WINE_surface2 is a good choice as of this writing). Newer versions of Wine may have regressions, for example, 1.7.26 has issues with Path of Exile. I recommend an x86 version of Wine for best compatibility, although currently you may have to select amd64 if you require the highest texture quality setting in PoE. After selecting your version, press the right arrow in the window and follow the simple prompts to install Wine. After that finishes, close the Wine Versions window. (Pro tip for tech gurus: compile Wine 1.7.31 yourself with this patch and install on your system. This is the best gameplay experience at the present time. You would then choose 'System' as the Wine version in step 2, below.)

Step 2) Back in the main PlayOnLinux window, click the Configure button. Click the New button. In the virtual drive creator wizard, select 32 or 64 bits windows installation per your choice in step 1, then select the same Wine version that you installed in step 1, name the drive (PoE, for example).

For step 3, you have a choice. Save time and bandwidth if you have the game folder already installed elsewhere, or do a new installation.

Step 3a) New installation method Download PathOfExileInstaller.msi from the official site. Back in PlayOnLinux, after completing the virtual drive creator wizard per the previous step, click the name of the new virtual drive you created (PoE) in the PlayOnLinux configuration screen. Go to the Miscellaneous tab. Click 'Run a .exe in this virtual drive.' Browse to the location where you saved PathOfExileInstaller.msi, such as your desktop or home/downloads. Select PathOfExileInstaller.msi and click the 'open' button. Follow the installation wizard. The default path is fine. Click finish and the installer will exit. The game files will download the first time you launch the game. For now, go to step 4.

Step 3b) Copy game files method After completing the virtual drive creator wizard, click the name of the new virtual drive you created (PoE). Go to the Miscellaneous tab. Click "Open virtual drive's directory." You are now looking at a file manager window. Open the folder drive_c, then Program Files. In the manner you typically do, open a new file manager window and navigate to wherever you currently have Path of Exile installed. You will now be looking at two file manager windows side-by-side. Right click the Grinding Gear Games folder and left click "Cut". In the other window, right click in the empty white space in the window, and left click "Paste." You have now moved your game over to the new PlayOnLinux virtual drive. Close both file manager windows. Basically, in this step we are getting a fully working Path of Exile install from somewhere and pasting it into the new virtual drive's programs directory. It does not matter where you get it from - a Windows partition, a different PlayOnLinux virtual drive, your .wine folder, bring it over from a friend's on your thumb drive, etc.

Make sure you have the latest version of Winetricks installed. I just edited my copy which was located at /usr/bin and cleared the file, pasted in the latest Winetricks code (20130707 as of this writing) from the link above, then saved the file. In a system terminal type: sudo gedit /usr/bin/winetricks

Back in the PlayOnLinux configuration window again, click the name of your new Path of Exile virtual drive (PoE in this example). Go to the Miscellaneous tab. Click "Open a shell." From the console prompt, type: winetricks directx9 vcrun2010

This command will install the required components to run Path of Exile including Directx and the VC++ Runtime.

Follow the on screen prompts.

You will see a few lines of output reported in the console window. Don't be alarmed if there are what appears to be a few error messages sprinkled in. When it's done, close the console window.

Step 4) If it is not already open, open up the PlayOnLinux configuration window again, click on the name of the virtual drive that we made (PoE).

- Click the "Display" tab.

- Select "disabled" in the drop-down box next to "GLSL Support". (This setting may only work on Nvidia cards. In addition, a few UI graphics glitches are to be expected with the available PlayOnLinux wine versions, which seems to be a small price to pay for freedom from FPS drops.)

- Select your video memory size (in my case, 2048) in the drop-down box next to "Video memory size".

- Pro tip for tech gurus: If using Wine version other than 1.7.19-WGL_WINE_surface2 or 1.6.2, set Offscreen rendering mode to "backbuffer" in order for the game to load.

Step 5) Now, click the Wine tab. Click "configure wine." After a moment, the Wine configuration window will open. Select "Windows 8" from the Windows Version dropdown menu. Click OK to close this window.

Step 6) Next, go to the Miscellaneous tab. Click "Open a shell." From the console prompt, type: winetricks riched20 usp10

This command will install a library required for the launcher window to appear correctly and a library to fix unicode symbols like the newlines not displaying correctly. When it's done, close the console window.

Step 7) Lastly, click the General tab. Click "Make a new shortcut from this virtual drive" Follow the wizard to make a shortcut for PathOfExile.exe. It may show as one of the options on the choose a shortcut screen -- if not, select 'Browse' and click next, then click the Browse button and navigate to Program Files/Grinding Gear Games/Path of Exile, single click PathOfExile.exe and then click Open, and PathofExile.exe will now show below the Browse button -- click Next. You will need to name the shortcut, I named it Path of Exile. The wizard will ask you if you want to make another shortcut, select "I don't want to make another shortcut".

Step 8) Before launching the game for the first time, Open the file "(home folder)/My Games/Path of Exile/production_Config.ini" in your favorite text editor. Scroll down to the [DISPLAY] section. The critical thing is to set fullscreen=true and enter your monitor's resolution (This prevents an "Failed Resetting Direct3D device objects" error). Also, setting antialiasing off (antialias_mode=0) can help with some gamma issues with certain Wine versions. For example, here is my [DISPLAY] section, which should be fairly standard:

antialias_mode=0 borderless_windowed_fullscreen=false fullscreen=true post_processing=false resolution_height=1080 resolution_width=1920 screen_shake=false shadow_type=no_shadows texture_filtering=2 texture_quality=1 vsync=false

That's it for the main guide, other tweaks that may or may not help you are found below.

Tweak to Slightly Improve Readability of Certain Corrupted In-Game Fonts - In PlayonLinux configuration, click the name of your PoE virtual drive, then go to the Wine tab, then click 'Registry Editor.' When the registry editor pops up, using the tree to the left-hand side, browse to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes

Right click an empty space in the right-hand frame and select New --> String Value.

The name of your new string will be: Fontin SmallCaps

When the string appears and you have named it, double click on it and enter the value: Fontin

Exit the Registry Editor.

For ATI/AMD Graphics Card Owners only - I recommend that you buy, beg, or borrow a decent Nvidia card, but if you must, here is a possible improvement for the extreme FPS drop issues on AMD/ATI graphics cards, at least on my test system (Ubuntu Linux 12.04.1 LTS AMD64, ATI HD 4770, 4 GB ram, Samsung SSD).

First, I removed the AMD proprietary drivers (FGLRX), if present. In a system terminal:

sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*

I then rebooted just in case.

In a system terminal:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

sudo apt-get update

Then I went to the Update Manager as I wanted to see exactly what packages were being updated.

I installed everything suggested.

Then I rebooted again.

In a system terminal:

glxinfo | grep "OpenGL version"

....Now reads Mesa 9.0 instead of 8.x.

Basically this mini guide reverts from the proprietary driver back to the free open source (FOSS) driver, and then updates the FOSS driver to a newer version than available from the default sources.

The average FPS is not super, but I think overall the game is more playable than with the 'faster' proprietary driver with its more extreme hesitations in PoE.

Intel Graphics Owners - Intel Sandy Bridge/Ivy Bridge graphics (HDxx00) needs the latest Linux kernel for best performance. Older Intel graphics chipsets (GMA series) are too problematic and/or slow for PoE to be playable.

Possible fix for the LONG Allocating Space issue Credit to FeepingCreature and Drakier

I'm running a Debian based 64-bit system so I had to "apt-get install eatmydata:i386" from a terminal (since wine is 32-bit, you need the 32-bit version of the lib). Normal users on 32-bit installations should be able to "apt-get install eatmydata" (or whatever the relevant command is for your distro - for example it would be "emerge libeatmydata" on Gentoo).

Once that was done, I had to track down where it put the lib, which I found on my system at the following location: /usr/lib/libeatmydata/libeatmydata.so

I then went into PlayOnLinux and clicked Configure on the Path of Exile shortcut, then under the Miscellaneous tab the bottom box is a command to exec before running the program, and I put in there export LD_PRELOAD=/usr/lib/libeatmydata/libeatmydata.so

I closed the dialog. Then to test it, I renamed my old Content.ggpk to a backup and launched the Path of Exile shortcut. Allocating Space took only a few minutes rather than the HOURS it was before.