The Helicopter Bug

The “Great Helicopter Bug” is one of the most common UA problems on modern computers and one of the most common topics on the forum. Luckily it's also pretty easy to fix.

Note that this problem only occurs with the original game executables. UA Source does not suffer from this problem.

Signs and symptoms

Helicopters don't obey orders, have problems to turn and don't follow enemies properly. They are often unable to move to directions other than up, and when ordered to move they will quickly get into great heights.

The most commonly affected helicopters are:

  • Ghargoil 1 and 2 (very common)
  • Dragonfly (very common)
  • Firefly (sometimes)
  • Others rarely

Causes

The problem is caused by a threshold check in the code that processes helicopter rotation as was found out by user Zidane in this forum thread. When an update time period gets short enough, which happens on new, powerful computers, the threshold condition is never fulfilled and helicopter rotation is not processed correctly.

Factors that are known or believed to affect the occurrence of the problem include:

  • High frame rate
  • Fast and powerful CPU
  • Using software rendering
  • Slow turning rate (maxrot) of the helicopters as it determines, together with the update period, whether the threshold value can be exceeded or not

Workarounds

Various workarounds exist to mitigate the problem but only one of them is recommended nowadays.

Use patched game executable

Direct download link for Helicopter Patch

A patched game executable was created by user Zidane, see this thread. This patch is flawless and has no drawback. It should provide a definitive solution to the problem once and for all.

The thread also contains instructions on how to patch the game manually using a hex editor.


Historical methods

These methods were used to mitigate the problem but none of them is necessary or recommended anymore. They are presented here for historical reasons.

Script-based fixes and increasing turning rate

Script-based fixes were the first discovered methods to fix the unresponsive helicopters. Several different patch sets and guides have been in circulation and may still be found on the internet. Before the relation between the rotation rate (maxrot) and the problem was known, some early patches replaced the parameters of the affected helicopters with those of a working helicopter such as Hornet. This fixed the problem but also caused them to lose their unique properties which was undesirable.

Slightly later, increasing the turning rate of the affected helicopters became the standard way to fix them. Different values were recommended by different persons and different patches were again distributed. The higher the value was compared to the original, the more it affected the gameplay. While this method preserved most of the unique properties of each helicopter, it still had a detrimental effect on the gameplay and balance.

Here's a typical procedure to fix the helicopters before the native patch was known:

  • Open a text editor such as Notepad, WordPad or Notepad++
  • Open the script files.
    • Names: user.scr, feinde.scr (original game only), Ghor.scr (Metropolis Dawn only)
    • Location in original UA is <ua_folder>/data/scripts/
    • Location in Metropolis Dawn is <ua_folder>/dataxp/scripts/
    • Note that Windows recognizes them as screensavers which they are not.
  • Find the desired helicopters.
    • Ghargoils in feinde.scr (or Ghor.scr), note that Ghargoil 3 is technically a plane and doesn't need fixing.
    • Dragonfly in user.scr, note that it is called LAWNMOWER
    • Firefly in user.scr if needed, note that it is called KNUDDEL
  • Change the maxrot values to something higher. 1.2 works often. If not, try 1.5, 1.8 etc.
  • Save the files and quit.

One particular problem of script-based helipatches concerns multiplayer. If the players have different game files, a warning message is displayed. Script-based helicopter patches used to cause this warning when players were using different patches. However, the warning can also indicate cheating, and helicopter patches could be used as an excuse to conceal cheating. On the other hand, using different helicopter patches may be considered cheating in itself if a particular patch gives an advantage over the other players.

Due to its detrimental effect on the gameplay and balance, this method is not recommended anymore. On nowadays machines, higher maxrot values might be needed and more helicopters might need patching which results in increased disruption of unit balance.

Using hardware rendering

At some point, it was noticed that software rendering might result in more serious problems, especially on modern computers. Switching to hardware rendering became a recommended option. In UA Options menu, change Direct3D Device to Primary display driver instead of Software (note that “Primary display driver” may be localized to the system language). This method is not guaranteed to fix the symptoms and it usually makes no difference on modern computers when used alone. However, it may improve the effectiveness of script-based patches which may be more difficult to get working in software rendering mode.

Nowadays the choice between hardware and software rendering depends on which mode works better on a particular computer, and the personal preference of the player.

Decreasing frame rate

In hardware rendering mode UA automatically locks frame rate to the display refresh rate. Higher frame rates are known to worsen the problem. Decreasing refresh rate via graphics card control program may help to an extent. There are also some DirectX manipulation tools available that can be used to adjust frame rate.

Slowing down CPU

Slowing down the CPU can help but may be difficult to carry out. Causing excessive load is one way to achieve it, underclocking is another.

Sometimes this problem may seem to disappear by itself when the number of units in the game increases. This may happen if the computer is just powerful enough to trigger the problem when there are only a few units. When more and more units are created, the game runs slower. When units are destroyed, the problem returns. This phenomenon is also affected by the rendering mode.

Cheating the Engine

Using a process manipulation tool such as Cheat Engine to tamper with the system time functions and speed up the game (“speedhack”) has been reported to help but it will have a significant, often undesirable, effect on the gameplay experience.

heli_bug.txt · Last modified: 2020/03/31 17:01 by Ormu
Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0