GOG Galaxy (Linux Bug)

Where is the Linux version of GOG?

On GOG https://www.gog.com you can find a lot of great games without any digital restriction management (DRM) that run natively on GNU/Linux. Very good examples are of view Witcher 2 and Factorio. But without a native Linux client there is no reason to buy games on GOG.

A lot of Linux users complaint already, as they feel treated as second class customers. GOG Galaxy is using Qt, so there is obviously no reason to not get started with Linux support. But they lost obviously interest, read this for more details https://www.gamingonlinux.com/articles/looks-like-gog-galaxy-wont-come-to-linux-any-time-soon-as-its-not-a-priority.10183.

And they GOG Galaxy is as well only a 32bit application (Bug).

GOG Galaxy in Wine

Installing GOG Galaxy was previously broken with Wine whenever tested, but the latest versions do run fine. You can download it from here https://www.gog.com/galaxy. The version 1.2.6.25, 1.2.9.5, 1.2.10.31, 1.2.12.10, 1.2.14.50.. 1.2.45 didn’t work anymore as of missing a libraries.

 

Wine + Proton standalone

Wine and Proton do not support Wayland yet. At least SDL2 and Dosbox are available with Wayland support, so they are used below (dosbox is replaced with dosbox-sdl2 and sdl1 is replaced with sdl2-compat12).

Bug: Wayland

Wine misses any Wayland support at the moment, so playing games means you play e.g. DirectX trough OpenGL/Vulkan trough XWayland to the Wayland layer. Sounds not too good, even if XWayland should affect the performance only slightly. The status can be seen in the bug report https://bugs.winehq.org/show_bug.cgi?id=42284, sadly there is no activity at all at the moment.

Wine-Wayland

Wine-Wayland (https://github.com/varmd/wine-wayland) is developed by a Wine independent developer with a focus on Vulkan. There is no OpenGL support.

Proton standalone

Proton (license BSD, https://github.com/ValveSoftware/Proton/) is an improved Wine version developed by Valve with additional patches from Wine-Staging, DXVK, FAudio, esync, … integrated to Steam named Steam Play so that all Windows only games can be played usually with one click on the play button. But you can install Proton standalone (wine-valve) as a replacement for Wine (replaced by wine-valve), just run:

yay vkd3d-git
yay lib32-vkd3d-git
yay proton-git
pacman -Sy wine_gecko wine-mono faudio lib32-faudio lib32-libpulse lib32-mpg123 lib32-gnutls lib32-libldap opencl-icd-loader lib32-v4l-utils lib32-opencl-icd-loader lib32-libxslt lib32-gst-plugins-base-libs lib32-libcanberra-pulse lib32-openal lib32-giflib lib32-libva samba
yay -aS sdl2_compat12-git
yay -aS --noconfirm lib32-sdl2_compat12-git
yay dosbox-sdl2

Wine

Wine 5.6 (https://www.winehq.org) maps the Windows API to Linux so that you are able to run Windows applications and especially games on Linux (this doesn’t require a Windows license). To install Wine and it’s recommended base dependencies (see Arch Linux wiki https://wiki.archlinux.org/index.php/Wine) or just run the following command (minimum [green], recommended [blue] and optional [grey] packages of wine):

pacman -Sy wine wine_gecko wine-mono vkd3d faudio lib32-faudio lib32-vkd3d lib32-libpulse lib32-mpg123 lib32-gnutls lib32-libldap opencl-icd-loader lib32-v4l-utils lib32-opencl-icd-loader lib32-libxslt lib32-gst-plugins-base-libs lib32-libcanberra-pulse lib32-openal lib32-giflib lib32-libva samba
yay -aS sdl2_compat12-git
yay -aS --noconfirm lib32-sdl2_compat12-git
yay dosbox-sdl2

Several applications will run out of the box with the minimum dependencies. Wine has a 64bit run time, but a lot of Windows applications still requires 32Bit. It’s crazy how slow the Windows world switches to 64bit! As of this Wine pulls a lot of lib32* dependencies (make sure that Multilib is activated, if you need to activate it, read https://wiki.archlinux.org/index.php/Multilib).

If one application doesn’t start, open a terminal and run it like this to get additional output:

wine /path/to/application.exe

This is especially recommended if you install a new application and you want to check for error messages and missing dependencies without wondering why certain things don’t work.

Wine-Staging

Wine-Staging contains a lot of additional patches and fixes.

To install wine-staging and to be able to use the new Gtk3 backend (it needs to be activated in winecfg manually), run:

pacman -Sy wine-staging lib32-gtk3

OpenGL

Wine has been developed mostly around OpenGL. If a game has been released with OpenGL support for Windows only, then Wine can run the game natively on Linux by providing only the Windows API’s with the OpenGL stack.

Legacy WineD3D: DirextX -> OpenGL

The Wine project translates DirectX up until version 11 to OpenGL. The road to provide this support up until DX11 was extremely hard and took many years.

Nowadays in terms of performance and stability it is recommended to use Vulkan.

Vulkan

Since Wine 1.9.6 Vulkan applications/games run in Wine on Linux. Wine 3.4 reworked Vulkan support completely and offers since Wine 3.5 an integrated Vulkan loader. Kronos updated the Vulkan license and this allowed Wine to move from Vulkan 1.0.51 to 1.1 and newer (since 4.5). Basically the Windows surfaces are mapped by Wine to X11/XCB to provide direct Vulkan support.

Direct 3D 8/9/10/11/12 -> Vulkan

Similar to Wine’s translation layer of Direct 3D (DirectX) to OpenGL there are several projects to translate Direct 3D to Vulkan, which avoids certain bottlenecks of Wine’s legacy WineD3D OpenGL implementation. DXVK (which includes now D9VK) works great for all DirectX 9, 10 and 11 games. DirectX 12 is translated via the Vulkan based VKD3D. Direct 3D 8 and DirectDraw 1-7 and can be translated to DirectX9 via DXWrapper. For more details read DXVK + VKD3D and Vulkan-ize graphic and compute API’s.

Wine Prefix

With Wine prefix you can create multiple instances of the .wine folder including own settings and adjustments. In the example below a second prefix is created to run just the default wine without any modifications, this is useful if the default one has too many modifications. Or you can use it to test different software and settings. To create a new prefix, run after replacing CUSTOMPREFIX:

env WINEPREFIX=~/.wine-CUSTOMPREFIX wineboot -u

To run a application with this, run:

env WINEPREFIX=~/.wine-CUSTOMPREFIX winefile

Supporting Wine

If you want to support the Wine development, you can buy CrossOver. It is a commercial version of Wine and a lot of work is done by Codeweavers, you can buy it here https://www.codeweavers.com/products/crossover-linux. Another way is just to buy games on Steam as Valve is funding directly Proton, DXVK, VKD3D, ACO, RADV, FAudio, FSync…