UPDATE 5 (Nov 19, 2015): For ROTR, see the RotR Manual Install Guide.
Mac (Deluxe Edition from Mac App Store)
Locate the game at /Applications/ and duplicate to /Applications/Shockwave
control-click Shockwave and select "Show Package Contents"
copy .big into Contents/GameData/Generals Data/
optional: adjust camera height
textedit "Contents/GameData/Generals Data/Data/INI/GameCenterWindowTransitions.ini" and add this:
MaxCameraHeight = 600.0
MinCameraHeight = 20.0
PC - Duplicate Zero Hour folder and make a shortcut of generals.exe.
ensure Zero Hour is patched to 1.04 and run properly
ensure C:\Games\Generals is installed next to Zero Hour under C:\Games\
copy C:\Games\Zero Hour\ to C:\Games\Shockwave\
install mod to C:\Games\Shockwave\
create shortcut to run C:\Games\Shockwave\generals.exe
UPDATE 4: OS X Yosemite 10.10.3 runs PC version flawlessly with CrossOver for Mac (Wine)! Animated cursor works when X11 enabled. SWR.net do not work because of no way to implement Windows virtual LAN driver on Mac. Recommend SoftVPN for online LAN game.
UPDATE 3: OS X Mavericks 10.9 user can try to fix the game by following instructions from this link The Mac version of the game use a win32 API warper to emulate Windows functions and made used of depreciated APIs that no longer support by Apple, instead of trying to keep it running for the future of OS X with hacks, the easiest way is to use CrossOver for Mac to run PC version of the game. (Pros: play LAN game with your friends on PC, download and watch replays; Cons: animated cursor not working, cannot use SWR.net) UPDATE 2: OS X 10.9 Mavericks user is recommended to use CrossOver 13 for Mac to run PC version of the Game
UPDATE 1: Zero Hour for Mac only runs on OS X Mountain Lion 10.8.5 or below
STEP 1 - Getting ready
Before installing any mods, you should already have installed a clean copy of the game from disc and patch to 1.0.4 accordingly. This "vanilla" copy save time restoring the game to original if something goes wrong with a mod. Vanilla version of the game folder structure as follow:
STEP 2 - Create a Self-contained Folder for the mod
Let's say you want to install the mod - ShockWave.
1) Make a copy of the "Zero Hour" folder at the same spot and rename both the folder (mod folder) and the Application to "ShockWave"
2) Inside ShockWave/Zero Hour Data/Data/, delete the Scripts folder to ensure mod's AI function properly
STEP 3 - Install mod
Unzip mod files to 'ShockWave/Zero Hour Data'. Repeat STEP 2 if you want to play Rise of the Reds (ROTR*) or another mod. Folders highlighted in purple show different mods. Note: mod for Windows also work on Mac, just unzip > copy > rename file with .gib extension to .big
STEP 4 - Shell map, music and EVA speech (*For ROTR Only)
As of ROTR 1.802, user must install a different shell map to avoid pre-game crash. One way to obtain this is to extract ShellMap1Low (3 files .ini .map .tag) from Generals Data/maps.big by running FinalBig (Windows app). Rename .map .tag to ROTRShellmap and move it inside Rise of the Reds/Zero Hour Data/Maps/ROTRShellmap/ for the mod to recognize the new shell map.
New music and EVA speech for Russia and ECA don't work unless manually extract from:
!BetaRotrMusic.big => Rise of the Reds/Zero Hour Data/Data/Audio/Tracks/
!BetaRotrVoice.big (Speech only) => Rise of the Reds/Zero Hour Data/Data/Audio/Speech/
One last thing, the files inside 'Speech' mentioned above that use .aif audio format instead of .wav; you can use iTunes to convert .wav files extracted from !BetaRotrVoice.big to .aif and put them there, this may result in better compatibility.
STEP 5 (Optional)
Move the vanilla version of "Zero Hour" content (included Zero Hour Data and Application) to the same level as the Generals and the two vanilla games will share one set of User Data (highlighted in green). Delete the empty "Zero Hour" folder. This also alter STEP 2, just refer the image from STEP 3 for detail folder structure.
Now, create alias for mods by Command-L and drag it to the dock or anywhere you want.
Congrats! You are now free to try different mods by isolating them in its own folder. If a mod doesn't work, delete it and create a new set from the vanilla! This never affect other mods or the original as the game folder is self-contained with everything it needs.
The only drawback of this method is that it consumes more space. Hope that helps!