Installing and Modding C&C: Generals Zero Hour in Linux

Recently, I found myself watching Generals Zero Hour gameplays on YouTube. This makes me want to play it myself on my PC. However, I have an idea that installing Generals Zero Hour is not as straightforward as installing a game from Steam.

This guide will be a walkthrough on how to install Generals Zero Hour in a Linux machine. The machine I will be installing the game to is my Pop!_OS PC I regularly use in my Linux gaming journey.

My gaming PC's system information shown in neofetch.

Checking if C&C Generals Zero Hour is Available in Lutris

Since Generals Zero Hour is not available in Steam, my 2nd-place (or app) to-go is Lutris. I tried searching for the game in lutris.net for the game title, and there are indeed scripts for the game there!

Search page in Lutris website when searching for Command and Conquer Generals.

I tried looking in the Generals Zero Hour page and saw that there are multiple install scripts submitted for the game. Now, which one to choose...

Lutris install scripts for Command and Conquer Generals Zero Hour.

From the choices of scripts available, I used the 1.04-english version. The script name hints that it will be using Patch 1.04 – which is the latest official patch for the game that contains all the latest balance and bug fixes.

Upon inspecting the install script, I see that certain files are needed to complete the installation:

  • 2 ISO files that corresponds to the 2 installation CDs of the game.
  • The patch 1.04 file: GeneralsZH-104-english.exe
  • A spicy ZIP file: generals-zh-v104_cr*ck.zip – might be skipped by using a different file with same name.

Now that I verified that there are install scripts for the game in Lutris, and I have acquired the needed files, we can now start the installation of the game(?)

But wait! Generals Zero Hour is an expansion of Generals. To install Generals Zero Hour, we need to install the base game first!

Installing Generals in Lutris

To start the installation, search for the Command and Conquer Generals game in Lutris. Maybe you have already noticed it from the screenshot of the search above, there is a Command and Conquer Generals page in Lutris. In its game page, there is a list of install scripts. What I used is the CD English version.

As the script title suggest, this installation needs the installation CD of C&C Generals. When you have the ISO files, just mount them to your system and we can now properly start the installation!

The installation starts by clicking the Install button from the Lutris website and it will be deep-linked to your Lutris desktop app. From the app, just follow the installation process.

Here you will be prompted to select where you want to install the game. This directory will be the Wine Prefix for the game, not the actual install directory. The actual game will be installed the drive_c/Program Files/... directory inside the Prefix.

Installation directory selection screen.

After selecting the installation directory, you will be prompted to select additional needed files for the installation. No need to bother with that since these files will be automatically downloaded from the Lutris website; just click Continue.

Patch files selection screen. We have this screen because we have the option to select the files manually from the computer instead of downloading it.

In the next screen, we will be prompted to select the mount point of the installation CDs (or ISOs). This will be asked twice, once for each of the installation disk ISO. Just select the mount points using the Browse button to continue.

The disk selection screen. You can also use the Autodetect button – make sure you have mounted only the Generals CDs!

After the disks are verified and loaded, the actual installation of the game will start. Just follow the installer and use the default settings to continue. This will be just like how you install the game originally.

Command and Conquer Generals installer. This is the easy part – just click Next until it finishes.
Waiting for installation is much faster in 2022 than how it was in 2004.

After the installation completes, the patch files will be configured by the Lutris install script.

After patching the game, Generals is now installed! However, it is not the base game I want to play, but the Zero Hour expansion.

Now let's proceed with the installation of Generals Zero Hour!

Installing Generals Zero Hour in Lutris App

Just like how we started the installation of the base game, just click the install button from its game page in the Lutris website. Again, this will be deep-linked to your Lutris desktop app.

The same script selection screen will be shown to you, just click Install to proceed.

Script selection screen.

After that, you will be prompted to select the install directory for the game. Remember that Zero Hour requires Generals to be in the same system. You can emulate this behavior by installing the base game and the expansion in the same Wine Prefix. This is done by selecting the same install directory used when installing Generals.

Directory selection screen. Here I used the same directory used when installing the base game.

After selecting the directory, you will be prompted to select the needed files in the installation. Note that the installation still works if some of the needed files are missing. To proceed, just browse the files in the system and click Continue.

File selection screen. The 3rd file, options.ini, will be automatically downloaded to your system when needed.

