Command & Conquer: Generals is a real-time strategy game released in 2003 on Windows. I remember playing the game at 1/6 speed on my father’s original-model Dell Inspiron laptop, never winning a match until I repurchased the game in a bundle five years later. Over the years, it has enjoyed sustained popularity in some corners of the internet, including a recent resurgence spearheaded by the Generals Gentlemen Youtube channel.
For some reason, in March 2015, Aspyr re-released Command & Conquer: Generals Deluxe Edition on the Mac App Store. Aside from a few minor issues, it looks and plays great.
If you want to install mods, you’re in luck. Most of them still work in the new game. If you want to mod the game yourself, you’re in trouble. Modding the game requires unpacking and repacking the INI.big file which can’t be done by hand. The most popular unpacking/modding software for the game, FinalBIG, was last updated in 2006 and only works on Windows. Game Extractor, a multi-platform, many-game tool, must be purchased if you’re looking to save modified archives, which is the most desirable use case. (I’m exploring creating my own alternative. We’ll see how that goes.)
Anyway, you can still edit the INI.big in order to make small modifications to the game. It’ll be hard to keep your place since the file is gigantic, and you’ll corrupt your game if you change the length of the file, but there is still fun to be had!
To mod Generals on OSX, start by going to your Applications folder in finder.
Find the game and right click it, select “show package contents”.
Click on “Contents”, then “GameData”, then “Generals Data” for the main game or “Zero Hour Data” for the expansion. I recommend working exclusively with the expansion.
Then, find the file titled “INI.big” or “INIZH.big” for the expansion. This is where the important game mechanics are stored in plaintext. Before anything else, create a copy of the file and store it in a safe place.
You’ll notice that the file is cryptic- it’s stored in hexadecimal format. We’ll need a hex editor (which is the magic tool for many games released during Generals’ time period, such as Diablo 2). Sublime has a cool plugin called HexViewer, but I encountered major performance issues when dealing with the massive file. I had my best results using HexFiend, which is a standalone program that doesn’t store the text file in RAM.
Opening the file using HexFiend looks like this:
All you have to do is find an object that interests you, modify some values, save your file, and you’re good to go. Remember not to change the length of the file. For example, if you want to change “Damage = 5.0” to “Damage = 500.0”, you’ll need to delete two characters somewhere else in the file. Anything after a “;” is a comment, so you can delete what you need there. Alternatively, if you want to change “DelayTime = 5000.0” to “DelayTime = 5.0”, just create a comment with three characters like “;–” to make up the difference.
If you see this error when you start the game up, it means you’ll have to either fix your last change or reset your file to your backup:
Let’s say I want to turn a GLA Rebel into a ridiculously overpowered unit. I just search for the unit’s weapon, “GLARebelMachineGun”, and then edit the values. Here’s what that looks like (after my modifications).
In game, then, you’re left with a unit that can attack from across the map and doesn’t need to reload its weapon. Other useful modifications that I made were to build time and fog clearing radius. Modifications like this break the balance of the game and take all of the fun out, but I’m looking to work on more substantial mods and a Mac-compatible unpacking program in the near future.