Recently I cam acroos interesting article [Serious Sam 4 Linux DXVK Wine](https://software.kaminata.net/linux-wine-games/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](https://wiki.playonlinux.com/index.php/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](https://www.gog.com/game/serious_sam_4_deluxe_edition) As a result you should have following: ```shell ├── 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](https://github.com/GloriousEggroll/proton-ge-custom/releases) 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!