Playing Sid Meier's Civilization III in Wine in 2022

A few days ago I wanted to re-install Sid Meier's Civilization III on my machine and play it again. This blog post is a summary of the tricks I had to use to make it work it work well; I am writing it down for posterity, maybe someone else will find it useful. That someone might even be future me.

The following was done using the retail releases of the base game and the Conquests expansion (which includes the Play the World expansion). I expect readers to already be familiar with Wine; I will only cover the extra steps needed, this is not a step-by-step guide.

The following was tested in Wine 7.10, in a 64bit prefix, using X11 on Void Linux.

Installation and official patches

Nothing out of the ordinary here. Install the base game, then install the expansion (into the same Wine prefix of course). Finally install the correct official patch for your game.

To find out which version number you have without launching the game you can open the relevant README file in a text editor. Starting from the install directory of the base game there are:

  • README.txt (base game)

  • Civ3PTW/readme.txt (Play the World expansion)

  • Conquests/readme.txt (Conquests expansion)

In my case the Play the World file did not have any version number, but that might be because Conquests already includes Play The World.

CD copy protection

When I try running the game Wine prints the following error to standard error:

013c:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\SecDrv": c0000142

This seems to be a problem with the copy protection (DRM) used by the game. I have not found any solution, other than either using a No-CD patch or buying a DRM-free version. CivFantatics (see below) are hosting a No-CD patch extracted from a gaming magazine release. Yes, you are installing a mystery binary, but that's probably the least shady place to get it if you want to go that route.

The files were taken from the website of PCGames, so if you don't trust the download from CivFantatics you can also download the original files. Here are the SHA-256 checksums I got from the official download:

  • Civilization3.exe (v1.21f without expansion): 6e57a1ab94eb005e4ba688dd7a30cd19698a7f3fe3357ead901058be5ae67704

  • Civilization3.exe (v1.29f with expansion): 98f07e9b4acd756c4eeef3eaf84afccdc17189ef933186b2001259247cd0a067

  • Civ3Conquests.exe (v1.22): fbb9ae4c6fa9ece58e065b6396b25d693630afefe0cc45b31fc66914d1b44990

This is as trustworthy as it gets with proprietary software.

Black terrain

As of the time of writing this there a bug in the libOSMesa library that renders all terrain on the map as a black surface. The good news is that we don't need this library for the game, so we can trick the game into using a fake library.

Create a directory and add an empty file named libOSMesa.so.8 (or whatever the real one is named on your system), then set the LD_LIBRARY_PATH environment variable to the path of that directory. We can for example start the game with this command:

LD_LIBRARY_PATH="path/to/fake/lib/" wine 'Civilization3.exe'

I use a small launcher shell script so I don't have to type all of this by hand.

Broken fullscreen mode

By default Civ3 only runs in fullscreen, but instead of running in a real fullscreen mode on top of all other windows, it lowers the resolution of the screen and runs in a window. Maybe this happens because I am using a tiling window manager (bspwm).

The solution is to not allow the window manager to control the windows. Open winecfg and uncheck the box in the “Graphics” tab. We can do this globally for all applications, but then the map editor will also be affected, which you probably don't want.

To set this option only for the game go to the “Applications” tab, click “Add application” and select the executable of the game. Then, while the game executable is highlighted uncheck the box in the “Graphics” tab. Repeat the same steps for the expansion executable as well.

This is all documented in the Wine wiki: Using winecfg

Infinite sound effects loop

The last issue is more of an annoyance than a real game breaking problem. Sometimes the game will be stuck playing an audio effect in an endless loop. It is the most annoying when it gets stuck replaying bird voices or the cheering crowd whenever you upgrade your palace.

I am not aware of any real solution to the issue. What I do instead is create a short silent WAV file using Audacity (or Tenacity, or Sneedacity, or whatever the currently popular fork is) and replace the offending sound files. I have replaced Sounds/LoveTheKing.wav and everything under Sounds/Ambience Sfx. There may be more files, I don't know, but I found this acceptable.

Multiplayer

I haven't tried it, so no idea how well it works. I know there is an open bug related to multiplayer, see below for the link.

Useful resources

Bug tickets