Unused Text#
CONQUER.ENG#
Potentially cut units have strings defined:
TXT_DEMOLITIONER - Demolitioner
TXT_SABOTEUR - Saboteur
TXT_PARA_SABOTEUR - Parachute Saboteur
The saboteur paradrop would've had a recharge time of 14 minutes.1
DEBUG.ENG#
Inside REDALERT.MIX -> LOCAL.MIX -> DEBUG.ENG, there are a load of strings from the game's debugging functions. These functions are missing from the final game, so they are never used. The definitions of these strings can be found in the released source code, in DEBUG.H, and a lot of the code that used them can be traced from there. Most of that code is disabled, but a lot of it is intact in the source files.
Special Options#
In Command & Conquer 1, there was a debug dialog that could be opened to change a bunch of special / experimental options while playing. These also corresponded to secret switches that could be put in the game's settings file. In Red Alert, most of these options were migrated to RULES.INI. The DEBUG.ENG matches the dialog options in C&C1, and the code to show the dialog can be found in the released code in SPECIAL.CPP, in the function Special_Dialog(bool simple). The only options that remain in there are the three-point turning logic and the accelerated construction time ones.
First, we have the dialog header.
Select Special Options
Then the actual options. These are identical to the C&C1 ones, except that "Tiberium" was replaced by "Ore".
Targeting flash visible to all.
Allow targeting of trees.
Allow undeploy of construction yard.
Employ smarter self defense logic.
Moderate production speed.
Use three point turn logic.
Ore will grow.
Ore will spread.
Disable building "bib" pieces.
Allow running from immediate threats.
Show true object names.
Defender has the advantage.
Allow separate helipad purchase
Two newer options, probably meant for the same dialog, appear further in the file:
Friendly units avoid friendly mines
Building constructin time accelerated?
Password Screen Text#
These were used in internal debug versions. Each employee had their own custom-built version in which only their own password unlocked the game. This system both prevented leaked betas from being functional, and made it traceable whose version was leaked. The code using these can still be found in the game's released source code, in INIT.CPP, in the Init_Authorization(void) function.
Password Request
Enter Red Alert access code to gain access.
Access code error detected.
Try Again
When reactivated in the code, these dialogs looks like this:
Monochrome Debug Screens#
The file contains several ASCII tables. They were probably used as a debug readout and output to a secondary monochrome monitor while the game was running, as was done on many other DOS games of the time. Each of these is stored as one block of text without line breaks, padded with spaces at the ends of the lines to use the screen wraparound at 80 characters.
┌Frames:─┬F/R:┬CPU:──┬F/R:──┬Cells:┬Targ:─┬S-Bar:┬Paths:────┬Sprung Triggers:─┐
│ │ │ │ │ │ │ │ │ │
├G-Time:─┼────┤ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
├────────┘ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
├Object Count:┤ │ │ │ │ │ │ │
│ -Units │ │ │ │ │ │ │ │
│ -Infantry ├CPU Workload:┴──────┴──────┴──────┴──────────┴─────────────────┤
│ -Aircraft │ │
│ -Ships │ │
│ -Buildings│ │
│ -Terrain │ │
│ -Bullets │ │
│ -Anims │ │
│ -Teams │ │
│ -Triggers │ │
│ -TrigTypes│ │
│ -Factories│ │
└─────────────┴───────────────────────────────────────────────────────────────┘
<- F11 Stress Tracking F12 ->
┌Full Name:────────┬Coord:──┬Hgt:┬Str:┬Ace:┬Spd:┬Ammo┬Arm:┬Grp:┬Cloak:┬Price:─┐
│ │ │ │ │ │ │ │ │ │ │ │
├Owner:────────────┼Trigger:┼TarCom:─┬STarCom:┬PFace:┼Path:────┴──┬Try:┬Delay:┤
│ │ │ │ │ │ │ │ │
├Cargo:───┬Target:─┼Next:───┼NavCom:─┼SNavCom:┼SFace:┼PBrk:┬HeadTo:─┬Archive:─┤
│ │ │ │ │ │ │ │ │ │
├Tmr:┬St:┬Rt:┬Stage┼Radio:──┼Radio Message History:──┴─────┴────────┴─────────┤
│ │ │ │ │ │ │
├Mission:┴───┴─┬Queue:──────┤ │
│ │ │ │
├Gems:┬Gold:┬──┴────────────┴─────────────────────────────────────────────────┤
│ │ │ │
├─────┴─────┴┬────────────┬────────────┬────────────┬────────────┬────────────┤
│Is Down │AnimAttached│Primary │Player Owned│Initiated │Is Dumping │
│To Damage │Falling [ ]│Loaner │Player Aware│Deploying │Teleported │
│To Display │Useless │Locked │AI aware │Firing │ │
│In Limbo │Ticked Off │Recoil │Lemon │Rotating │ │
│Selected │Cloakable │Tethered │Invul [ ]│Driving │ │
│To Look │Unloading │Formation │ │ │ │
╞Team:═══╤Mmbrs:╤Qnt:╤Center:═╤Target:═╪Formation:══╪════════════╪════════════╡
│ │ │ │ │ │ │Understrngth│Moving │
├Mission:┴──────┴────┴────────┼────────┴────────────┤FullStrength│ForcedActive│
│ │ │HasBeen │Reforming │
└─────────────────────────────┴─────────────────────┴────────────┴────────────┘
<- F11 Vehicle F12 ->
┌Full Name:────────┬Coord:──┬Hgt:┬Str:┬Ace:┬Spd:┬Ammo┬Arm:┬Grp:┬Cloak:┬Price:─┐
│ │ │ │ │ │ │ │ │ │ │ │
├Owner:────────────┼Trigger:┼TarCom:─┬STarCom:┬PFace:┼Path:────┴──┬Try:┬Delay:┤
│ │ │ │ │ │ │ │ │
├Cargo:───┬Target:─┼Next:───┼NavCom:─┼SNavCom:┼SFace:┼PBrk:┬HeadTo:─┬Archive:─┤
│ │ │ │ │ │ │ │ │ │
├Tmr:┬St:┬Rt:┬Stage┼Radio:──┼Radio Message History:──┴─────┴────────┴─────────┤
│ │ │ │ │ │ │
├Mission:┴───┴─┬Queue:──────┤ │
│ │ │ │
├Doing:┬Fear:┬─┴────────────┴─────────────────────────────────────────────────┤
│ │ │ │
├──────┴─────┼────────────┬────────────┬────────────┬────────────┬────────────┤
│Is Down │AnimAttached│Primary │Player Owned│Initiated │Technician │
│To Damage │Falling [ ]│Loaner │Player Aware│Deploying │Stoked │
│To Display │Useless │Locked │AI Aware │Firing │Prone │
│In Limbo │Ticked Off │Recoil │Lemon │Rotating │ │
│Selected │Cloakable │Tethered │Invul [ ]│Driving │ │
│To Look │Unloading │Formation │ │ │ │
╞Team:═══╤Mmbrs:╤Qnt:╤Center:═╤Target:═╪Formation:══╪════════════╪════════════╡
│ │ │ │ │ │ │Understrngth│Moving │
├Mission:┴──────┴────┴────────┼────────┴────────────┤FullStrength│ForcedActive│
│ │ │HasBeen │Reforming │
└─────────────────────────────┴─────────────────────┴────────────┴────────────┘
<- F11 Infantry F12 ->
┌Full Name:────────┬Coord:──┬Hgt:┬Str:┬Ace:┬Spd:┬Ammo┬Arm:┬Grp:┬Cloak:┬Price:─┐
│ │ │ │ │ │ │ │ │ │ │ │
├Owner:────────────┼Trigger:┼TarCom:─┬STarCom:┬PFace:┼Path:────┴──┬Try:┬Delay:┤
│ │ │ │ │ │ │ │ │
├Cargo:───┬Target:─┼Next:───┼NavCom:─┼SNavCom:┼SFace:┼PBrk:┬HeadTo:─┬Archive:─┤
│ │ │ │ │ │ │ │ │ │
├Tmr:┬St:┬Rt:┬Stage┼Radio:──┼Radio Message History:──┴─────┴────────┴─────────┤
│ │ │ │ │ │ │
├Mission:┴───┴─┬Queue:──────┤ │
│ │ │ │
├──────────────┴────────────┴─────────────────────────────────────────────────┤
│ │
├────────────┬────────────┬────────────┬────────────┬────────────┬────────────┤
│Is Down │AnimAttached│Primary │Player Owned│Initiated │Repairing │
│To Damage │Falling [ ]│Loaner │Player Aware│Deploying │ToSelfRepair│
│To Display │Useless │Locked │AI Aware │Firing │ │
│In Limbo │Ticked Off │Recoil │Lemon │Rotating │ │
│Selected │Cloakable │Tethered │Invul [ ]│Driving │ │
│To Look │Unloading │Formation │ │ │ │
╞Team:═══╤Mmbrs:╤Qnt:╤Center:═╤Target:═╪Formation:══╪════════════╪════════════╡
│ │ │ │ │ │ │Understrngth│Moving │
├Mission:┴──────┴────┴────────┼────────┴────────────┤FullStrength│ForcedActive│
│ │ │HasBeen │Reforming │
└─────────────────────────────┴─────────────────────┴────────────┴────────────┘
<- F11 Ship F12 ->
┌Full Name:────────┬Coord:──┬Hgt:┬Str:┬Ace:┬Spd:┬Ammo┬Arm:┬Grp:┬Cloak:┬Price:─┐
│ │ │ │ │ │ │ │ │ │ │ │
├Owner:────────────┼Trigger:┼TarCom:─┬STarCom:┬PFace:┼Path:────┴──┬Try:┬Delay:┤
│ │ │ │ │ │ │ │ │
├Cargo:───┬Target:─┼Next:───┼NavCom:─┼SNavCom:┼SFace:┼PBrk:┬HeadTo:─┬Archive:─┤
│ │ │ │ │ │ │ │ │ │
├Tmr:┬St:┬Rt:┬Stage┼Radio:──┼Radio Message History:──┴─────┴────────┴─────────┤
│ │ │ │ │ │ │
├Mission:┴───┴─┬Queue:──────┤ │
│ │ │ │
├Building:─────┼────────────┴─────────────────────────────────────────────────┤
│ │ │
├────────────┬─┴──────────┬────────────┬────────────┬────────────┬────────────┤
│Is Down │AnimAttached│Primary │Player Owned│Initiated │Reparing │
│To Damage │Falling [ ]│Loaner │Player Aware│Deploying │To Rebuild │
│To Display │Useless │Locked │AI Aware │Firing │To Sell │
│In Limbo │Ticked Off │Recoil │Lemon │Rotating │Charging │
│Selected │Cloakable │Tethered │Invul [ ]│Driving │Charged │
│To Look │Unloading │Formation │ │ │Captured │
├────────────┴────────────┴────────────┴────────────┴────────────┤Jamming │
│ │Jammed │
│ │ │
│ │ │
└────────────────────────────────────────────────────────────────┴────────────┘
<- F11 Building F12 ->
Game Objects│ Drawing │System │Map Display │ │ Game Init │
╒Find-Path:══╪Cell:═══════╪Palette:════╪Full Process╪════════════╪RULES.INI:══╡
│ │ │ │ │ │ │
├Target Scan:┼Objects:────┼────────────┼Sidebar:────┼────────────┼SCENARIO.INI┤
│ │ │ │ │ │ │
├AI:─────────┼Anims:──────┼────────────┼Radar:──────┼────────────┼────────────┤
│ │ │ │ │ │ │
├Per-Cell-AI─┼────────────┼────────────┼Tactical:───┼────────────┼────────────┤
│ │ │ │ │ │ │
├Eval Object:┼────────────┼────────────┼Power Bar:──┼────────────┼────────────┤
│ │ │ │ │ │ │
├Eval Cell:──┼────────────┼────────────┼Shroud:─────┼────────────┼────────────┤
│ │ │ │ │ │ │
├Eval Wall:──┼────────────┼────────────┼Tabs:───────┼────────────┼────────────┤
│ │ │ │ │ │ │
├Mission:────┼────────────┼────────────┼DirectX Blit┼────────────┼────────────┤
│ │ │ │ │ │ │
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
│ │ │ │ │ │ │
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
│ │ │ │ │ │ │
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
│ │ │ │ │ │ │
└────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘
<- F11 Performance Benchmarks F12 ->
┌Full Name:────────┬Coord:──┬Hgt:┬Str:┬Ace:┬Spd:┬Ammo┬Arm:┬Grp:┬Cloak:┬Price:─┐
│ │ │ │ │ │ │ │ │ │ │ │
├Owner:────────────┼Trigger:┼TarCom:─┬STarCom:┬PFace:┼Path:────┴──┬Try:┬Delay:┤
│ │ │ │ │ │ │ │ │
├Cargo:───┬Target:─┼Next:───┼NavCom:─┼SNavCom:┼SFace:┼PBrk:┬HeadTo:─┬Archive:─┤
│ │ │ │ │ │ │ │ │ │
├Tmr:┬St:┬Rt:┬Stage┼Radio:──┼Radio Message History:──┴─────┴────────┴─────────┤
│ │ │ │ │ │ │
├Mission:┴───┴─┬Queue:──────┤ │
│ │ │ │
├Attk:┬────────┴────────────┴─────────────────────────────────────────────────┤
│ │ │
├─────┴──────┬────────────┬────────────┬────────────┬────────────┬────────────┤
│Is Down │AnimAttached│Primary │Player Owned│Initiated │ │
│To Damage │Falling [ ]│Loaner │Player Aware│Deploying │ │
│To Display │Useless │Locked │AI aware │Firing │ │
│In Limbo │Ticked Off │Recoil │Lemon │Rotating │ │
│Selected │Cloakable │Tethered │Invul [ ]│Driving │ │
│To Look │Unloading │Formation │ │ │ │
╞Team:═══╤Mmbrs:╤Qnt:╤Center:═╤Target:═╪Formation:══╪════════════╪════════════╡
│ │ │ │ │ │ │Understrngth│Moving │
├Mission:┴──────┴────┴────────┼────────┴────────────┤FullStrength│ForcedActive│
│ │ │HasBeen │Reforming │
└─────────────────────────────┴─────────────────────┴────────────┴────────────┘
<- F11 Aircraft F12 ->
┌Full Name:────────┬Act Like:────────┬Tech:┬Diff:┬State:┬Block:┬IQ:──┬Repair:─┐
│ │ │ │ │ │ │ │ │
├AScan:──┬Air:────┬Q-Air──┬Credits:┬Power:─┼R-Spy:┬Score:───┬Team:───┼Alert:──┤
│ │ │ │ │ │ │ │ │ │
├BScan:──┼Building┼Q-Bld──┼Ore:────┼Drain:─┼P-Targ:─────────┼Trigger:┼Borrow:─┤
│ │ │ │ │ │ │ │ │
├UScan:──┼Unit:───┼Q-Unit─┼ICreds:─┼U-Lost:┼Allies:─┬───────┴────────┼Attack:─┤
│ │ │ │ │ │ │ │ │
├IScan:──┼Infantry┼Q-Inf──┼Capacity┼B-Lost:┼Radius:─┤ ├AI-Time:┤
│ │ │ │ │ │ │ │ │
├VScan:──┼Vessel:─┼Q-Ship─┼North:──┴───────┴────────┼Center Cell:────┼Damage:─┤
│ │ │ │ │ │ │
├West:───┴────────┴───────┼Core:────────────────────┼East:───────────┴────────┤
│ │ │ │
├Globals:─────────────────┼South:───────────────────┼Enemy:───────────────────┤
│ │ │ │
├────────────┬────────────┼────────────┬────────────┼────────────┬────────────┤
│Is Active │Defeated │Visionary │Resigned │ │ │
│Is Human │To Die │Low Ore │Gave Up │ │ │
│Player Ctrl │To Win │Spied │Built Smthng│ │ │
│Autocreate │To Lose │Thieved │Auto Base AI│ │ │
│Discovered │Civ. Evac │GPS Active │ │ │ │
│Max Capacity│Recalc Flag │Production │ │ │ │
└────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘
<- F11 House F12 ->
Map Editor Leftovers#
Also inside DEBUG.ENG, there are leftovers of the map editor.
From the map editor's scripting editor:
Trigger Editor
Configuring how multiple events and actions are used by the scripts:
Just This Event
... and ...
... or ...
... linked ...
Just This Action
From the map editor's unit group definitions for scripting:
Team Editor
Building properties:
Sellable
Rebuild
General map properties:
Size Map
Trucks drop crate when destroyed?
The one about the trucks corresponds with the mission option "TruckCrate" that can be put in a missions's [Basic] section. The game has a whole set of special mission behaviour options like that, though only that one appears in the debug file.
Benchmarking Text#
This is a leftover of a benchmarking function used in the development the game. The code using it can be found in DEBUG.CPP, in the Benchmarks(MonoClass * mono) function.
*******************************
** Pentium CPU not detected. **
*******************************
This message was shown to indicate that the benchmarking could not be done on the current machine, since it used CPU instructions specific to the Pentium chipset.
Scenario Authentication Text#
A scenario authentication failure message. This message might be related to the [Digest] blocks saved in maps as check against tampering, or possibly to some unknown map password protection mechanism from the development days that might have been implemented to prevent information leaks.
Scenario authentication code missing or invalid. Re-save scenario to correct it.
Unused Mechanics#
- The game supports buildings of unused sizes:
- A 4x2 building size is defined but goes unused, it was previously used for The Studio in Command and Conquer.
- A 5x5 building size is defined but goes unused.2
- Source code reveals that bridges were once planned to be repairable by engineers before being implemented in Tiberian Sun.3
- Source code reveals that thieves were able to steal vehicles at one point.45
The following countries are used and playable in game:
- England
- France
- Germany
- USSR
- Ukraine
The following countries are also defined in-game and used in campaign, but not selectable for multiplayer:
- Spain
- Greece
- Turkey
In addition, Italy was considered to be a country in development but was cut. No strings are defined for it, however it is still manually defined in some levels. A reference to it and its colors can be found in palette.cps. It may have been replaced by Ukraine which uses the orange color scheme defined in the file.6
Cut Sounds#
Included in the Steam version are cut sounds for the iron curtain. They can be seen defined in a backup file from September 15, 1996 in the source code before being cut by November. The sounds were likely for the iron curtain being applied to a unit and then another for wearing off. The used sound, IRONCUR9, is still internally defined as IRONCUR1.
Hidden Command Line Arguments#
Using the command line argument FROMINSTALL allows the player to run the game as if it were freshly installed.
Editor Mode#
There is a hidden command line parameter "EDITOR" which causes the game to start in a strange mode which loads the first game mission automatically on startup, where no sidebar is drawn, where projectiles don't spawn (and thus no damage can be done by anything), and where the mouse controls for commanding units are disabled (though the keyboard commands still work). This was theorized to be the defunct remains of a map editor built into the game engine, which was confirmed when the game's source code was released. On the retail game, the editor was split off into the separate EDDOS and EDWIN editors, though they are dumbed down to only allow the creation of fixed-size multiplayer maps.
The full code for the internal map editor was later found in the released code of the Remastered Edition, and the editor is usable in the Vanilla Conquer project, which reconstructed the entire game code from the released Remastered source.
Developer Messages#
Typing a secret password message into the network chat shows a number of developer messages. The password is only stored as hash 0x72A47EF6 internally, which is the result of performing the Obfuscate function on the given text plus a line terminator.
The password was originally brute-force-decoded to FELTPLAYWORK, but given the hashed origin, this is no guarantee that this was indeed the original password. Later, other likely matches BOT FOGIES and DOTHISMYSELF were also found.
(Source: -=CHE@TER=-, kampaster via CTPAX-X)
Version Differences#
- The score screen has an animation when appearing in the DOS version. In the Windows version it fades in without animation. In the Remaster it appears without animation or fading.
- {| class="wikitable"
! Allies !! Soviet |- | |
|}
Regional Differences#
|
|
To do: |
As to be expected of the Command & Conquer series, the game was censored upon being released in Germany.
- The intro had a portion cut out, specifically a flashback to 1924 where Hitler is knocked out as he's shaking hands. While German laws don't prohibit displays of Hitler (unlike symbols such as the swastika), games still frequently remove or replace Hitler as a character.
- The game is reworked so that the humans become cyborgs. The soldiers become all kinds of robots, cyborgs, and androids. Killing or running over enemies results in robotic noises being played, instead of human screams.
- Blood is recolored black to make it look more like oil.
- The track Hell March was also censored to remove the marching sounds and commands that can be heard in the background of the song.
- There are a lot of censorship in the game's cinematics:
- Allies:
- A scene was cut out where Tanya Adams is hit in the face and knocked unconscious by the interrogator in prison.
- The Allied failure video, which shows a soldier frozen to death in the snow, was removed completely; instead, it shows the Soviet logo.
- Another failure video, which shows Tanya Adams' grave, was also removed; instead, it plays the video where Europe becomes part of the USSR.
- In the video where Paris is hit by a nuclear bomb, the voices before the impact were replaced with honking horns. The screams after the impact were removed altogether.
- The video where two soldiers barely make it out of their defensive position before they're overrun by enemy tanks was removed. Instead, it plays a video meant for the Soviet missions where tanks cross a river and destroy an enemy base.
- The Allied ending had the last portion cut out where the commander uncovers Stalin's face, puts a towel in his mouth, covers it up with rubble again and then happily dances.
- Soviets:
- The scene where Stalin and friends watch a video about the effects of gas was censored. Instead of the video, they just look at a map of Europe for one second and then immediately turn back to the table.
- The video played after completing the first mission, which shows an airplane attacking a village with children screaming in the background, was completely removed. Instead, the Soviet logo is displayed.
- The video which shows a soldier being executed was removed and, again, replaced by the Soviet logo.
- The famous scene where Stalin says "if you kill one human, it is a tragedy, if you kill 10 million, it is a statistic" was cut out. In the German version, the cinematic starts at the part where you are promoted.
- The same failure video from the Allies, showing the soldier frozen to death, was removed here as well and, yet again, replaced by the Soviet logo.
- The video where you see three soldiers through binoculars was removed. Instead, it plays a video from another mission that shows aircraft starting up.
- The failure video which shows a military graveyard was removed; instead you get to see burning remains of Soviet armory that are already shown elsewhere.
- Allies:
(Source: Schnittberichte)
References#
- https://github.com/electronicarts/CnC_Red_Alert/blob/main/CODE/RULES.CPP#L214C2-L214C18↩︎
- https://github.com/electronicarts/CnC_Red_Alert/blob/0dc09bb1d6188d1ec79ab4765b22a48b75ffee32/CODE/DEFINES.H#L2913↩︎
- https://github.com/electronicarts/CnC_Red_Alert/blob/main/CODE/INFANTRY.CPP#L3203↩︎
- https://github.com/electronicarts/CnC_Red_Alert/blob/main/CODE/INFANTRY.CPP#L2820↩︎
- https://github.com/electronicarts/CnC_Red_Alert/blob/0dc09bb1d6188d1ec79ab4765b22a48b75ffee32/CODE/UNIT.CPP#L4412↩︎
- https://github.com/electronicarts/CnC_Red_Alert/blob/0dc09bb1d6188d1ec79ab4765b22a48b75ffee32/CODE/MAPEDIT.H#L154↩︎
|
The Command & Conquer series | |
|---|---|
|
DOS |
|
|
Windows |
Command & Conquer (Demos) • Red Alert (Prototypes) • Tiberian Sun • Red Alert 2 • Renegade (Prototype) • Generals (Prototypes) • Tiberium Wars • Red Alert 3 (Prototypes) • Tiberian Twilight |
|
Sega Saturn |
|
|
PlayStation |
|
|
Nintendo 64 |
|
|
See Also | |