When the files are now selected, it will take us to the screen where you will select where is the installation CD is located. Just like in the base game, select where you mounted the CDs (or ISOs) of Generals Zero Hour.

Just like in the base game, two of these will appear to ask for disk 1 and disk 2, respectively.

After selecting the ISO mount points, the game will now start to install in the same Wine Prefix as the base game.

The usual installer. Just click next until you complete the installation.

Just follow the installer instructions until it finishes the installation.

I wish it was this fast back then!
Blooper: I tried installing Generals Zero Hour without the base game!

Just like in the base game, after the installation the patches will automatically be applied.

After that, both the base game and expansion should appear in your Lutris library! We can now play the game!

Modding the Game

After installing the game, I tried playing some skirms. I noticed that the game doesn't feel right. Maybe this is because the hardware has changed from when the game was first released and our standards for gaming has changed.

Task Switching Crash

When I first played with the game in my Pop!_OS machine, the game window covered my web browser. I want to move my browser, so I Alt+Tab out from the game and dragged the browser to the 2nd monitor. After that, I returned to the game but the game has crashed!

I tried to prove my suspicion that the switching out crash it. Yep, I was right.

The simpliest fix I thought of is moving the game to a virtualized desktop. That way, when I Alt+Tab again, I won't be switching out from Generals but from Wine.

To do this, configure the game from Lutris by right-clicking it and go to Runner options tab.

From that screen, turn on Windowed (virtual desktop) and set the Virtual desktop resolution to your desktop resolution.

When playing the game, you should be able to Alt+Tab without crashing the game when you return.

Resolution Fix

In the main menu and the actual game, the first thing I noticed is that the game is square and tiny. This is because the game is set to 800×600 resolution and the game's option screen does not offer the wide 1080p resolution. Luckily, the install script contains a patch that updates the resolution to 1080p.

However, this does not work. Upon investigating, the install script copies the options.ini file to the wrong directory. It should be in this directory:

$GAME_DIR/drive_c/users/$USER/Documents/Command and Conquer Generals Zero Hour Data/
Just replace the $GAME_DIR with the Wine Prefix path and $USER with your Linux username.

After I copied the .ini file in the *Data directory, the game is now correctly using the entirety of the monitor!

Zoom Level Fix

When playing skirms, I noticed that the buildings, units, etc... are too close to the camera – it's like I can only see 3 buildings at a time! I tried zooming-out with my mouse wheel but it seems I already hit the maximum zoom-out level.

Playing RTS is hard when you can't see much. Unlike other RTS games like Age of Empires or even Red Alert 2 where you can see a lot of the map! Having this zoom level is unplayable!

This is when I started looking for mods to fix this – I'm sure there is one, considering the age of this game.

And I found it: Modified min and max zoom for C&C General ZH from ModDB! Good thing this mod is a simple text file with a simple installation instruction:

To install, put the ini file in "YourC&CDirectory\Data\INI" To uninstall, simply remove the file
Actual instruction from the mod page.

Now, when playing the game, it is much better with higher resolution and farther zoom-out level!

Actual gameplay screenshot in 1080p and proper zoom-out level.

In Summary...

Acquire the needed files first: ISOs for Generals base game and Generals Zero Hour expansion. There are 2 ISO files for each game. The Lutris script for Generals Zero Hour requires additional patch files.

After acquiring these files, install the Generals base game first from Lutris and take note where it is installed. That directory will be important when installing the Zero Hour expansion.

The next step is installing Generals Zero Hour. This pretty much follows the same installation as the base game. The only difference is that this expansion must be installed in the same Wine Prefix as the base game.

When the game is installed, there will be some problems in stability and look-and-feel. Some of the problems I encountered are:

  • Alt+Tab crash: This is fixed by playing the game in a Wine virtual desktop. Make sure to set the virtual desktop resolution.
  • Game not supporting my monitor resolution: Download the options.ini file from Lutris (link) and paste it to the correct directory: $GAME_DIR/drive_c/users/$USER/Documents/Command and Conquer Generals Zero Hour Data/
  • Game is zoomed too close: Install a mod from ModDB (link) that fixes the zoom problem.

And that's it!

Congratulations General, you can now play in Linux!

Disclaimer

One of the install scripts requires certain files that enables the user to bypass license check. I do not encourage doing so. That step can be skipped by using a dummy file with same file name.