Skip to content

Instantly share code, notes, and snippets.

@volodalexey
Last active February 20, 2022 14:03
Show Gist options
  • Save volodalexey/e19b8c9593395228c5f9d26cffc12928 to your computer and use it in GitHub Desktop.
Save volodalexey/e19b8c9593395228c5f9d26cffc12928 to your computer and use it in GitHub Desktop.
Install/Play Serious Sam 4 GOG on Linux [Ubuntu] [Proton GE] [PlayOnLinux]

Recently I cam acroos interesting article Serious Sam 4 Linux DXVK Wine

I found out that this article is outdated + additionally I wanted to setup Serious Sam on PlayOnLinux (not Lutris).

Here is my steps.

1 (Optional) Change default PlayOnLinux location

First of all Serious Sam 4 requires 42 GB of storage. This is too much for my system folder. However I have additional mounted disk/folder. The problem is that PlayOnLinux by default store its "bottles" in the home path (different virtual wine folders), e.g. ~/.PlayOnLinux. I changed default location by this guide How to move PlayOnLinux virtual drives to another disk.

  • close PlayOnLinux
  • create .PlayOnLinux folder on mounted disk. E.g. mkdir /mnt/mystorage/Install/.PlayOnLinux/
  • copy default .PlayOnLinux folder into new created. E.g. cp -av ~/.PlayOnLinux/ /mnt/mystorage/Install/.PlayOnLinux/
  • clean default .PlayOnLinux folder rm -rf ~/.PlayOnLinux
  • make a symlink from default .PlayOnLinux folder into new one. E.g. ln -s /mnt/mystorage/Install/.PlayOnLinux ~/.PlayOnLinux

2 Obtain Serious Sam 4

As a result you should have following:

├── Bonus
│   ├── serious_sam_4_artbook.zip
│   ├── serious_sam_4_ost_aac.zip
│   ├── serious_sam_4_ost_flac.zip
│   ├── serious_sam_4_ost_ogg.zip
│   └── serious_sam_4_ost_wav.zip
├── DLC
│   └── setup_serious_sam_4_deluxe_edition_dlc_1.08_(64bit)_(45801).exe
├── setup_serious_sam_4_1.08_(64bit)_(45801)-10.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-11.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-1.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-2.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-3.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-4.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-5.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-6.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-7.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-8.bin
├── setup_serious_sam_4_1.08_(64bit)_(45801)-9.bin
└── setup_serious_sam_4_1.08_(64bit)_(45801).exe

3 Prepare PlayOnLinux "bottle"

  • Run PlayOnLinux
  • Go to Tools -> Manage Wine versions
  • Select Wine versions (amd64) tab
  • Install at leat one x64 wine version, e.g. 6.17-staging
  • Close Manage Wine versions window
  • Go to Configure -> New for adding bottle (virtual drive)
  • Next -> 64 bits windows installation -> Select some Winex64 version e.g. 6.17-staging
  • Enter name of the bottle, e.g. x64v6.17staging
  • After bottle was created -> select this bottle on the left and Install components tab on the right
  • Install d3dcompiler_47 and DXVK
  • Select Miscellaneous tab on the right and click Run a .exe file in this virtual drive and install Serios Sam 4 by selecting setup_serious_sam_4_1.08_(64bit)_(45801).exe
  • Close PlayOnLinux for now

4 Adjust Serious Sam configs

Game by default tries to use Vulkan API, which is buggy and even can not start the game.

  • In order to start the game go to game folder, e.g. cd /mnt/mystorage/Install/.PlayOnLinux/wineprefix/x64v6.17staging/drive_c/GOG Games/Serious Sam 4/
  • Open UserCfg.lua with any text editor and add following lines at the end of the file:
gfx_strAPI = "Direct3D11";
sfx_strAPI = "OpenAL";
  • Save and close UserCfg.lua
  • Go to Content/SeriousSam4/Config/
  • Open CheckDriver.lua with text editor and replace with the following:
local aSettings = {
  { cvar="sys_iGPUVendorID" },
  { cvar="sys_strPlatform" },
  { cvar="gfx_iReqDriverVersion" },
  { cvar="gfx_iAPI" },
}

-- vendor IDs

local VID_NVIDIA = 0x10DE;
local VID_ATI = 0x1002;
local VID_INTEL = 0x8086;

-- assume no driver version detection
gfx_strAPI = "Direct3D11";

-- if vendor is nVidia
if sys_iGPUVendorID==VID_NVIDIA then

  -- set needed driver version (September 2020)
gfx_strAPI = "Direct3D11";
  
-- if vendor is ATI
elseif sys_iGPUVendorID==VID_ATI then

  -- set needed driver version (September 2020)
gfx_strAPI = "Direct3D11";

-- if vendor is ATI
elseif sys_iGPUVendorID==VID_INTEL then

  -- set needed driver version (September 2020)
gfx_strAPI = "Direct3D11";
  
-- for any other vendor
else

  -- just report a warning
  print( "Unable to check for correct version of display driver!");
 
end
  • Save and close CheckDriver.lua

5 Download lates Proton GE archive

e.g. Proton-7.2-GE-2 Released

  • Extract Proton-7.2-GE-2.tar.gz archive
  • Create folder in .PlayOnLinux/wine/linux-amd64/ e.g. Proton7.1GE2
  • Copy bin, lib, lib64, share folders from Proton-7.2-GE-2.tar.gz archive (files subfolder) into newly created folder, e.g. cp -av /home/lex/Downloads/Proton-7.1-GE-2/files/ /mnt/mystorage/Install/.PlayOnLinux/wine/linux-amd64/Proton7.1GE2/

6 Start the game

  • Run PlayOnLinux
  • Go to Configure -> select your bottle e.g. x64v6.17staging
  • Open General tab on the right and on the line Wine version you should seelct Proton7.1GE2 (the folder that you created earlier and PlayOnLinux should detect wine inside this folder)
  • Click Make a new shortcut from this virtual drive and select Sam4.exe and Next
  • Close PlayOnLinux configuration window and run Sam4!
@volodalexey
Copy link
Author

The same works for Serious Sam: Siberian Mayhem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment