Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
A dissertation on the Ritual crime of SiN and how to get away with it
Hamish Mar 14, 2017
Or so the opening of "C1L10: Hard Hat Area" from Blood II: The Chosen goes, along with a pointed jab at Half-Life. Shogo gets spared due to it being by the same developer, but Caleb does make a crack about Unreal two chapters later. Which just goes to show how many FPS games were released in 1998.

Anyway, trying to get SiN Gold from GOG.com to run through WINE did not go as expected. At first glance you would think that getting a Quake II powered game to run would be no trouble at all. You would be wrong. The first problem is how GOG.com bundles it. Instead of using any of the native rendering options GOG.com ships the game using the nGlide wrapper to emulate 3Dfx Voodoo Glide through DirectX 9. While this does actually function and render properly through WINE the frame rate is abysmal.

OpenGL would of course be the best choice here, but selecting the "Default OpenGL" option always caused the game to crash. You can just play with the software renderer, but in 2017 I just had too much trouble accepting that I had to play a game released in 1998 without hardware acceleration. Looking into it more I discovered that this was not in fact a WINE issue but a problem with SiN itself. When faced with a modern OpenGL implementation it chokes on the vast amount of extensions that are now available.

Previous attempts to limit the OpenGL version through WINE proved ineffective, so I thought I would try at the driver level instead. Mesa supports exporting various environment variables that can control the OpenGL version as well as what extensions are exposed. Using the MESA_EXTENSION_MAX_YEAR variable I was able to limit the driver to only show the OpenGL extensions that were in place at the time of the game's release. Lo and behold that worked, and the game was now running smoothly at my monitor's default refresh rate with nary a dip in sight.

I also had some trouble getting Wages of Sin to launch due to it being loaded by passing a parameter to the original game executable, but this was soon resolved by creating my own custom shell script:
#!/bin/sh
# SiN Gold Launch Script
# Created by Hamish Paul Wilson
# March 14, 2017

#Change into the local directory
cd "${0%/*}"

#Limit OpenGL extensions to those only available at the time of the game's release
export MESA_EXTENSION_MAX_YEAR=1998

#Set WINE to use the i386 architecture as well as a custom prefix
export WINEARCH=win32 WINEPREFIX=~/.wine32

#Launch Wages of Sin straight to the menu using OpenGL along with a Gallium3D HUD showing FPS
GALLIUM_HUD="fps" wine sin.exe +set game 2015 +menu_main +set gl_driver opengl32


Note that I have the Gallium3D Heads-Up Display enabled to allow me to gloat over the graph showing my stable frame rate in all its glory. I also took the step of downloading the fan made Sin Patcher to make sure I could run the game at my 1400x1050 resolution, and of course I used winecfg to set the compatibility mode for the game to Windows 98. Once this was done the game was running like a native application, and I will now be submitting a new Gold rating for the game on the WINE AppDB. Well, that was easy.
Hamish Mar 16, 2017
Some screenshots:
[url=https://postimg.cc/DS5mYbGh][/url]
[url=https://postimg.cc/1gt4x50q][/url]

Last edited by Hamish on 27 December 2019 at 8:00 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.