Prepare to unleash the absolute latest in modern weapons technology against the world's most powerful Generals in Command & Conquer: Generals Zero Hour*.
In the next era of military strategy and might, you'll need to command
a more technologically advanced arsenal to defeat new, more powerful
enemies. The first expansion pack for the critically acclaimed Command & Conquer: Generals challenges
players to square off against the world's most elite commanders for
battlefield domination. Even the most experienced C&C Generals
veteran must learn new strategies and tactics to take full advantage
of and learn to defend against the next generation of the world's most
lethal weapons. With new units, structures, and upgrades, as well as
the all-new Generals Challenge Mode, Zero Hour delivers all the
firepower you'll need in your quest to become the ultimate modern
warfare General.
Application Details:
Version: | Zero Hour: 1.04 |
License: | Retail |
URL: | http://www.commandandconquer.c... |
Votes: | 1 |
Latest Rating: | Platinum |
Latest Wine Version Tested: | 8.0 |
Maintainers: About Maintainership
What works
Everything
What does not
Workarounds
What was not tested
Multiplayer
Hardware tested
Graphics:
Additional Comments
Needs a NoCD-Crack. You may need to set the virtual desktop resolution to the same as in the options.ini.
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Show | KDE neon | Apr 16 2023 | 8.0 | Yes | Yes | No | Platinum | goliash | |
Show | Arch Linux x86_64 | Jan 04 2023 | 7.22 | Yes | Yes | No | Platinum | Evren | |
Show | Manjaro Linux 18.0.0 | Apr 06 2019 | 4.5 | Yes | Yes | Yes | Gold | Bob Niemöller | |
Show | Arch Linux x86_64 | Jan 25 2019 | 4.0-staging | No, but has workaround | Yes | Yes | Gold | ap4ss3rby | |
Show | Ubuntu 18.04 "Bionic" amd64 (+variants like Kubuntu) | Jan 23 2019 | 4.0 | No, but has workaround | Yes | Yes | Gold | Eonfge |
Bug # | Description | Status | Resolution | Other apps affected |
35672 | command and conquer generals zero hour: - online gaming not working | UNCONFIRMED | View | |
48787 | WineD3D C&C Generals Zero Hour takes a lot time to load or maximize | UNCONFIRMED | View | |
50115 | C&C Generals Zero Hour cursor dissappears after first mouse action | UNCONFIRMED | View | |
56077 | [9.0_rc regression] C&C Generals Zero Hour fails to startup with: err:module:DelayLoadFailureHook failed to delay load ole32.dll.CLSIDFromString | UNCONFIRMED | View |
The game should mostly run out of the box if you install it from the CDs.
You might need a NoCD crack.
If you already have a locally installed version of the game,
be aware that General won't start without some specific registry entries.
Mandatory entries include the game path, the language and the key.
The following note is a script that automated the registration of the game.
Save it locally, make it executable and start it from a shell.
It will ask you for the installation path, the language and the keys.
You can also preset keys within the script to make it easy to deploy for LAN parties.
--
Graphics: sidescreen scrolling does not work in windowed mode. You can activate
the virtual desktop in winecfg though.
You can change the game resolution to an arbirary value via the command line
parameters `-xres X -yres Y`.
To make the changes permanent after the game has been start once,
go to the "Command and Conquer Generals Zero Hour Data" (by default in your home
directory), edit the Options.ini and set the Resolution to the desired value
(the value of the virtual desktop if you use it).
No winetricks needed, runs out of the box. If you encounter problems, install d3dx9 (winetricks d3dx9).
#!/bin/sh usage () { cat <&2 Usage: ${0##*/} [MODE] [OPTIONS] Setup Command & Conquer: Generals and start the game. If started from a TTY, an X session will be automatically started. MODE: generals: Original game. zerohour: Official extension (default if found). OPTIONS: -quickstart: Disable 3D menu for faster startup. -xres : Horizontal resolution. -yres : Vertical resolution. -noshaders: Improve performance on weak graphic cards. EOF } [ -z "$GAMEROOT" ] && GAMEROOT="$HOME/games" [ -z "$GAMEPATH" ] && GAMEPATH="$GAMEROOT" [ "$1" = "-h" ] && usage && exit [ "$1" = "--" ] && shift ## Start X if needed. # TODO: Do this first or last? # If last, maybe errors can be caught before and printed to TTY. Compare. # If last, need more work on the parameters. if [ -z "$DISPLAY" ]; then exec xinit "$(command -v "$0")" "$@" -- :1 vt$XDG_VTNR fi ## Game mode. mode="zerohour" echo "$1" | grep -q '^-' && mode="$1" && shift ## Registry functions ## On x86_64, x86-specific nodes are stored in a sub-node. regnode32="" [ "$(uname -m)" = "x86_64" ] && file $(command -v wine) | grep -q '64-bit' && regnode32='\\Wow6432Node' ## Return the value of the registry KEY of NODE. ## If KEY is omitted, return the default value. regquery() # $1=node [$2=key] { if [ $# -eq 1 ]; then ## "reg query" uses CRLF (\r\n) newlines, hence the call to 'tr'. # echo "QUERY: '$(wine cmd /c reg query "$1" /ve)'" wine cmd /c reg query "$1" /ve | tr -d '\r' | \ awk '/(Default)/ {if($3) print substr($0, index($0, $3))}' else wine cmd /c reg query "$1" /v "$2" | tr -d '\r' | \ awk -v key="$2" '$0 ~ key {if($3) print substr($0, index($0, $3))}' fi ## The 'awk' expression remove the first two fields and the leading whitespace. } ## Set KEY of NODE to the VALUE of type TYPE. ## TYPE can be REG_SZ (default), REG_DWORD, REG_EXPAND_SZ, REG_MULTI_SZ. ## If KEY is omitted, set the default value. regadd() # $1=node $2=value [$3=key] [$4=type] { local switch="/ve" local type="REG_SZ" [ $# -ge 3 ] && switch="/v" [ $# -ge 4 ] && type="$4" wine cmd /c reg add "$1" /d "$2" $switch "$3" /t $type /f } path_win2unix() # $1=path { printf '%s' "$1" | awk '{sub(/^Z:\\/, "/"); gsub(/\\/, "/"); print}' } ## Add the registry nodes. if [ -z "$(regquery "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Generals")" ]; then cat<<\EOF | regedit - Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Electronic Arts\EA Games\Generals] "InstallPath"="" "Language"="" "MapPackVersion"=dword:00002710 "Proxy"="" "Version"=dword:00001008 [HKEY_LOCAL_MACHINE\Software\Electronic Arts\EA Games\Generals\ergc] @="" EOF fi if [ -z "$(regquery "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour")" ]; then cat<<\EOF | regedit - Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Electronic Arts\EA Games\Command and Conquer Generals Zero Hour] "InstallPath"="" "Language"="" "MapPackVersion"=dword:00002710 "Proxy"="" "UserDataLeafName"="Command and Conquer Generals Zero Hour Data" "Version"=dword:00001004 [HKEY_LOCAL_MACHINE\Software\Electronic Arts\EA Games\Command and Conquer Generals Zero Hour\ergc] @="" EOF fi ## Game settings. gamepath() # $1=node { ## We _need_ a global here so that we can get the return value after we've ## called this function. path=$(regquery "$1" InstallPath) [ -n "$path" ] && return echo "Working directory: $(pwd)" echo -n "Path to game folder: " read path ## TODO: Support drive letter dynamically. ## WARNING: realpath is mandatory here, but it's not portable. path="Z:$(realpath "$path" | sed 's@/@\\@g')" ## Trailing backslash required. regadd "$1" "$path\\" InstallPath } gameserial() # $1=node $2=serial_list { ## We _need_ a global here so that we can get the return value after we've ## called this function. serial=$(regquery "$1") [ -n "$serial" ] && return cat < $(echo "$2" | awk '{print NR, $0}') EOF echo -n "Select an entry: " read choice echo if [ "$choice" -eq 0 ]; then echo -n "Enter serial: " read serial echo else serial=$(echo "$2" | awk "NR == $choice {print; exit}") fi regadd "$1" "$serial" } gamelang() # $1=node { ## We _need_ a global here so that we can get the return value after we've ## called this function. lang=$(regquery "$1" Language) [ -n "$lang" ] && return while [ "$lang" != "english" ] && \ [ "$lang" != "french" ] && \ [ "$lang" != "german" ] ; do echo -n "Language (english, french, german): " read lang echo lang=$(echo "$lang" | awk '{print tolower($0)}') done regadd "$1" "$lang" Language } ## Register game. echo "==> Generals" serial_list_generals="PRESET-KEY-#1 PRESET-KEY-#2 PRESET-KEY-#3 PRESET-KEY-#4 PRESET-KEY-#5 PRESET-KEY-#6 PRESET-KEY-#7 PRESET-KEY-#8" gamepath "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Generals" path_generals=$(path_win2unix "$path") gameserial "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Generals\\ergc" "$serial_list_generals" serial_generals=$serial gamelang "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Generals" lang_generals=$lang printf "Path: '%s'\n" "$path_generals" echo "Serial: $serial_generals" echo "Language: $lang_generals" path="$path_generals" echo "==> Zero Hour" serial_list_zerohour="PRESET-KEY-#1 PRESET-KEY-#2 PRESET-KEY-#3 PRESET-KEY-#4 PRESET-KEY-#5 PRESET-KEY-#6 PRESET-KEY-#7 PRESET-KEY-#8" gamepath "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour" path_zerohour=$(path_win2unix "$path") if [ -f "$path_zerohour"/generals.exe ]; then gameserial "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour\\ergc" "$serial_list_zerohour" serial_zerohour=$serial gamelang "HKEY_LOCAL_MACHINE\\Software$regnode32\\Electronic Arts\\EA Games\\Command and Conquer Generals Zero Hour" lang_zerohour=$lang printf "Path: '%s'\n" "$path_zerohour" echo "Serial: $serial_zerohour" echo "Language: $lang_zerohour" [ "$mode" != "generals" ] && path="$path_zerohour" else echo "Zero Hour not found." fi ## Keyboard settings. ## Some in-game shortcuts are bound to the key symbol while others are bound to the key code. ## For instance, in the French version with an AZERTY layout "a" builds a tank ## while "q" selects all unit; with a QWERTY layout "q" becomes "a" and shadows ## the tank binding. layout=$(setxkbmap -query -v 6 | awk '/^layout/ {printf " -layout " $2} /^variant/ {printf " -variant " $2} /^options/ {printf " -option " $2} END {printf "\n"}') lang="$lang_generals" if [ "$mode" = "zerohour" ]; then lang="$lang_zerohour" fi case "$lang" in french) setxkbmap fr ;; german) setxkbmap de ;; esac ## Video settings. # display=$(xrandr | awk '/ connected / {print $1; exit}') res=$(xrandr | awk '/\*/ {print $1;exit}') resx=$(echo "$res" | cut -dx -f1) resy=$(echo "$res" | cut -dx -f2) ## Start game. cd "$path" wine generals.exe -xres $resx -yres $resy -quickstart "$@" cd "$OLDPWD" ## Restore settings setxkbmap $layout
The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
by Bobby Yu on Sunday October 3rd 2021, 2:06
Add these lines in the terminal (i.e. Bash shell):
export MESA_GL_VERSION_OVERRIDE=4.5
export MESA_GLSL_VERSION_OVERRIDE=450
Put those in ~.bashrc or names to that effect.
Now it's back to normal, and for that I mean BOTH Generals and Zero Hour.
I hope this helps someone.
by Bobby Yu on Friday October 1st 2021, 11:23
The ground would either fluctuate or become white, looking like snow.
A list of things I have tried
- install DirectX 9 Redist: didn't work
- test the First Decade: the logo screen would load, but after that, it would exit to the desktop and tell me that there is a technical error; it seems to be a generic message
- try one of the test results by running game.dat instead of some no-cd crack: same; besides, that would fix the problem of the game not running, but I don't have that problem
- delete dbughelper.dll: nothing
I would like to remind that the game does run, and so does the cinematics (perfectly), but not the in-game graphics.
And I am using the stable branch. Is there a reason I should use other ones?
by Colin Johnson on Friday November 17th 2017, 15:22
Problem 1 - The splash screen shows and then closes with no error code.
---------------------------------------------------------------------------------------------
The reason for this is because the old versions of wine expect the "Command and Conquer Generals Data" and "Command and Conquer Generals Zero Hour Data" to be in the root of the Home folder. The newer versions of wine now expect the data to be installed in /home//Documents.
Note: Once you change a prefix to use a newer version of wine the change is permanent, even if you go back a version!
Problem 2 - The game gets past the splash screen and then shows a "Technical Difficulties" message.
---------------------------------------------------------------------------------------------------------------------------------
This message is caused by a resolution mismatch. If the "options.ini" has got the screen resolution set higher than you desktop can support it will fail. Most will never see this problem unless you choose the "emulate a virtual desktop" option.
I am currently playing generals/zero hour with wine staging 2.19 and the only problem I have noticed is an error message when closing the game.
by Heisenberg on Tuesday September 13th 2016, 6:20
PLEASE HELP
by Akbar on Friday March 4th 2016, 3:25
by muhammed01 on Saturday February 6th 2016, 1:30
by muhammed01 on Sunday February 7th 2016, 3:35
by Michael on Saturday October 31st 2015, 7:41
I have tried disabling shaders, enabling virtual desktop, using a nocd patch, and manually creating the options file. Nothing works. I've also tried with the latest stable release of wine as well as the latest wine-staging.
Is there anything else I can try to get this game running?
by Michael on Tuesday October 20th 2015, 8:24
by vidarusny on Tuesday May 26th 2015, 16:16
when i tried to start zero hour i have this message :
wine: Unhandled page fault on write access to 0x003f0060 at address 0x7bc4afdb (thread 002b), starting debugger...
I install d3dx9 but i have the same problem.
Anyone have an idea?
by Maverick DeCero on Friday May 15th 2015, 13:48
The problem with this is that I made them in MDF format, but can be alleviated through simple conversion.
My real problem lies in the fact that whenever I launch generals.exe for Zero Hour, the splash screen appears, and then a second one appears in the top left corner of my screen, overlapping part of the first one, then the whole process just closes.
C&C Generals works just fine, but Zero Hour doesn't even launch. What's the problem here? I've tried everything, to the point I even copied my old registry entries from my windows PC to wine with wine regedit to see if it'd work, and of course, it didn't.
by Maverick DeCero on Friday May 15th 2015, 13:51
by K1773R on Monday May 18th 2015, 10:20
ZH needs more than just the install, i presume its some registry entries/hidden files missing. i didnt try to fix it, as i just reinstalled the whole thing.
this also was only with ZH, all others were fine.
as you have bought the game, your entitled to download the game and use it with your serial key without worrying about any legal problems.
by Maverick DeCero on Tuesday May 19th 2015, 12:14
I could use my windows install and Daemon Tools to extract the files, maybe, but my cd and virtual cd drivers are currently borked at the moment.
I suppose I could get the files from a friend, thanks though.
by K1773R on Tuesday May 19th 2015, 13:00
by nash woods on Sunday September 13th 2015, 12:36
Thanks.
by rjd on Monday February 9th 2015, 17:31
For now I just run it through VB but a little annoying.
by Maverick DeCero on Friday May 15th 2015, 13:53
by goliash on Wednesday September 3rd 2014, 12:54
Source: social.technet.microsoft.com/Forums/windows/en-US/451cf653-6509-4dfa-8e1a-13639b98bf4c/command-conquer-zerohour-startup-crash-fix?forum=w7itproappcompat
You can use e.g. this content:
AntiAliasing = 0
DrawScrollAnchor =
FirewallBehavior = 0
GameSpyIPAddress = 192.168.0.1 (make sure you use your own IP)
Gamma = 50
IPAddress = 192.168.0.1 (make sure you use your own IP)
IdealStaticGameLOD = High
LanguageFilter = false
MoveScrollAnchor = 0
MusicVolume = 61
Resolution = 800 600
Retaliation = yes
SFX3DVolume = 58
SFXVolume = 53
ScrollFactor = 60
SendDelay = no
StaticGameLOD = lOW
UseAlternateMouse = no
UseDoubleClickAttackMove = no
VoiceVolume = 70
by evad jenkins on Sunday January 19th 2014, 21:42
Using Wine 1.7.10 on a linuxmint system:
I installed the retail CD C&C Generals from CD following the guide.
I tried to then install retail CD C&C Generals ZeroHour but the
installation failed with error -1603 every time.
Any ideas on how to debug this?
by Curtis Maves on Wednesday June 25th 2014, 20:55
by Diego Soares on Wednesday November 27th 2013, 18:41
by goliash on Sunday February 3rd 2013, 8:07
What was tested?
LAN multiplayer, 2 allies against 1 hard AI - Kubuntu 12.10, i386, Wine 1.4.1, C2D, Geforce 7300M and Kubuntu 12.04, amd64, Wine 1.4.1, i5, Radeon 6400M
No explosion after a start of a game, no mismatch in synchronization data. But I suppose the problem between Win PC and Linux (Wine) PC remains, I haven't tested it yet recently.
by goliash on Tuesday February 5th 2013, 4:56
by goliash on Thursday February 7th 2013, 15:10
by Masoud Serpoushani on Thursday November 17th 2011, 14:30
how can i instal Command and Conquer Generals Zero 1.04 on ubuntu 11.10 with wine 1.3.32
by K1773R on Friday November 18th 2011, 2:27
by Matthew on Thursday August 4th 2011, 8:06
by K1773R on Thursday August 4th 2011, 8:07
by Matthew on Saturday August 6th 2011, 1:55
by K1773R on Saturday August 6th 2011, 2:01
i dont think you know how to do this (if you delete something wrong, it wont run anymore), so i hope you used a own wineprefix for ccgenerals! use a fresh wineprefix for ccg ;)
by George Machitidze on Wednesday March 9th 2011, 11:15
ATI X1600
Enabled virtual desktop
Disabled shader support
Installed DirectX9 redist
Installed game
Runs fast
Done :)
by George Machitidze on Wednesday March 9th 2011, 11:16
by DrSlony on Tuesday September 21st 2010, 17:45
C&C Generals runs fine, Zero Hour doesn't.
(...)
fixme:cursor:CURSORICON_CreateIconFromANI Loading all frames for .ani cursors not implemented.
fixme:win:EnumDisplayDevicesW ((null),0,0x338648,0x00000000), stub!
fixme:d3d:swapchain_init The application requested more than one back buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if possible.
fixme:d3d8:ValidatePixelShader (0x2ed05d4 (nil) 0 (nil)): stub
fixme:imm:ImmReleaseContext (0x10064, 0x133278): stub
How do I do that?
by K1773R on Sunday May 15th 2011, 6:09
fixme:win:EnumDisplayDevicesW ((null),0,0x33873c,0x00000000), stub!
fixme:d3d:swapchain_init The application requested more than one back buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if possible.
err:ole:CoGetClassObject class {2b2cc8b0-2dc0-48c6-b6fd-c07820a6477e} not registered
err:ole:CoGetClassObject class {2b2cc8b0-2dc0-48c6-b6fd-c07820a6477e} not registered
err:ole:create_server class {2b2cc8b0-2dc0-48c6-b6fd-c07820a6477e} not registered
err:ole:CoGetClassObject no class object {2b2cc8b0-2dc0-48c6-b6fd-c07820a6477e} could be created for context 0x7
fixme:d3d8:ValidatePixelShader (0x2fe04c8 (nil) 0 (nil)): stub
fixme:imm:ImmReleaseContext (0x202f2, 0x137df8): stub
by Hugo on Thursday March 25th 2010, 11:29
I can login to the online section, and then create a game with my friend, but when i start the game, only my load beam goes up, and for him its the same, only his game loads ???
i use wine 41 and he uses win xp.
RA2 online seems to be running without any problems...
by Beri on Saturday March 13th 2010, 4:13
got a problem while starting C&C, splash screens shows up and then:
DirectX Error; make sure you have directX 8.1 or higher installed.
I Installed it with the game, running as Wine 1.1.40, win version (tried xp, vista, 7) on a geforce 8800 GT, ubuntu 9.04 64 Bits on Intel Quad Core.
Does anyone know how to fix this ?
by Beri on Saturday March 13th 2010, 4:14
by Hugo on Monday February 7th 2011, 13:50
I had the same for a while.
Then I found out that the game (both generals AND zero hour) will work as long as you set the option "emulate virtual desktop" in your winecfg graphics settings.
Also, if you set the resolution of that virtual desktop to be equal to the resolution of your ubuntu desktop, it will still look as if the game is fullscreen.
Hope this helps someone.
Hugo.
by Beri on Monday February 7th 2011, 14:52
Only down is that the virtual desktop lets the mouse go on my AWN Bar, but anyway, still good !
Big up for you ;)
by Hugo on Tuesday February 8th 2011, 8:45
Not 100% sure about that though. Let me know if it helped.
by Incinerator on Sunday September 20th 2009, 13:05
Example:
[HKCU\Software\Wine\Direct3D]
VideoPciDeviceID=0x0141
Detailed info here: bugs.winehq.org/show_bug.cgi?id=5829#c17
* it is not known that ATI users experiencing the same behaviour.
by Hugo on Thursday March 25th 2010, 8:54
I have a NVidia 7900 GTX, and with using code 0x0290 in the DWORD string my texture problem was resolved.
by sub mesa on Saturday August 1st 2009, 5:31
That should work, but there are still some files in the install directory. Any subsequent install will fail because it will not overwrite the files in this directory, because of some "read only" DOS-attribute i don't fully understand. Anyway, to fix it simply remove the installation folder and restart the setup. The error message i got was:
Feature transfer error
Error: -1627 ERROR_FUNCTION_FAILED
in console:
err:msi:msi_cabextract FDICopy failed
err:msi:ACTION_InstallFiles Failed to extract cabinet: L"Data1.cab"
err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1627
So if this happens to you, delete the target files because its a file overwrite problem.
by Paul S. on Friday September 24th 2010, 17:07
Approach 1:
Insert CD.
wine cmd
cd D:
Setup.exe (or whatever)
When new disc is asked for:
eject
insert new disk
continue.
Approach 2:
Use gcdemu. It IS like daemon tools for Linux. Quite nice. Good luck folks.