Generals Online

Play C&C Generals Zero Hour on Mac

macOS Gatekeeper will block this app because it is a free community port without a paid Apple Developer certificate. You need to remove the quarantine flag using Terminal before playing.

Download the Launcher

Download the latest version of Generals Online for macOS. Unzip the archive after downloading.

Open Terminal

Open the Terminal application from Launchpad or Spotlight Search.

Type the command

Copy the following command. Paste it into the Terminal (it has a necessary space at the end), but do not press Enter yet:

sudo xattr -cr

Drag and Drop

Drag the unzipped Generals Online.app into the Terminal window. Its file path will be inserted automatically. Then press Enter.

Enter your Mac Password

The Terminal will ask for your Mac administrator password (the PIN or password you use to unlock your computer).

⚠️ Wait! Your typing will be invisible!

When you type your password, no characters or asterisks (*) will appear on the screen. This is a normal macOS security feature. Just type your password blindly and press Enter.

Open the Launcher

You can now double-click the app to open the Launcher! Choose how you want to get the Windows game data — download it from Steam or point the launcher at a copy you already have.

  • Open the Steam tab in the launcher.
  • Sign in with your Steam account — the game has to be on it.
  • Press DOWNLOAD ASSETS.
  • Enter your Steam Guard code if asked (the field appears next to the password; the code usually arrives by email).
  • If the account does not own the game, a popup takes you to its Steam page. After buying, press download again.
  • The launcher pulls the original files straight from Valve into ~/Documents/Generals Online/ and applies the community patch by itself.
  • Once that is done the LAUNCH button lights up — press it and play!
  • Open the Local Archive tab in the launcher.
  • Press LOCATE and pick the parent folder that holds both game folders.
  • Press the orange PATCH button and confirm: the launcher downloads the community patch and installs it into your copy.
  • Once the patch is applied the LAUNCH button lights up — press it and play!
Important:
  • The selected folder must contain 2 subfolders: classic Generals (INI.big) and Zero Hour (INIZH.big).
  • Any legal copy works — Steam, a disc, or a folder carried over on a flash drive.
  • GenPatcher is not needed: the launcher installs the community patch itself and removes the conflicting EA patch files.
  • Patching rewrites and deletes files inside the folder you picked, so keep a spare copy if it is your only one.

Install a Mod (optional)

Mods live in the MODS section of the left column in the launcher. The section shows up only after Zero Hour has been patched, because every mod runs on top of it.

Mod Download On disk
Loading the mod list…
  • Pick a mod in the left column and press INSTALL.
  • Large mods arrive in several parts; launching and patching stay locked until the download is over, so leave the launcher open.
  • Files land in <game folder>/Mods/ — the folder you chose in Local Archive, or ~/Documents/Generals Online/ for Steam.
  • An installed mod gets Reinstall and Remove buttons; if files go missing, the install button turns into REPAIR.
Keep in mind:
  • Mods run on Zero Hour only — classic Generals has none.
  • Everyone in an online match must run the same mod of the same version.
Where the game keeps your files:
Zero Hour user data ~/Command and Conquer Generals Zero Hour Data/
Classic Generals user data ~/Command and Conquer Generals Data/
custom maps ~/Command and Conquer Generals Zero Hour Data/Maps/
replays ~/Command and Conquer Generals Zero Hour Data/Replays/
installed mods <game folder>/Mods/
Online play works between macOS and macOS

Cross-play with the Windows build is not available yet. Find opponents in the community chats:

Frequently asked questions
In short: what do I need to play?
  • The launcher has two tabs:
    • STEAM — the game is on your Steam account and the launcher downloads the data itself.
    • LOCAL ARCHIVE — you already have the files and only show the launcher where they are.
  • The game always comes as two folders standing next to each other: Command and Conquer Generals and Command and Conquer Generals Zero Hour (they hold INI.big / INIZH.big). In LOCATE you select the folder that contains both — nothing has to be moved.
  • Never point LOCATE at the folder you downloaded from us: Generals_Online_Mac_Alpha is the port itself, there is no game inside it.
  • The files may come from any copy you legally own: an old install on a Windows PC, the original CD/DVD, a backup on a flash drive. If you own no copy at all, buy it on Steam — that is the path I recommend.
  • "Windows only" on the Steam page changes nothing: you own the data, and our port is the macOS version of the .exe.
Is there a video guide? How long does the install take?
Yes: video guide on YouTube. It is a silent screen recording of the whole path, from the download to the first match. Usually it takes 5–10 minutes. The launcher has grown since the recording, so if something looks different, follow the steps on this page.
Which way is safer — Steam or my own copy?
Steam is the way I recommend. Everyone ends up with identical assets, I have tested this path myself many times, and the launcher does the whole job on its own: signs in, downloads the original files, applies the patch. You press one button and get a playable game, guaranteed. Your own copy works too, but every such copy is different, and an unusual one can cost you an evening of tinkering.
I downloaded your archive — is the game inside it?
No. Generals Online.app is only the client: the macOS replacement for the Windows .exe. It carries no game data at all — no art, no sounds, no videos, no maps. So never point LOCATE at the folder you downloaded from us; point it at the game itself.
Where do I get the game files?
The files are the same everywhere — the launcher reads them and applies the community patch on top. Any copy you legally own will do:
  • an old install still sitting on a Windows PC — even one from 2005;
  • the original CD/DVD;
  • a backup on a flash drive or an external disk;
  • a purchase on Steam / EA App.
Do I have to buy the game on Steam?
Only if you have no copy at all — the launcher takes any copy of yours through the Local Archive tab. But if you want it to simply work, with no tinkering, buying it on Steam is the recommended path (see the first question above).
The Steam page says "Windows only" — is buying it pointless on a Mac?
No. You are buying the game data. The Windows executable is exactly the part we replaced with a native macOS build.
I have no Windows PC. How do I get the files onto my Mac?
You don't need one. Buy the game on Steam and use the Steam tab: the launcher signs in with your account and pulls the original files straight from Valve's servers into ~/Documents/Generals Online/.
Which folder do I select with LOCATE?
Select the folder that contains both game folders — usually "Command and Conquer - Generals". It already exists: nothing has to be moved, renamed or repacked. The game always comes as a pair standing next to each other:
  • Command and Conquer Generals — holds INI.big;
  • Command and Conquer Generals Zero Hour — holds INIZH.big.
My copy is ancient — a disc install from 2005. Will it work?
Yes. The launcher installs the community patch into your copy itself and removes the conflicting EA patch files, so GenPatcher is not needed. Keep in mind that patching rewrites and deletes files inside the folder you picked — keep a spare copy if it is your only one.
Can you just send me the game files?
No. EA released the source code of the engine — that we may build and share, and that is what the launcher is. The game data was never released, so passing it around would be piracy. We don't do that and we don't link to it.
How do I play online with other Mac players?
  • Start the game from the launcher, choose Online and sign in when the game asks.
  • The lobby list shows only games hosted on a Mac — the macOS filter is selected by default. A game you host gets the [MAC] tag on its own.
  • Host a game or join one. Everyone in the match must run the same mod of the same version.
  • There are not many Mac players online at any given moment, so agree on a match in advance: Telegram chat or Discord.
Can I play against Windows players?

Not yet. Today online matches work only between Macs.

If you are on a Mac and your friend is on Windows: each of you installs your own build — you this port, your friend the Windows Generals Online from playgenerals.online. Both of you end up in the same online service, but a Mac and a Windows PC cannot share one match yet: within a few seconds the game falls apart (why — below). That is also why the lobby on a Mac shows only games hosted on Macs by default. For now the Mac player plays with other Macs, and the friend on Windows plays with Windows players.

Why. In Generals every player's computer simulates the whole battle on its own, and the players only exchange commands. A Mac and a Windows PC round floating-point math slightly differently: the last digits of a division or a cosine differ, 0/0 is handled differently. Within seconds these crumbs add up — on one screen a tank has already arrived and fired, on the other it is still being built — and the game stops with a desync.

What is done. I made every math operation of the game logic give bit-identical results on both platforms: about 1,500 math expressions across the game, roughly 2,500 lines of code. In test builds Mac and Windows already play for hours without a desync.

What is left. The code now has to be accepted on the Windows side. The leads of the Windows community review it line by line: this is the core of the simulation, and a mistake there would break the game for everyone. After that it goes into a regular Windows release and then into Generals Online.

When it lands, Mac players get the same rights as Windows players: matches with Windows, ranked games, ladder and ELO, tournaments.

When. There is no date — it depends on the review. Progress is public: pull request #2670. Questions about timing are best asked right there.