Aerial Combat Modeler Pilot Manual

Valid CSS! Creative Commons License

Package Name: ACM‑7.0‑dlc Version: 20200202

This minorly updated version released 2020‑02‑02
by David L. Craig available at http://dlcusa.net/acm
was derived from the majorly enhanced version released 2010‑01‑09
by Umberto Salsi available at www.icosaedro.it/acm/download.html
which was derived from the last release of the original
by Riley Rainey (unfortunately no longer available online).

Screenshot of landing the F-16

Landing the F‑16 with Head‑Up Display in the default Sahara scene

Table of Contents

Each line in the following two columns is a clickable link to the actual section. When reading this manual to learn the content, cover‑to‑cover is the best approach. Click through the links when you need a particular pesky detail really soon.

You can click on, as an example, the [DIS] link to read what that notation means or (if links are not supported by the version of this manual you are reading), refer to the [DIS] item under the Explanation of Notations subsection immediately following to access that information.

Front Page

Table of Contents

Explanation of Notations

Introduction

Features

Changes Not Already Described

ACM History and Acknowledgments

Known Issues and Support

Launching An ACM Session

ACM Graphical User Interface

Panel You

Panel Instruments

Panel Scene

Panel Drones

Panel Configure

ACM Command Line Syntax

Option ‑airspeed‑kt

Option ‑altitude

Option ‑arcade

Option ‑cmap

Option ‑copyright

Option ‑da

Option ‑depth_steps

Option ‑dis [DIS]

Option ‑dis‑absolute‑time [DIS]

Option ‑dis‑appl [DIS]

Option ‑dis‑exercise [DIS]

Option ‑dis‑site [DIS]

Option ‑display

Option ‑downward_view_angle_deg

Option ‑drone‑mode

Option ‑end‑game

Option ‑eye_to_screen_cm

Option ‑frame‑rate

Option ‑fuel

Option ‑geometry

Option ‑groundc

Option ‑gust

Option ‑heading

Option ‑help

Option ‑hud‑mode

Option ‑init

Option ‑js

Option ‑latitude

Option ‑lighting

Option ‑longitude

Option ‑mouse‑mode

Option ‑name

Option ‑no‑dis

Option ‑no‑sound

Option ‑objects

Option ‑payload

Option ‑plane

Option ‑scene

Option ‑stealth

Option ‑subject‑entity‑id

Option ‑team

Option ‑team_1

Option ‑team_2

Option ‑threshold‑range

Option ‑transfer‑entity‑mode

Option ‑update‑rate

Option ‑version

Option ‑visibility

Option ‑watch‑frame‑rate

Option ‑wind

Other Initialization Parameters

File default.acmscene

File object‑map.txt

File munition‑map.txt

File inventory

.obv Files

Axis Control

Keystick Facility

Changing To the Keystick

Changing From the Keystick

Pilot Commands

Events (Quick Reference)

Events: Non‑Alphanumeric Keys

Events: Alphanumeric Keys

Events: Buttons

Events: Terminal Faclity Commands

Actions

Original Table of Pilot Actions

ACM Aircraft Systems

Magnetic Compass

Classic Instrument Panel

Turn and Slip Indicator

Airspeed Indicator

Artificial Horizon (Attitude & Bank)

Altitude Indicator

Vertical Speed Indicator (VSI)

Head‑Up Display

HUD Ladders

HUD Compass

HUD Angle of Attack

HUD G Meter

HUD Weapon Status

HUD Turn and Slip

HUD Mach Meter

HUD Radar Altimeter

Horizontal Situation Indicator (HSI)

HSI for VOR Stations

HSI for ILS Stations

HSI for RNAV Calculator

Automatic Direction Finder (ADF)

[AS] Autopilot Systems

[AC] Coordinate Roll/Yaw (AutoCoordinate)

[AW] Hold Turn/Wings Level (AutoWings)

[AP] Hold Altitude/Rate of Climb (AutoPilot)

[AT] Hold True Airspeed (AutoThrottle)

[AN] Navigate to VOR (AutoNavigate)

[AL] Land Using ILS (AutoLand)

Lights Panel

Radar

Electronic Counter‑measures

Weapon Systems

Cannon

Air‑To‑Air Missles

Ballistic Bombs

Other ACM Components and Concepts

About Screen Configuration

About Planes

About Drones

About Origin Situations

About Meteorological Conditions

Visibility and Haze

Wind

Day and Night

Clouds and Fog

Precipitation

Temperature, Pressure, and Humidity

About Resupply

About Stealth Mode

About the Default Scene

DLC — David L. Craig Airbase

ICO — Umberto Salsi Airbase

NP_ — North Pole Airbase

RRA — Riley Rainey Airport

SP_ — South Pole Airbase

TDC — Tristan da Cunha Airport

Programmer Topics

Building ACM on UNIX Systems

Defining New Scenes

Team Locations — TEAMLOC, TEAM_x Records

Ground Color — GROUNDC Record

Runways — RNW, RNW2 Records

NAVAIDs — NAV Record

Instrument Landings — ILS Record

Scenery Ornamentation — FEATURE Record

Defining New Aircraft

Defining New Objects

IEEE 1278.1 (DIS) Compliance

Transfer Control Protocol

Transfer Control Request PDU

Transfer Type

ACM for Microsoft Windows

Source Code

Developer Studio Setup

Setting Up an ACM Session

Starting ACM

Appendices

Acronyms

Units of measurement

Suggested Further Reading

Explanation of Notations

The notations employed in this Pilot Manual are really terse, so here is a list of the terms and the verbose explanations of what they signify. The list is sorted according to the alphanumeric characters.

[DIS] the event—action or ACM Command Line Option is unavailable if the CFLAGS environment variable did not include ‑DHAVE_DIS when ACM was built.
[FIX] the event—action is unavailable if the CFLAGS environment variable did not include ‑DFIXME_INCOMPLETE_OR_BUGGED when ACM was built (but this notation means it's broken so you probably don't want to mess with it unless you're trying to be a hero by fixing it).
[SG] (safeguard); the event—action must be armed by one trigger event followed by a second trigger event within two seconds to execute the action. If the armed state times out, the next trigger event rearms the action.
[SK] the event—action is unavailable if the CFLAGS environment variable did not include ‑DSPECIAL_KEYS when ACM was built
[SNP] the event—action is dependent upon the C macro SWITCH_TO_NEXT_PLAYER_ENABLED being defined when ACM was built (this is hardcoded in the distributed version of events.c so it should be available unless the program has been modified).
[‑V] the aircraft does not have a visual description file in the objects directory so the chase view is not available for it nor can it be seen by any observers.
[+b] the event—action is available in both the main and browse modes.
[‑b] the event—action is available only in main mode, not in the browse mode (look up or down one or two lines for the same event with a different action that may be available).
[+j] the event—action is available only if a working joystick has been successfully accessed by ACM through the device path specified via the ‑js ACM option .
[‑m] the event—action is available only in browse mode, not in the main mode.
[+s] the event—action is available only if the CFLAGS environment variable included ‑Dsun; i.e., Sun keyboard, when ACM was built.
[‑s] the event—action is available only if the CFLAGS environment variable did not include ‑Dsun; i.e., Sun keyboard, when ACM was built (look up or down one or two lines for the same event with a different action that may be available).

Introduction

Newbie note: If piloting an aircraft, real or simulated, is a new endeavor for you, be advised it is significantly more complex than driving an automobile, and it took you a while to learn to do that well, did it not? Teaching you how to fly is beyond the scope of this manual, although it attempts to be comprehendable by beginning pilots who have not yet absorbed the basics, so don't stop reading. The ACM man page discusses briefly how to get airborne without a lot of bother (in a shell window such as xterm, cd into the acm‑7.0‑dlc distribution directory whereever it was installed, then invoke man ‑l src/acm.man to view it). Also, in this section are many links to Wikipedia articles about terms and acronyms that may be meaningless to you at this time.

Real pilots in the USA reference the Federal Aviation Administration's official publications, especially the Pilot Handbook (a 54 MB PDF). You'll use that if you're running X-Plane 11 or possibly for FlightGear but ACM appeared before those simulators and is oriented toward simplicity while still adhering to aerodynamic realities. So if all you're going to pilot is this simulator, you can ignore a lot of what's in the Handbook (or the Aeronautical Information Manual (AIM) for that matter) but "Chapter 4: Principles of Flight" and "Chapter 5 Aerodynamics of Flight" are fundamental (though presented for post-high school readers).

The FAA is the regulatory part of the Federal government for aviation, but NASA is the the R&D group. They offer a Web-focused collection of age-appropriate (yes, many children can learn to fly this simulator) material on aeronautics and aerodynamics—visit https://www.grc.nasa.gov/www/k-12/airplane/index.html to dive in.

Also, reading “Stick and Rudder: An Explanation of the Art of Flying” by Wolfgang Langewiesche is highly recommended for sorting out all the apparent contradictions you are about to encounter.

ACM‑7.0‑dlc is a distributed multiplayer air combat simulation that runs on Unix-like platforms, such as Linux and Solaris. Players can engage in air‑to‑air combat with infrared missiles and cannon (the Su‑30 also drops bombs), but civil aircraft are available, as well. Users can add more aircraft models and more sceneries, and this manual explains how all that can be done, too.

Aircraft are simulated as 6 degrees of freedom bodies:
 Translation: (1) forward/backward, (2) left/right, (3) up/down, and
 Rotation:   (4) yaw, (5) pitch, (6) roll
and every model gets described and then behaves according to its aerodynamic properties. Landing gear dynamics/ground handling, engines, atmosphere properties including wind, and (naturally) control inputs, are also simulated, so you can experiment with the different behaviors of the aircraft in different flying conditions.

The “world” of ACM is round, but the terrain is uniformly colored and lacks any detail apart from haze and some facilities here and there. This poor rendering is intentional because it makes the program so light and fast, performing 25 frames per second with a CPU load nearly zero, without the need of an accelerated video-card nor specialized graphical library. ACM‑7.0‑dlc is also suitable for instrumental flight (IFR), since it provides many airports and related radio-navigation aids, including VOR, DME, ADF, RNAV, and ILS.

Features

Summary of the main features currently implemented (changes for this release are noted as [New]):

  • Source code provided with GPL license
  • Simulation with 6 degrees of freedom
  • Landing gear simulation
  • Limited vertical positive/negative load
  • Standard atmosphere
  • Weather: daylight/night, fog, wind
  • Classic instruments
  • Head‑up display (HUD) system and inertial reference which can be toggled with the display of a classic instrument panel via the [H] key
  • Navigation
    • HSI with RNAV calculator
    • ADF
  • [New] Support for key release event handling, including detailed tracing of key and button events to stderr
  • By default, the aircraft control stick is simulated via the joystick if its device path is specified via the ‑js program argument and is successfully accessed; otherwise, the mouse is used
  • [New] The pilot may at any time toggle between the stick control default and the use of a keyboard stick facility
  • [New] Transition between joystick/mouse and keyboard control is requested via doubled [m] key presses
  • [New] Keyboard stick control uses arrow keys
    • [↑] (stick forward)
    • [↓] (stick back)
    • [←] (stick left)
    • [→] (stick right)
  • [New] A red and yellow rectangle displays the position of the keyboard stick just as the X cursor visualizes the position of the mouse stick, and is designed to be used as a target to resynchronize the mouse cursor with the aircraft's control stick when ready to switch back to mouse control to ensure a gentle transition
  • [New] The keyboard cursor rectangle's display can be toggled off and on via the [U] key
  • [New] [PageUp] and [PageDown] have been redefined to increase/decrease the sensitivity of the keyboard control stick, where sensitivity defines the number of pixels moved by each stick movement command, a number between 1 and 128
  • [New] Keyboard stick control uses the [End] key to cycle through the available sensitivity modes
    • Linear—each [PageUp]/[PageDown] key event increments/decrements the sensitivity by one
    • Double—each [PageUp]/[PageDown] key event doubles/halves the sensitivity
  • [New] Mouse center and right buttons are duplicated with the [v] (press=open fire, release=cease fire) and [V] keys
  • [New] The color and brightness of the HUD, messages, [D] and [F1] key displays can be changed in-flight via the [C] and [B] keys, respectively
  • Auto‑pilots [AS]
    • [AC] Roll/yaw coordination enabled via [X] key
    • [AW] Wing leveler enabled via [|] key (bar)
    • [AW] 3.0° turn (standard rate) enabled via [<] (left) and [>] (right) keys
    • [AW] 1.5° turn enabled via [,] (left) and [.] (right) keys
    • [AW] Maximum Bank panel knob adjusted using [(] (down) and [)] (up) keys, default is 25° [New] Range (5° increments) changed from 5-25 to 15-35
    • [AP] Hold altitude enabled via [Z] key
    • [AP] Hold rate of climb rate enabled via [A] key [New] The [5], [6], [%], and [^] keys adjust the target rate of climb
    • [AT] Hold speed enabled via [T] key
    • [AN] Follow VOR radial enabled via [N] key
    • [AL] Follow ILS glide path enabled via [L] key
  • Several aircraft models implemented, both civil and military
  • Several senarios that use actual aviation facilities (Note: These have not yet been converted to the new acmscene record formats)
    • Dallas, Texas, USA
    • Italy
    • Nellis AFB, Nevada, USA
    • Baghdad, Iraq
  • [New] The default scene, allworlds, centers in the no‑man’s land of the Sahara Desert with minimal and ficticious facilities, and includes airports at the geographic poles and the island of Tristan da Cunha in the South Atlantic. It also includes VOR/DME stations along the Equator, Prime Meridian, Anti-Meridian, 90W meridian, and 90E meridian, plus latitudes 87N and 87S. All magnetic variances and runway numbers were adjusted to the state of the Earth's magnetic field circa 2014.
  • [New] Annotated “aerial photographs” and other screenshots in this manual document the allworlds scene
  • Navigation charts in PDF format for the ACM‑5.0‑ico scenery
  • [New] The GROUND_COLOR, TEAM1_LOC and TEAM2_LOC scene records have been replaced with multiple GROUNDC and TEAMLOC definitions using simple mnemonic tags that are selected via a TEAM_1 and TEAM_2 scene record as well as -groundc, -team_1, and -team_2 command line and init file options—oh, and the [G] key cycles through all the GROUNDC colors in-flight

Changes Not Already Described

This manual documents the ACM‑7.0‑dlc‑* release, basically the ACM‑5.0‑ico version with some minor additions and corrections:

ACM History and Acknowledgments

The original version of this program, Aerial Combat Modeler, was developed by Riley Rainey and distributed under the GPL license. The first version was released in 1991 via the venerable Usenet comp.sources.unix newsgroup. Until sometime after 2010, the last version released, 5.0, was still available from Web Simulations Incorporated (www.websimulations.com). ACM‑5.0‑ico, Umberto Salsi’s major effort to improve, correct and extend the ACM‑5.0 project, was updated January 9, 2010 and subsequently untouched for several years (~95% of this manual’s content is directly from that release). For this distribution, I packaged some very minor enhancements I had developed to “scratch some itches”, but I have nowhere near the aeronautical engineering and graphics programming skills of these gentlemen.

In the meantime Umberto has released ACM‑6.0‑ico, most recently on July 25, 2018, available at http://www.icosaedro.it/acm/download.html with several interesting enhancements that would require non-trivial re-engineering in some cases to be incorporated into this version. I only discovered it after, having shelved my development efforts at the end of 2014, I decided near the end 2019 I needed to dust it off and finally release it. I immediately contacted Umberto about my work at that point and he suggested I might release what I have as a 7.0 version, then we both could look at what an 8.0 release might contain.

Also, the Free Software Foundation offers a 5.1 version of Rainey’s release at www.gnu.org/software/acm/ but I have not looked into its changes beyond a very superficial level.

ACM was early upgraded to support the IEEE 1278 Distributed Interactive Simulation (DIS) protocol.

Parts of ACM were derived from other sources. The DIS protocol compiler is based on technology originated at Sun Microsystems in their public domain ONC RPC product. ACM’s DIS glue code was created by Mats Loftkvist. The C++ interface to Microsoft’s DirectDraw is derived from samples created by Nigel Thompson in his book, 3D Graphics Programming for Windows 95.

Many others have generously supplied bug fixes and other changes to ACM‑5.0 since it was originally released. In particular, Brad Bass and Tim Tessin contributed with their encouragement and continued support. Charlie Briggs and Tom Giertz have helped out a lot, too.

The original version ACM‑5.0 was available also for Windows 95/NT, but that was no more true for ACM‑5.0‑ico and it now compiles only on Unix-like systems. The manual sections have consequently been moved to the back of the “Programming Topics” section in this version of the manual and remain only for historical reference. However, Umberto's 6.0 release does support Windows.

Known Issues and Support

News, bugs and updates for ACM‑7.0‑dlc will hopefully continue to be available at dlcusa.net/acm although the details of that site are still in flux. All email regarding ACM should be sent to

 "David L. Craig <dlc.usa@gmail.com>"

and the Subject header should begin with "[ACM] " to ensure it is not mistaken for spam.

The following defects are known problems at the time of this release:

Launching an ACM Session

There are two means of getting the ACM executable executing on your system: use an X‑windows graphical user interface (GUI) widget of your own definition (which will ultimately issue an appropriate shell command), or directly issue the shell command yourself by typing it into a shell window such as xterm.

Note this manual assumes the current working directory for all shell interaction is the ACM release directory, by default named acm‑7.0‑dlc, which is the recommended way of running ACM‑7.0‑dlc.

The GUI is useful for simpler invocations but it does not support all the options available via the command line and can only remember one set of saved options. ACM‑7.0‑dlc provides Umberto's GUI program based upon the Tcl/Tk toolkit, ./acm.tk, as well as some shell scripts that build, run, and debug the actual acm program:

In fact, acmdebug.sh is a symlink to acm.sh since the differences between them are trivial. You may find it useful or time-saving to make copies of these as needed and modify the copies to define different configurations you can invoke without needing to specify all the differences each time you need them. However, most options do not change from flight to flight, so carefully setting up init files enables you to change common groups of options with one -init option simplifying setup for common scenarios, with tweaking using command line overrides.

ACM Graphical User Interface

The ACM‑7.0‑dlc distribution package includes acm‑5.0‑ico’s simple GUI application (which has not been modified so far) to start ACM. Run this with the command

 $ ./acm.tk

If your computer complains about the invalid path of the wish interpreter (the Tcl/Tk window shell), simply open the file acm.tk with your text editor and change the first line so that the pathfile will match the location of the “wish” interpreter on your system.

The windows can display several panels: select the desired panel by activating its button at the top of the window.

The preferences you set in this mask are saved in the file .acmtkrc in your home directory, and restored every time you restart the program. Left-clicking the Run button starts ACM. The Default button sets the default values into the mask. The Quit button exits the program.

Panel You

GUI Panel You

The acm.tk You Panel

The Plane: pop-up menu lets you to select your aircraft from among several models. Refer to Option ‑plane for further details.

The Team: pop-up menu lets you to select your team affiliation. Refer to Option ‑team for further details.

The Latitude (DD‑PP‑SS.SSSQ):, Longitude (DDD‑PP‑SS.SSSQ):, Altitude:, Magnetic Heading:, and True Air Speed: entry boxes allow you to define the starting position for your aircraft. Refer to the “About Origin Situations” section for further information.

The Payload: entry box should include the weight of the pilot, all passengers, their effects and luggage, and any cargo. Refer to Option ‑payload for further details.

The Fuel: entry box lets you to set the amount of fuel desired. Refer to Option ‑fuel for further details.

Panel Instruments

GUI Panel Instruments

The acm.tk Instruments Panel

The Display Mode: radio buttons allow you to define the initial setting between a large classic instrument panel with a smaller outside view area and a smaller panel and larger outside view with most of the flight data presented on the windscreen by what is called a Head‑Up Display (HUD). You can toggle between the two anytime during the flight session via the [H]—Toggle HUD/Panel Display keyboard command. Refer to Option ‑hud‑mode for further details.

The Eye Dist. from screen: and Downward view angle: entry boxes work together to optimize the view outside the aircraft. Refer to the “About Screen Configuration“ section for further details on defining these values.

Panel Scene

GUI Panel Scene

The acm.tk Scene Panel

Scene is the simulation universe to load. The ACM package includes five acmscene universe definition files in the objects directory: allworlds, dallas, italy, nellis, and baghdad, but so far only allworlds supports the new acmscene record formats (note use of the .acmscene suffix is not mandatory for acmscene file names but it is a useful convention). The default scene is simply a symlink to the allworlds file. If you don’t select a scene, ACM will attempt to load the default scene.

The remaining parameters of this panel deal with the weather, and are fully discussed in the “About Meteorological Conditions” section. Lighting lets you choose to fly with the daylight or by night. Visibility defines how transparent the atmosphere is in conjunction with the Configure Panel’s Color depth steps entry box value. Wind direction and Wind velocity set a prevailing wind over all the ACM “world”. Remember that the wind direction is the (true, not magnetic) direction from which the wind blows; e.g., a 90‑degree wind causes your aircraft to drift to the west. Wind gust max intensity sets the maximum intensity of the wind gusts.

Panel Drones

GUI Panel Drones

The acm.tk Drones Panel

The Mode: may be “dog fight” or “hunting” and Aggressiveness: may be set from 0 (low) to 100 (high). Refer to the “About Drones“ section for details about these parameters.

Panel Configure

GUI Panel Configure

The acm.tk Configure Panel

The entry box Program contains the file‑name of the executable program ACM. This is the program launched when you press the Run button.

The entry box Objects directory contains the directory‑name of the directory containing the scenes, the aircraft inventory and other resources the ACM program needs.

The Color depth steps set the number of color shades that will be generated to render the haze effect. Refer to Option ‑depth‑steps for further details.

The Frame rate is the number of times per seconds the program will update the image on the screen. Refer to Option ‑frame‑rate for further details.

The Mouse mode menu defines the algorithm to be used for the session to map mouse movements into aircraft control stick movements. Refer to Option ‑mouse‑mode for further details.

If you have a joystick supported by the program, set the name of the Joystick serial port; e.g., /dev/ttyS0, to request its use instead of the mouse to control the aircraft’s stick. Remember to ensure the ACM user can access the device; e.g., run chmod o+rw /dev/ttyS0 as the root user.

The remaining flags of this panel are quite self-explanatory. Sounds effect are very rough and probably you will leave this feature disabled. Remember only to enable the DIS protocol if you want to fight against the drones.

ACM Command Line Syntax

All options are in fact optional, which is why they are enclosed in brackets ([]) that are not actually typed into the command. The vertical bars (|) likewise are not to be typed, they are used to separate parameter alternatives. If a parameter alternative is italicised, that indicates it is only a description of what should be typed, like an integer; e.g., 13, floating-point number; e.g., 3.14159, or a string of characters; e.g., "abc123#" (if non-italized syntax contains a string enclosed in quotation marks, the string within them must be typed exactly as specified, and the quotation marks may or may not be optional, depending on the shell being used). Naturally, everything you type is processed by the shell you are typing the command into, so you should be familiar with what the man page for your shell says about that. Oh, yes, ACM has its own man page that you may find helpful (run man ‑l src/acm.man to see it).

An underlined parameter alternative indicates the default value for the option if it is not specified in the command. If it is also italicised, note you might not be able to code its value to explicitly request the option. If the default is after the closing bracket, that indicates the option is a simple switch (either it’s specified or it isn’t) and the default describes what its omission causes.

src/acm (this is the command path that must be the first token of the command line)
[ ‑copyright |
  ‑help      |
  ‑version
(These are three ways to request the same thing, and are
not mutually exclusive—all must be omitted for default)
] Verbose start messages are not written to stdout
[ ‑airspeed‑kt initial‑knots‑0‑to‑9999 | 0 ]
[ ‑altitude initial‑msl‑feet |
Per effective TEAM_x option/acmscene record; else 0 ]
[ ‑arcade ] Ammunition is limited, can be resupplied at home base
[ ‑cmap ] No colormap is established
[ ‑da drone‑aggressiveness‑0.001‑to‑1.000 | 0.5 ]
[ ‑depth_steps 1‑to‑100 | 30 ]
[ ‑dis ] No DIS options help messages are written to stdout
[ ‑dis‑absolute‑time ] Variable disAbsoluteTime is not set to 1
[ ‑dis‑appl DIS‑application‑id‑0‑to‑65535 | Last two IPv4 octets ]
[ ‑dis‑exercise DIS‑exercise‑id‑0‑to‑255 | 1 ]
[ ‑dis‑site DIS‑site‑id‑0‑to‑65535 | Last two IPv4 octets ]
[ ‑display X‑display‑spec ] Shell $DISPLAY (required)
[ ‑downward_view_angle_deg degrees‑0.1‑to‑89.9 | 15.0 ]
[ ‑drone‑mode "HUNTING" | "DOGFIGHT" ]
[ ‑end‑game ] Does not improve stealthed drone radar in browse mode
[ ‑eye_to_screen_cm distance‑cm‑0.1‑to‑999.9 | 50.0 ]
[ ‑frame‑rate target‑Hz‑1‑to‑4096 | As fast as possible ]
[ ‑fuel fuel‑pounds‑1‑to‑9999999 |
Up to gross weight or tank capacity ]
[ ‑geometry X11‑geometry‑spec | Default per window manager ]
[ ‑groundc name‑of‑color‑in‑acmscene‑file's‑GROUNDC‑record |
Per last GROUNDC record; else black ]
[ ‑gust max‑ft/s‑0.0‑to‑99.9 | 0.0 ]
[ ‑heading magnetic‑degrees |
Per effective TEAM_x option/acmscene record; else 0 ]
[ ‑hud‑mode ] The classic instrument panel is displayed
[ ‑init command‑file‑name | No file of options is processed ]
[ ‑js joystick‑serial‑port‑pathname | Joystick unused ]
[ ‑latitude  DD‑PP‑SS.SSSQ |
Per effective TEAM_x option/acmscene record; else 0 ]
[ ‑lighting "night" | "daylight" ]
[ ‑longitude DDD‑PP‑SS.SSSQ |
Per effective TEAM_x option/acmscene record; else 0 ]
[ ‑mouse‑mode "precise" | "fast" | "normal" ]
[ ‑name player‑name‑string | "Anonymous" ]
[ ‑no‑dis ] DIS is used, drones can be created [DIS]
[ ‑no‑sound ] Any supported audio capability will be utilized
[ ‑objects path(s)‑to‑objects‑files | ".:./objects:../objects" ]
[ ‑payload payload‑pounds‑1‑to‑9999999 | 150 ]
[ ‑plane "???" | "AMX" | "B‑747" | "C‑172" | "F‑16" | "MD‑81" | "MiG‑29" | "P‑51A" | "Su‑30" |
If team 1, F‑16; else MiG‑29 ]
[ ‑scene scene‑file‑name | "default.acmscene" ]
[ ‑stealth ] Player will not be defined passive and unable to browse
[ ‑subject‑entity‑id site‑id.appl‑id.entity‑id |
dis‑site‑value.dis‑appl‑value.dis‑exercise‑value ]
[ ‑team 2 | 1 ]
[ ‑team_1 short name‑in‑acmscene‑file's‑TEAMLOC‑record |
Per TEAM_1 acmscene record; else per 1st TEAMLOC record; else defaults ]
[ ‑team_2 short name‑in‑acmscene‑file's‑TEAMLOC‑record |
Per TEAM_2 acmscene record; else per 2nd TEAMLOC record; else defaults ]
[ ‑threshold‑range end‑game‑threshold‑nm‑0.1‑to‑999.9 | Radar‑lock‑range ]
[ ‑transfer‑entity‑mode site‑bit+appl‑bit+entity‑bit |
4 (transfer site but not appl or entity) ]
[ ‑update‑rate internal‑Hz‑1‑to‑8192 |
If frame rate specified, 50; else as fast as possible ]
[ ‑visibility visibility‑nm‑0.1‑to‑200.0 | 50.0 ]
[ ‑watch‑frame‑rate ] Frame rendering rate info is not logged
[ ‑wind from‑true‑degrees/velocity‑knots | 0.0/0.0 ]

Option ‑airspeed‑kt

‑airspeed‑kt airspeed‑knots

See the About Origin Situations section for detailed information on this option.

Option ‑altitude

‑altitude altitude‑msl‑feet

See the About Origin Situations section for detailed information on this option.

Option ‑arcade

‑arcade

The presence of this option causes the aircraft’s ordinance, if any, to be inexhaustable. Refer to the “About Resupply“ section for details about restoring the rest of the aircraft’s supplies.

Option ‑cmap

‑cmap

The presence of this option causes a color map to be defined for the session. Review the if (useDefaultVisual) logic in src/players.c for further details.

Option ‑copyright

‑copyright

The presence of this option requests the display of verbose startup messages to the stdout file. It has the same effect as the ‑help and ‑version options.

Option ‑da

‑da drone‑aggressiveness‑0.001‑to‑1.000

Set drone aggressiveness or take the default of 0.5. Refer to the “About Drones“ section for further information.

Option ‑depth‑steps

‑depth_steps number

Set the number of color steps the program build for every color to be rendered with haze in background. For example, a value of 10 means that for every color will be generated ten shades ranging from that color up to haze color. Higher values give better results, but the maximum depends on capabilities of your screen. The minimum is 1 (no shading, essential for CAVU conditions), the maximum is 100, and the default is 30. If you get the error “too many colors requested” you have to reduce this value—10 usually works reliably.

Option ‑dis

‑dis

The presence of this option causes help messages for the DIS options to be written to stdout during ACM’s initialization.

Option ‑dis‑appl

‑dis‑appl dis‑application‑id

Specifies the DIS application parameter to use to identify the instance of ACM acting as the server for this session. The default is the 16‑bit number defined by this client computer’s IPv4 address; i.e., it is assumed this client instance is also the server for the session. Refer to the “Transfer Control Protocol” section for details about the DIS protocol.

Option ‑dis‑exercise

‑dis‑exercise dis‑exercise‑id

Specifies the DIS exercise parameter to use to identify the instance of ACM acting as the server for this session. The default is the 8‑bit number 1. Refer to the “Transfer Control Protocol” section for details about the DIS protocol.

Option ‑dis‑site

‑dis‑site dis‑site‑id

Specifies the DIS site parameter to use to identify the instance of ACM acting as the server for this session. The default is the 16‑bit number defined by this client computer’s IPv4 address; i.e., it is assumed this client instance is also the server for the session. Refer to the “Transfer Control Protocol” section for details about the DIS protocol.

Option ‑display

‑display X_DISPLAY_string

Specifies the name of the X11 seat to use. The default is the value of the DISPLAY environment variable. If that is also not defined, ACM terminates.

Option ‑downward_view_angle_deg

‑downward_view_angle_deg degrees‑0.1‑to‑89.9

Sets the downward view angle (DAV, in degrees) below the horizontal axis of the aircraft, with a default of 15.0. Refer to the “About Screen Configuration“ section for further details.

Option ‑drone‑mode

‑drone‑mode { DOGFIGHT | HUNTING }

Defines how drones are launched, with the default being DOGFIGHT. Refer to the “About Drones“ section for further details.

Option ‑end‑game

‑end‑game

Requests activation of the end‑game facility of stealth mode. If the ‑stealth option is not also requested, this option affects nothing. Refer to the “About Stealth Mode“ section for further details.

Option ‑eye_to_screen_cm

‑eye_to_screen_cm distance‑cm‑0.1‑to‑999.9

Sets the distance between your eyes and the screen, expressed in centimeters (1 inch = 2.54 cm), and having a default of 50. This parameter allows the program to compute the proper scale factor needed to render the outside view without distortion. Refer to the “About Screen Configuration“ section for further details.

Option ‑frame‑rate

‑frame‑rate target‑frame‑rate‑hertz

Specifies a not‑to‑exceed rate at which ACM will attempt to render the cockpit scene. The default is to update the scene as fast as possible, which will use all available CPU time on the system. A good value is probably 25 frames per second. This value does not influence the internal speed of computation, but it sets only the rate at which the frames are redrawn on the screen.

Option ‑fuel

‑fuel fuel‑pounds

Allows the user to set the amount of fuel loaded measured in pounds of weight. If this option is unspecified, the maximum amount of fuel allowed by the aircraft is loaded, with no consideration of the aircraft’s gross takeoff weight.

Option ‑geometry

‑geometry x11‑geometry‑specification

Specify precise location and size settings for the main ACM window according to the standardized X11 definition; e.g.,

‑geometry 1024x768+200+200

If undefined, the default configured for the window manager is used.

Option ‑groundc

‑groundc name‑of‑color‑in‑acmscene‑file's‑GROUNDC‑record

Specify the name of an acmscene file's GROUNDC record to make that the initial ground color.

If undefined, the last GROUNDC record of the file is used, unless there aren't any, in which case, black is used.

Option ‑gust

‑gust max‑ft/s‑0.0‑to‑99.9

Modifies the prevailing wind, if any, with random gustiness up to the velocity specified in feet per second (gust direction is random from gust to gust). Note 10 knots equals approximately 16.878 feet/second. Refer to the “About Meteorological Conditions“ section for details about this parameter and interactions with other parameters.

Option ‑heading

‑heading magnetic‑degrees

See the About Origin Situations section for detailed information on this option.

Option ‑help

‑help

The presence of this option requests the display of verbose startup messages to the stdout file. It has the same effect as the ‑copyright and ‑version options.

Option ‑hud‑mode

‑hud‑mode

Requests the Head-Up Display be provided initially instead of the default classic instrument panel. Refer to the Head‑Up Display and Classic Instrument Panel sections for further information about these choices.

Option ‑init

‑init command‑file‑name

Process the extra command options, in command line format, contained in the specified text file. For example, say there is a file in your home directory named .acmrc, having the following lines:

‑dis‑site 34
‑dis‑appl 4

New lines are treated as normal white space, so feel free to separate command line options onto multiple lines. From a shell, you enter the command:

$ src/acm ‑geometry 800x600 ‑init ~/.acmrc

This would be equivalent to:

$ src/acm ‑geometry 800x600 ‑dis‑site 34 ‑dis‑appl 4

Option ‑js

‑js joystick‑serial‑port‑pathname

This option indicates joystick inputs to control the stick of the aircraft are desired for the session and specifies the device to use (required—there is no default device); e.g., /dev/ttyS0. ACM supports Noesis and Colorado Spectrum (now defunct) serial joystick adapters.

Option ‑latitude

‑latitude DD‑PP‑SS.SSSQ

See the About Origin Situations section for detailed information on this option.

Option ‑lighting

‑lighting { daylight | night }

You can choose between “daylight” (the default) possibly with fog or clouds, or “night” with no illumination at all. Refer to the “About Meteorological Conditions“ section for details about this parameter and interactions with other parameters.

Option ‑longitude

‑longitude DDD‑PP‑SS.SSSQ

See the About Origin Situations section for detailed information on this option.

Option ‑mouse‑mode

‑mouse‑mode { fast | normal | precise }

Define the algorithm that maps mouse movements into the corresponding movements of the ailerons and elevator of the aircraft. “Fast” uses linear relation, so the aircraft reacts promptly to the commands but it is difficult to pilot with precision. “Normal” and “precise” are the recommended modes. The default is “normal”.

Option ‑name

‑name player‑name‑string

Identifies the player and defaults to “Anonymous”.

Option ‑no‑dis

‑no‑dis

The presence of this option causes ACM to not utilize the DIS protocol for the session. This causes the player's aircraft to be the only airborne object in the simulation which is entirely self-contained on the client computer.

Option ‑no‑sound

‑no‑sound

The presence of this option causes ACM to not utilize (during this session) any sound effects support that may have been built into the ACM software through:

Review src/audio.c and src/audio.h for all the particulars.

Option ‑objects

‑objects path1[:path2]...

Scenes, audio effects, aircraft shapes, aircraft data files and other resources are stored as files inside the objects directory. By default, ACM will look for its data files inside these three directories in the order listed:

.
./objects
../objects

which is as though ‑objects .:./objects:../objects had been specified.

So, if you try to start ACM from outside its base directory, it will complain not to be able to load these files This option lets you to specify where these files actually are. You may specify one or more directories separated by a colon.

Option ‑payload

‑payload payload‑pounds

The payload includes the weight of the pilot, all passengers, their effects and luggage, and any cargo, but not ordnance nor the effective value of the ‑fuel ACM option. You should consider at least 150 pounds for every person. If unspecified, 150 pounds for the pilot is applied as the default. Note ACM will allow you to exceed the aircraft’s gross takeoff weight without so much as a warning.

Option ‑plane

‑plane { ??? | AMX | B‑747 | C‑172 | F‑16 | MD‑81 | MiG‑29 | P‑51A | Su‑30 }

Allows the user to select the aircraft type to be flown. The list of the available models is read by the program from the objects/inventory file. To know which models are currently available, simply start the program with an invalid model, e.g., xxx, then the list gets displayed on the terminal.

If this option is unspecified, it defaults to the F‑16 if team 1 is in effect; otherwise, the MiG‑29 is selected.

For more details about the distributed aircraft, see the “About Planes” section.

Option ‑scene

‑scene scene‑file‑name

ACM takes airport and NAVAID information from a text-based scene file. Normally, a file named default.acmscene is used. The file default.acmscene is simply a symlink of the file allworlds.acmscene.

Note: Only the allworlds.acmscene file uses the new record formats—all other files must be converted to work with acm-7.0-dlc

For more details about the contents of acmscene files, see the “Defining New Scenes” section.

Option ‑stealth

‑stealth

Note: this option is currently causing an immediate seg fault in acm‑7.0‑dlc and acm‑5.0‑ico.

Start ACM in stealth mode, which allows users to monitor out‑the‑window views for any aircraft active in an exercise. Additionally, ACM supports an experimental DIS Request/Grant Control protocol that would permit ACM to “take over” aircraft of similarly enabled applications. See the About Stealth Mode section for detailed information on this capability.

Option ‑subject‑entity‑id

‑subject‑entity‑id site‑id.appl‑id.entity‑id

This option can be used in conjunction with the ‑stealth ACM option to identify the initial DIS entity to be “stealthed”:

$ src/acm ‑stealth ‑subject‑entity‑id 32.1.1

Option ‑team

‑team { 1 | 2 }

Allows the user to select which team the aircraft is to be associated with. Team 1 corresponds to the DIS “Friendly” force, while team 2 is the “Opposing” force. Each team has an associated home airbase location which is defined in the scene file read by ACM at startup. Refer to the “About Resupply“ section for details about restoring the aircraft’s supplies at the home airbase.

Option ‑team_1

‑team_1 name‑of‑TEAMLOC‑record‑to‑use‑for‑this‑team

Allows the user to specify the starting location for Team 1 from the pool of TEAMLOC records in the acmscene file. This option overrides a TEAM_1 record if any. If no TEAMLOC records are in the acmscene file, values of zero are used for the team's starting latitude, longitude, altitude, and heading.

Option ‑team_2

‑team_2 name‑of‑TEAMLOC‑record‑to‑use‑for‑this‑team

Allows the user to specify the starting location for Team 2 from the pool of TEAMLOC records in the acmscene file. This option overrides a TEAM_2 record if any. If no TEAMLOC records are in the acmscene file, values of zero are used for the team's starting latitude, longitude, altitude, and heading.

Option ‑threshold‑range

‑threshold‑range threshold‑nautical‑miles

Specifies the threshold for detecting hostile aircraft in ‑end‑game mode and defaults to the stealthed aircraft’s radar lock range. If the ‑stealth and ‑end‑game options are not also requested, this option affects nothing. Refer to the “About Stealth Mode“ section for further details.

Option ‑transfer‑entity‑mode

‑transfer‑entity‑mode site‑bit+appl‑bit+entity‑bit

Specifies the DIS protocol fields that are to be transferred:

site‑bit  decimal value is four to transfer or zero not to transfer

appl‑bit  decimal value is two to transfer or zero not to transfer

entity‑bit decimal value is one to transfer or zero not to transfer

Thus, the possible values that can be specified are:

0 do not transfer any of the fields

1 transfer only the entity field

2 transfer only the appl field

3 do not transfer the site field

4 transfer only the site field (this is the default)

5 do not transfer the appl field

6 do not transfer the entity field

7 transfer all of the fields

Option ‑update‑rate

‑update‑rate internal‑update‑rate‑hertz

Specifies the update rate for the inner integration loop for the simulation. The default is to run as fast as possible unless the ‑frame‑rate ACM option option is specified, in which case, the default changes to 50 Hz.

Option ‑version

‑version

The presence of this option requests the display of verbose startup messages to the stdout file. It has the same effect as the ‑copyright and ‑help options.

Option ‑visibility

‑visibility visibility‑nm‑0.1‑to‑200.0

Set the distance at which objects become totally obscured by atmospheric conditions other than fog and clouds (which, of course, totally obscure anything behind them). The default is 50 nautical miles. Refer to the “About Meteorological Conditions“ section for details about this parameter and interactions with other parameters.

Option ‑watch‑frame‑rate

‑watch‑frame‑rate

Requests logging to stderr of information regarding the rate at which display frames are being rendered.

Option ‑wind

‑wind from‑true‑degrees/velocity‑knots

Defines prevailing wind at all altitudes; e.g., 90.0/7.5 specifies wind from due east at a constant speed of 7.5 knots which will push all aircraft due west. The default is no prevailing wind. Refer to the “Wind“ section for further details.

Other Initialization Parameters

At startup, ACM reads several text-based data files to configure the operating environment. They are all searched for according to the definition of the ‑objects option.

File default.acmscene

The acmscene files contain ASCII text that define a simulation universe. Only one file may be used for a session. Each acmscene file contains the locations of each team’s home base and all features that are situated on the ground in that universe, including runways, NAVAIDs, and structures such as control towers and hangars.

If the ‑scene option is not specified when ACM is launched, the first default.acmscene file found in the concatenation of directories in effect for the ‑options option will be used to define the session’s universe. If, however, a different file is requested via the ‑scene option, that file will be used instead.

Refer to the “Defining New Scenes“ section for complete details about the contents of acmscene files.

File object‑map.txt

The object‑map.txt ASCII text file in the objects directory is still processed during initialization, but it has attrophied through the years and only seems to be necessary when drones are being launched; otherwise, ACM seems to run the same whether it is processed or it is entirely commented-out. The file contains comments that explain the fields of the records therein.

File munition‑map.txt

The munition‑map.txt ASCII text file in the objects directory defines the explosion and damage producing characteristics of DIS munition entity type and warhead combinations. The file contains comments that explain the fields of the records therein.

File inventory

The inventory ASCII text file in the objects directory defines the performance characteristics of all aircraft types modeled by ACM. The layout of this file is defined in the Defining New Aircraft section.

.obv Files

The .obv files are ASCII text files that contain the data needed by ACM to render a particular object type (such as an F-16 aircraft or a Team 1 Hangar) in three dimensions within the simulation. The location and orientation of any particular instance of an .obv is defined external to the .obv file, enabling the single file to be used for mulitple instances.

Refer to the “Defining New Objects“ section for complete details about the contents of .obv files.

Axis Control

Newbie note: A fixed-wing aircraft's stick controls its roll (left or right deviation from center) and its pitch (forward or backward deviation from center), while its rudder pedals control its yaw, including nose wheel steering. The rotational force of the roll, pitch or yaw increases the further from center these controls are moved by the pilot. So on the ground, you steer with your feet, not the wheel, which is actually called the yoke (if there is one—many airplanes use a vertical stick that pivots at the bottom instead of a yoke).

By default, the aircraft control stick is simulated via the joystick if its device path is specified via the ‑js program argument and is successfully accessed; otherwise, the mouse is used.

The [D] key's debugging display includes a line for stick state including the X and Y coordinates where 0,0 is neutral for roll and pitch, and corresponds to the center of ACM's X window, where left side and bottom half numbers are negative. Remember cursor low corresponds to stick back, elevator up, tail down, and nose up; while cursor high corresponds to stick forward, elevator down, tail up, and nose down.

ACM supports no input device like a joystick or mouse to control the simulated aircraft's rudder pedals; instead, it uses the [z] (left), [x] (center), and [c] (right) keyboard keys. The rudder deviation from center is increased via repeated presses of the [z] or [c] key. If z has been pressed four times, [c] must be pressed four times to return the rudder to neutral (or one [x] key press will instantly center the rudder from whereever it has been set).

Important: ACM's nose wheel steering is not tied to the rudder pedal keyboard keys as could be reasonably expected. The stick's roll axis control is used instead, for better or worse. Also, nose wheel directional control disappears above 50 knots (so be sure the stick is centered when passing through that velocity). If using the keystick, the sensitivity control applies to nose wheel steering.

Keystick Facility

The pilot may at any time toggle between the stick control default and the use of a keyboard stick facility that controls the roll and pitch axes in the same paradigm used for the rudder pedals as was desceibed in the Axis Control Section. Keyboard stick control uses the arrow keys:

A red and yellow rectangle displays the position of the keyboard stick just as the X cursor visualizes the position of the mouse stick, and is designed to be used as a target to resynchronize the mouse cursor with the aircraft's control stick when ready to switch back to mouse control to ensure a gentle transition.

Transition between joystick/mouse and keyboard control is requested via doubled [m] key presses.

[PageUp] and [PageDown] have been redefined to increase/decrease the sensitivity of the keyboard control stick, where sensitivity defines the number of pixels moved by each stick movement command, a number between 1 and 128 inclusive.

Keyboard stick control uses the [End] key to cycle through the available sensitivity modes.

Display of the red and yellow keyboard cursor can be toggled off and on via the [U] key.

Changing To the Keystick

To change from the joystick/mouse to the keystick:

  1. If not airborne, move the X cursor to a neutral position near the center of ACM's Xwindow, such as the center of the HUD ladder for ten degrees down.
  2. Press the [m] key twice within two seconds.
  3. The red and yellow square will appear under the X cursor and the keystick facility will now be in control of roll and pitch. The X cursor can now be parked in a corner wtihout affecting the flight of the aircraft.
It is recommended this be performed while the aircraft is still parked. Once the keystick is active, examine the keystick's line in the [D] key's debugging display for the X and Y coordinates and set the stick for take-off. X (roll) will always be 0, but Y (pitch) varies by aircraft and personal preference. However, Y=-160 with S (sensitivity) at either 16 or 32 is a good beginning.

Changing From the Keystick

To change from the keystick back to the joystick/mouse, move the X cursor to the center of the red and yellow rectangle, then press [m] twice within two seconds. The rectangle will disappear signifying the stick is now controlled by the joystick/mouse.

Pilot Commands

Pilot commands are trigger events associated with a particular action to be immediately taken by ACM. Events consist of

The command events are divided into these sections of event similarity (when necessary, the suffixes [KeyBoard] and [KeyPad] will be used to clarify ambiguous keys):

Pilot commands without any notations should be understood to be available regardless of the compile macros used by the ACM build process in the main piloting mode of the program (those keys and buttons handled by logic in events.c), but not in the browse piloting mode (those events handled by logic in browse.c nor in the terminal piloting mode handled by commands.c (and terminal commands are multi-character strings triggered by an [Enter] press event that are listed in their own section). Also, all button and key commands are triggered only by press events with the corresponding release event ignored except when ⇓ or ⇑ is appended to the event identifier. Also note multiple command entries for the same event and/or action are specified as needed with notes that define the environmental considerations germane to the command.

Pilot Events (Quick Reference)

Events: Non‑Alphanumeric Keys

AsciiCircum ^ [AP] Increase Rate of Climb ~100 FPM
BraceLeft { Black Box, Start Recording FIX +b
BraceRight } Black Box, Stop Recording FIX +b
BracketLeft [ Black Box, Replay Recording FIX +b
Bar | [AW] Hold Wings Level (AutoWings)
Comma , [AW] Hold Left Turn 1.5°/Second
Dollar $ Drone Control Mode, Toggle
Down Keystick, Backward One Notch
Screen, View Backward
‑s +b
+s
+b
End Keystick Sensitivity Mode, Cycle
ExclamationPoint ! Reverse Thrusters, Toggle
F1 Terminal Facility, Toggle
F3 RNAV Radial, Decrease
F4 RNAV Radial, Increase
F5 RNAV Distance, Decrease
F6 RNAV Distance, Increase
F7 Altimiter Correction, Decrease
F8 Altimiter Correction, Increase
F9 Artificial Horizon, Cage (Reset)
F11 Artificial Horizon, Decrease Pitch
F12 Artificial Horizon, Increase Pitch
Greater > [AW] Hold Right Turn 3.0°/Second
Home [AS] and Trim, Reset
Left Keystick, Leftward One Notch
Screen, View Leftward
‑s
+s
+b
Less < [AW] Hold Left Turn 3.0°/Second
Minus[KeyBoard] Screen, Zoom Out One Notch
Minus[KeyPad] Throttle or [AT] Airspeed, Decrease
Next Browse, View Next Level ‑m
NumLock0 0 Screen, View Downward +b
NumLock1 1 Hint, Display Next
NumLock2 2 Screen, View Backward ‑s +b
NumLock3 3 Hint, Display Current
NumLock4 4 Screen, View Leftward ‑s +b
NumLock5 5 Screen, View Upward ‑s +b
NumLock6 6 Screen, View Rightward ‑s +b
NumLock7 7 Hint, Display Previous
NumLock8 8 Screen, View Forward ‑s +b
NumLock9 9 Hint, Display First
PageDown Keystick Sensitivity, Decrease
PageUp Keystick Sensitivity, Increase
ParenLeft ( [AW] Maximum Bank, Decrease
ParenRight ) [AW] Maximum Bank, Increase
Percent % [AP] Decrease Rate of Climb ~100 FPM
Period . [AW] Hold Right Turn 1.5°/Second
Prior Browse, View Previous Level ‑m
Plus[KeyBoard] + Screen, Zoom In One Notch
Plus[KeyPad] + Throttle or [AT] Airspeed, Increase
R2[Sun] Keystick Sensitivity, Increase +s
R5[Sun] Keystick Sensitivity, Decrease +s
R7[Sun] [AS] and Trim, Reset +s +b
R11[Sun] Screen, View Upward +s +b
Right Keystick, Rightward One Notch
Screen, View Rightward
‑s
+s
+b
Semicolon ; Debug Mode, Toggle FIX +b
Slash / [AW] [AN] [AL], Disable
Space NAVAIDs, Cycle
Tab Stealth, Switch To Next Player SNP
Up Keystick, Forward One Notch
Screen, View Forward
‑s +b
+s
+b

Events: Alphanumeric Keys

Digit0 0 HSI/ADF Frequency, Increase
Digit1 1 Throttle, Idle and Disable All [AS] Except [AC]
Digit2 2 Throttle or [AT] Airspeed, Decrease
Digit3 3 Throttle or [AT] Airspeed, Increase
Digit4 4 Throttle, Full and Disable All [AS] Except [AC]
Digit5 5 [AP] Decrease Rate of Climb ~1 FPM
Digit6 6 [AP] Increase Rate of Climb ~1 FPM
Digit7 7 OBS/ADF Heading, Decrease
Digit8 8 OBS/ADF Heading, Increase
Digit9 9 HSI/ADF Frequency, Decrease
UpperA A [AP] Hold Rate of Climb (AutoPilot), Toggle
UpperB B HUD Brightness, Cycle
UpperC C HUD Color, Cycle
UpperD D Debug (GPS) Display, Toggle
UpperG G Ground Color, Cycle
UpperH H HUD/Instrument Panel Display, Toggle
UpperI I Flight Data File, Restore FIX
UpperK K Joystick, Calibrate SG +b
UpperL L [AL] ILS Approach and Landing (AutoLanding), Toggle
UpperM M Magnetic/True Mode, Toggle
UpperN N [AN] Navigate To VOR (AutoNavigate), Toggle
Screen, View Chase/Forward, Toggle
‑b
‑m
UpperP P Screen, Dump Using Xwd
Stealth, Call killplayer((FIXME))
‑b
‑m
UpperQ Q ACM, Exit (Self‑Destruct) SG
UpperR R Radar with DIS Beam Change, Cycle DIS
UpperT T [AT] Hold True Airspeed (AutoThrottle), Toggle
UpperU U Keystick Cursor Display, Toggle
UpperV V Weapons, Cycle
UpperX X [AC] Coordinate Roll/Yaw (AutoCoordinate), Toggle
UpperZ Z [AP] Hold Altitude (AutoPilot), Toggle
LowerA a After‑Burners, Toggle
LowerB b Brakes, Toggle
LowerC c Rudder, (Nose) Rightward
LowerD d X-windows Inputs, Toggle
LowerG g Landing Gear, Toggle
LowerH h Flaps, Extend One Notch
LowerI i Flight Data File, Save FIX
LowerJ j Elevator, Trim To Current Pitch
LowerL l Drone, Launch DIS
LowerM m Control Stick Mode, Toggle SG
LowerN n Screen, View Chase/Forward, Toggle +b
LowerO o Stealth, Absorb Damage SK ‑m
LowerP p Stealth, Call killplayer((FIXME)) ‑m
LowerQ q Radar Targets, Cycle
LowerR r Radar without DIS Beam Change, Cycle
LowerS s Speed Brake, Extend One Notch
LowerT t Timer, Cycle (Start|Stop|Reset)
LowerV⇓ v⇓ Weapons, Open Fire
LowerV⇑ v⇑ Weapons, Cease Fire
LowerW w Speed Brake, Retract One Notch
LowerX x Rudder, Center
LowerY y Flaps, Retract One Notch
LowerZ z Rudder, (Nose) Leftward

Events: Buttons

JoyFront⇓ Weapons, Open Fire +j
JoyFront⇑ Weapons, Cease Fire +j
JoyTop Weapons, Cycle +j
MouseLeft Stealth, Select Cockpit Item ‑m
MouseMiddle⇓ Weapons, Open Fire
MouseMiddle⇑ Weapons, Cease Fire
MouseRight Weapons, Cycle

Events: Terminal Facility Commands

term create New Player, Create
term help Terminal Facility Commands, Display
term set Internal ACM Variable, Modify
term v V (Placard) Data, Display

Pilot Actions

[AC] Coordinate Roll/Yaw (AutoCoordination), Toggle permits the pilot to change the status of the [AC] subsystem, which is initially disengaged. Refer to the “[AC] Coordinate Roll/Yaw (AutoCoordinate)” section for complete information about the subsystem. UpperX
[AL] ILS Approach and Landing (AutoLanding), Toggle permits the pilot to change the status of the [AL] subsystem, which is initially disengaged. Refer to the “[AL] Land Using ILS (AutoLand)” section for complete information about the subsystem. UpperL
[AN] Navigate To VOR (AutoNavigate), Toggle permits the pilot to change the status of the [AN] subsystem, which is initially disengaged. Refer to the “[AN] Navigate to VOR (AutoNavigate)” section for complete information about the subsystem. UpperN ‑b
[AP] Adjust Rate of Climb By -100 FPM (AutoPilot) permits the pilot to reduce the target rate of climb of the [AP] subsystems when it is engaged by approximately one hundred feet per minute. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. Percent
[AP] Adjust Rate of Climb By -1 FPM (AutoPilot) permits the pilot to reduce the target rate of climb of the [AP] subsystems when it is engaged by approximately one foot per minute. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. Digit5
[AP] Adjust Rate of Climb By +1 FPM (AutoPilot) permits the pilot to increase the target rate of climb of the [AP] subsystems when it is engaged by approximately one foot per minute. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. Digit6
[AP] Adjust Rate of Climb By +100 FPM (AutoPilot) permits the pilot to increase the target rate of climb of the [AP] subsystems when it is engaged by approximately one hundred feet per minute. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. AsciiCircum
[AP] Hold Altitude (AutoPilot), Toggle permits the pilot to change the status of the [AP] subsystem, which is initially disengaged. This action is very similar to the [AP] Hold Rate of Climb (AutoPilot), Toggle pilot action. When the [AP] is already engaged, both actions simply disable it. When the [AP] is disengaged, this action enables the subsystem’s Hold Altitude capacity. Enabling Hold Altitude causes [AP] to latch the altitude at the moment of enabling and use that as the target, regardless of the rate of climb at that moment. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. UpperZ
[AP] Hold Rate of Climb (AutoPilot), Toggle permits the pilot to change the status of the [AP] subsystem, which is initially disengaged. This action is very similar to the [AP] Hold Altitude (AutoPilot), Toggle pilot action. When the [AP] is already engaged, both actions simply disable it. When the [AP] is disengaged, this action enables the subsystem’s Hold Rate of Climb capacity. Enabling Hold Rate of Climb causes [AP] to latch either the rate of climb or the altitude at the moment of enabling and use that as the target objective, depending upon the rate of climb at that moment—if it is between +100 FPM and ‑100 FPM, the altitude will be targeted; otherwise, the rate of climb will be targeted. Refer to the “[AP] Hold Altitude/Rate of Climb (AutoPilot)” section for complete information about the subsystem. UpperA
[AS] and Trim, Reset permits the pilot to disable all [AS] subsystems (with the exception of the [AC] roll/yaw coordinator) and reset the elevator trim setting to neutral. This action is intended as a “panic button” when complete manual control of the aircraft is immediately required, possibly as a result of battle damage. Home
R7[Sun]

+s
+b
[AT] Hold True Airspeed (AutoThrottle), Toggle permits the pilot to change the status of the [AT] subsystem, which is initially disengaged. If the [AT] subsystem is already enabled, this action simply disables it; otherwise, the subsystem is enabled and the true airspeed of the aircraft at the moment of enabling becomes the target velocity of the subsystem. Refer to the “[AT] Hold True Airspeed (AutoThrottle)” section for complete information about the subsystem. UpperT
[AW] [AN] [AL], Disable permits the pilot to disable the [AW] subsystem, which in turns forces the [AN] and [AL] subsystems to also become disabled. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Slash
[AW] Hold Wings Level (AutoWings) permits the pilot to enable the [AW] subsystem (or change its current objective if already enabled) to not turn. More precisely, when the Hold Wings Level capability is enabled, getting and keeping the wings level becomes the objective of the subsystem. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Bar
[AW] Hold Left Turn 1.5°/Second permits the pilot to enable the [AW] subsystem (or change its current objective if already enabled) to enter and hold a left turn at a heading change rate of 1.5° per second. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Comma
[AW] Hold Right Turn 1.5°/Second permits the pilot to enable the [AW] subsystem (or change its current objective if already enabled) to enter and hold a right turn at a heading change rate of 1.5° per second. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Period
[AW] Hold Left Turn 3.0°/Second permits the pilot to enable the [AW] subsystem (or change its current objective if already enabled) to enter and hold a left turn at a heading change rate of 3.0° per second. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Less
[AW] Hold Right Turn 3.0°/Second permits the pilot to enable the [AW] subsystem (or change its current objective if already enabled) to enter and hold a right turn at a heading change rate of 3.0° per second. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. Greater
[AW] Maximum Bank, Decrease Reduces the maximum bank angle enforced by the [AW] system by 5 degrees unless it at already set to the minimum angle supported. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. ParenLeft
[AW] Maximum Bank, Increase Increases the maximum bank angle enforced by the [AW] system by 5 degrees unless it at already set to the maximum angle supported. Refer to the ”[AW] Hold Turn/Wings Level (AutoWings)” section for complete information about the subsystem. ParenRight
ACM, Exit (Self-Destruct) permits the pilot to terminate the ACM session. UpperQ SG
After‑Burners, Toggle permits the pilot to change the status of the aircraft’s engine after‑burners, if it is so equipped. This subsystem feeds fuel into the engine exhaust to significantly increase thrust but at a dramatically increased rate of fuel flow. After‑burners can be active at any throttle setting. When after‑burners are enabled, the digital percentage displayed within the RPM Gauge will have an AB suffix,as seen in the screenshot with the classic panel showing 100AB vis-à-vis the screenshot on the front page showing just 41). LowerA
Altimeter Correction, Decrease permits the pilot to adjust the aircraft’s altimeter pressure lower to synchronize it with the surface atmospheric pressure. While in a real aircraft this is a real need, in ACM to date, the surface pressure never varies, so this is not a useful pilot action at this time. The pressure setting is displayed digitally within the classic panel’s altimeter, as seen in screenshot with the classic panel showing 29.92 and 1013 for the two unit measures supported by the instrument. F7
Altimeter Correction, Increase permits the pilot to adjust the aircraft’s altimeter pressure higher to synchronize it with the surface atmospheric pressure. While in a real aircraft this is a real need, in ACM to date, the surface pressure never varies, so this is not a useful pilot action at this time. The pressure setting is displayed digitally within the classic panel’s altimeter, as seen in screenshot with the classic panel showing 29.92 and 1013 for the two unit measures supported by the instrument. F8
Artificial Horizon, Cage (Reset) permits the pilot to reset the aircraft’s artificial horizon to zero pitch and roll. Refer to the “Artificial Horizon (Attitude & Bank)” section for complete information about this classic panel instrument. F9
Artificial Horizon, Decrease Pitch permits the pilot to raise apparent horizon within the aircraft’s artificial horizon to synchronize it with the true attitude of the aircraft. Refer to the “Artificial Horizon (Attitude & Bank)” section for complete information about this classic panel instrument. F11
Artificial Horizon, Increase Pitch permits the pilot to lower apparent horizon within the aircraft’s artificial horizon to synchronize it with the true attitude of the aircraft. Refer to the “Artificial Horizon (Attitude & Bank)” section for complete information about this classic panel instrument. F12
Black Box, Replay Recording BracketLeft FIX +b
Black Box, Start Recording BraceLeft FIX +b
Black Box, Stop Recording BraceRight FIX +b
Brakes, Toggle permits the pilot to change the status of the aircraft’s brakes. Initially they are activated if the aircraft is created on the ground; otherwise, they are inactive. All aircraft only support brakes on the main wheels without individual control so both sides always brake evenly. Also, the brakes are either on or off—there are no degrees of braking, making control of non‑tricycle undercarriages extremely problematic. When the brakes are active, the BRAKES panel light is lluminated, as seen in the screenshot with the classic panel after an ILS landing. LowerB
Browse, View Next Level Next
‑m
Browse, View Previous Level Prior
‑m
Control Stick Mode, Toggle permits the pilot to change the mode of mapping computer inputs into the aircraft’s control stick, initially set to use joystick or mouse movements. This capability is designed for airborne use but carelessness regarding synchronization of the mouse position with the keystick (keyboard stick) position can cause catastrophic control stick changes when switching from keyboard mode to mouse mode. The proper approach is to move the X mouse cursor (likely a crosshair graphic) to the center of the red and yellow square keystick cursor as shown in the screenshot on the front page prior to switching to mouse control. Refer to the “Keystick Facility” section for more information. LowerM SG
Debug (GPS) Display, Toggle permits the pilot to toggle the display of quelque chose in the upper left of the screen; e.g.,

F-16
General Dynamics F-16C Fighting Falcon
G: +0.03 -0.00 -1.00
Stick MF: S   1   X  -23   Y -103
Ail/Elev/Rdr: -1.008 +0.405 +0.000
Euler: +0.0 +0.7 +73.5
Euler rates: -0.00 -0.00 -0.00
Omega: -0.00 -0.00 -0.00
 20 59 42.4 N ( 20.995073)
  7  1  5.9 W ( –7.018287)
  429 m  VAR 2.7W

The Stick value defines the mode of the control stick:

  • MF Mouse in Fast Mode
  • MP Mouse in Precise Mode
  • MN Mouse in Normal Mode
  • KL Keystick in Linear (increment/decrement) Mode
  • KD Keystick in Double/Halve Mode

The S value defines the current keystick sensitivity; i.e., the value to be added to or subtracted from the axis affected by a keystick movement action. The X and Y values are the current mouse or keystick Cartesian coordinates relative to the center of the screen. The last three lines are latitude, longitude, and altitude with magnetic varience.

For other details of this display, refer to the src/hud.c source code file.

UpperD DIS
Debug Mode, Toggle Semicolon FIX +b
Drone Control Mode, Toggle Dollar DIS
Drone, Launch LowerL
Elevator, Trim To Current Pitch LowerJ
Flaps, Extend One Notch LowerH
Flaps, Retract One Notch LowerY
Flight Data File, Restore UpperI FIX
Flight Data File, Save LowerI FIX
Hint, Display Current NumLock3
Hint, Display First NumLock9
Hint, Display Next NumLock1
Hint, Display Previous NumLock7
HSI/ADF Frequency, Decrease Digit9
HSI/ADF Frequency, Increase Digit0
HUD Brightness, Cycle UpperB
HUD Color, Cycle UpperC
HUD/Instrument Panel Display, Toggle UpperH
Internal ACM Variable, Modify term set
Joystick, Calibrate UpperK SG +b
Keystick, Backward One Notch Down ‑s +b
Keystick, Forward One Notch Up ‑s +b
Keystick, Leftward One Notch Left ‑s
Keystick, Rightward One Notch Right ‑s
Keystick Cursor Display, Toggle UpperU
Keystick Sensitivity, Decrease PageDown
R5[Sun]

+s
Keystick Sensitivity, Increase PageUp
R2[Sun]

+s
Keystick Sensitivity Mode, Cycle End
Landing Gear, Toggle LowerG
Magnetic/True Mode, Toggle UpperM
NAVAIDs, Cycle Space
New Player, Create term create
OBS/ADF Heading, Decrease Digit7
OBS/ADF Heading, Increase Digit8
RNAV Distance, Decrease F5
RNAV Distance, Increase F6
RNAV Radial, Decrease F3
RNAV Radial, Increase F4
Radar Targets, Cycle LowerQ
Radar With DIS Beam Change, Cycle UpperR DIS
Radar Without DIS Beam Change, Cycle LowerR
Reverse Thrusters, Toggle ExclamationPoint
Rudder, Center LowerX
Rudder, (Nose) Leftward LowerZ
Rudder, (Nose) Rightward LowerC
Screen, Dump Using xwd UpperP ‑b
Screen, View Backward Down
NumLock2
+s +b
‑s
+b
Screen, View Chase/Forward, Toggle UpperN
LowerN
+b
‑m
Screen, View Downward NumLock0 +b
Screen, View Forward Up
NumLock8
+s +b
‑s
+b
Screen, View Leftward Left
NumLock4
+s +b
‑s
+b
Screen, View Rightward Right
NumLock6
+s +b
‑s
+b
Screen, View Upward R11[Sun]
NumLock5
+s +b
‑s
+b
Screen, Zoom In One Notch Plus[KeyBoard]
Screen, Zoom Out One Notch Minus[KeyBoard]
Speed Brake, Extend One Notch LowerS
Speed Brake, Retract One Notch LowerW
Stealth, Absorb Damage LowerO SK ‑m
Stealth, Call killPlayer((FIXME)) UpperP
LowerP
‑m
‑m
Stealth, Select Cockpit Item MouseLeft ‑m
Stealth, Switch To Next Player Tab SNP
Terminal Facility, Toggle F1
Terminal Facility Commands, Display term help
Throttle, Full and Disable All [AS] Except [AC] Digit4
Throttle, Idle and Disable All [AS] Except [AC] Digit1
Throttle or [AT] Airspeed, Decrease Minus[KeyPad]
Digit2
Throttle or [AT] Airspeed, Increase Plus[KeyPad]
Digit3
Timer, Cycle (Start|Stop|Reset) LowerT
V (Placard) Data, Display term v
Weapons, Cycle JoyTop
MouseRight
UpperV
+j
Weapons, Cease Fire JoyFront⇑
MouseMiddle⇑
LowerV⇑
+j
Weapons, Open Fire JoyFront⇓
MouseMiddle⇓
LowerV⇓
+j
X‑windows Inputs, Toggle LowerD

Original Table of Pilot Actions

General

g Landing gear up/down

b Wheel brakes on/off

h Flaps down 10 degrees

y Flaps up 10 degrees

s Deploy speed brakes 1 step (one or more steps, depending on the aircraft model)

w Retract speed brakes 1 step (one or more steps, depending on the aircraft model)

t Start/stop/reset the timer display

z Rudder step left

x Rudder centered

c Rudder step right

l Create a drone opponent aircraft (DIS protocol MUST be enabled).

d Detach commands from the ACM window, so that you can leave the ACM window in background.

+ Zoom in.

Zoom out.

Shift-H Toggle between HUD and “classic instruments”.

Shift-M Switch between MH (default) and TH indication (see HUD and HSI sections).

Shift-P Print screen shot to the file /tmp/acm‑dump‑*

Shift-K Calibrate joystick

Shift-$ Play like a drone (toggle).

Shift-Q Shift-Q Quit the simulation. NOTE: press two times!

Autopilot Systems [AS]

Shift-A Engage/disengage the auto‑pilot in hold altitude mode or in hold climb rate mode (see The Auto‑pilot for details).

Shift-Z Engage/disengage the auto‑pilot in hold altitude mode (see The Auto‑pilot for details).

Shift-T Engage/disengage the auto‑throttle (see The Auto‑throttle for details).

Shift-X Engage/disengage the rudder/aileron auto‑coordinator (see The Auto‑coordinator for details).

Shift-N Engage/disengage the auto‑navigator (see The Auto‑navigator for details).

Shift-L Engage/disengage the auto‑landing (see The Auto‑landing for details).

Shift-( Decrease maximum bank angle.

Shift-) Increase maximum bank angle.

Home Release all the auto‑pilot sub-systems, with the only exception of the auto‑coordinator.

Views

View buttons are located on the PC’s numeric keypad.

KP8 Forward view

KP2 Rear view

KP4 Look Left

KP6 Look Right

KP5 Look Up

KP0 Look Down

n Chase view (this view button is not located on the numeric keypad)

Mouse and Mouse Buttons

Move left/right move ailerons to control the roll left/right

Move forw/backward move elevator to control the pitch

Left button select DIS entity in browse mode (not working yet)

Central button fire with the selected weapon

Right Button select a weapon

Joystick Buttons

Button2 (top) Select weapon (Sidewinder IR missile or 20mm cannon)

Button1 (front) Fire selected weapon

Classic instruments

Shift-H Toggle between HUD and “classic instruments”.

F7,F8 Adjust altimeter isobaric reference level from 28 to 31 inHg.

F9 “Caging” button: forces alignment of attitude gyro with its case.

F11,F12 Adjust pitch of the symbolic airplane in the attitude indicator.

Radar

r Select radar/HSI/ADF/off mode

Shift-R Toggle Radar/HSI Mode (Standby, Normal, ACM 20x30, STT, HSI‑mode) (also Button3 on Microsoft Sidewinder Joysticks)

q Break Lock -- track a different target (also Button4)

Engine control

The meaning of the keys change when the the auto‑throttle is enabled. See The Auto‑throttle for details.

1 Engine Idle

2 Decrease Power

3 Increase Power

4 Full Power

a Toggle Afterburner (if available)

SHIFT-! Deploy/retract thrust reverse (if available)

IMPORTANT. The thrust reverse device can be deployed only with engine commanded idle (throttle lever below 25%).

Auto‑turn

The auto‑turn automatism helps the pilot to keep the desired standard rate of turn of 1.5 or 3.0°/s. Enabling the auto‑turn, also the AC is enabled. This is an experimental feature mainly intended for flight test purposes. It might be removed or otherwise changed in future releases of the program.

< (less than) Set left turn rate 3.0°/s

, (comma) Set left turn rate 1.5°/s

> (greater than) Set right turn rate 3.0°/s

. (period) Set right turn rate 1.5°/s

| (vertical bar) Set turn rate 0°/s

/ (slash) Disable auto‑turn (see also key Home)

Trim

Trim buttons may be pressed until the desired trim is attained

j Adjust elevator trim to the current pitch command

Home Reset elevator and ailerons trim, disable auto‑pilot, auto‑throttle, auto‑navigator, auto‑landing and auto‑turn

HSI receiver control

Press r until the HSI gets displayed.

SPACE Switch between NAV1/NAV2/RNAV1/.../RNAV5 receivers.

9,0 Set station frequency

7,8 Set OBS

F3,F4 Set RNAV radial of the WP (only in RNAV mode)

F5,F6 Set RNAV distance of the WP (only in RNAV mode)

ADF receiver control

Press r until the ADF gets displayed.

9,0 Set station frequency

7,8 Move rotatable heading needle

ACM Aircraft Systems

Magnetic Compass

The upper-right corner of the window displays the magnetic compass, simulated by the program mostly for didactical purposes. The compass card contains the magnets and it is mounted on a small pivot point located above its center of mass. This allows the compass card to rotate freely and to float as a pendulum by a maximum of +/−18° in pitch and roll following the direction of the apparent vertical line. Above this angular limit the compass touches the side of the casing and its indication becomes unreliable.


Image of magnetic compass

The magnetic compass


The magnetic compass does not simply indicate the magnetic heading (MH) of the aircraft, but instead it moves and rotates under the dynamic and magnetic effects. By definition, the magnetic north is the direction of the magnetic field vector projected over the local horizontal plane. That’s why the magnetic compass card has to be as close as possible to the horizontal plane in order to align its magnets with the horizontal component of the magnetic field.

When the aircraft is at rest on the runway, or it is flying in stright, level flight at constant speed, the compass card is perfectly parallel to the horizon, an it rotates until it is perfectly aligned with the horizontal component of the Earth magnetic field. On the contrary, when the aircraft is turning or otherwise accelerating, the compass card deviates from the expected MH even more than 30 degrees under the effect of the vertical component of the magnetic field.

The compass cards displayed by the others instruments (HSI, ADF and HUD) are feeded by the flux gate sensor and each stabilized by its own gyroscope. The MH indicated by these instruments does not suffer from the the deviations of the magnetic compass. In cases of instrument failure, turns based on the magnetic compass have to be timed, because the magnetic compass cannot provide a valid reference for the final heading. For example, starting from MH=east and having to rotate at MH=north, the pilot shall perform a standard left turn at 3°/s for exactly 30 seconds.

For details about the implemented model of the Earth magnetic field and for references, see the source src/magnetic_compass.c.

Classic Instrument Panel

Press Shift-H to alternate between the HUD and the classic instruments panel. The classic instruments panel mimics the instrumental equipment of a typical light aircraft, as the Cessna 172‑RG. The program does not simply reproduce the same information already shown by the HUD, but it tries to emulate also errors and limitations introduced by these instruments and that makes the job of the pilot even harder. In the following we will describe each instrument and its properties from left to right. The interested reader should refer to the aeronautical literature for more information about their proper usage.


Image of screen using classic instrument panel

Screenshot with the classic instrument panel


In the classic instrument mode the HSI and ADF always indicate the MH, as the compass card of these instruments is driven by the flux gate sensor. In the HUD mode, on the contrary, the HSI and ADF are driven by the inertial platform and are able to indicate both TH and MH.

Turn and Slip Indicator

The pointer moves indicating the rate of turn around the vertical axis of the aircraft. Normally the aircraft z axis is very close to the geodetic vertical, so that the indicated value is nearly equal to the actual yaw rate. At high roll angles or high bank angles, this is not strictly true and small differences between the actual yaw rate and the indicated value may arise.

The central mark of the turn indicator indicates zero turn rate, while the other marks indicates 1.5°/second and 3.0°/second turn to the left or to the right.

Below the turn rate indicator there is a curved glass containing a little ball. This ball moves from the central position under the action of a lateral acceleration, typically as a consequence of an uncoordinated turn.

Airspeed Indicator

It indicates the true airspeed (TAS) on a non-linear scale. The scale ranges from 40 kt up to 550 kt, with division of 10 kt up to 150 kt, and division of 50 kt afterward.

Artificial Horizon (Attitude & Bank)

This instrument nominally displays the aircraft’s pitch and the roll situation. Inside this instrument there is a gyro whose axis is parallel to the local apparent vertical direction.

An erection system (slowly) forces the axis to move following this vertical, but this alignment process can take some time, typically from 2 to 5 minutes, depending on the amplitude of the misalignment. Accelerations produced by speed changes (takeoff) and prolonged turns can misalign the gyro. To prevent that misalignment, the erection system gets disabled if the measured acceleration differs from the expected “g” value +/‑2%. That it means, for example, that turning with angles of bank greater than 12° will not disturb the alignment.

The gyro can follow the aircraft movements up to +/‑70° angles of bank and pitch. Above this limit the gyro will hit the internal lock, tumbling abruptly and loosing its alignment. For this reason the pilots has also a “cage” knob (F9) that forces the alignment of the gyro with its case, speeding-up the following fine alignment performed by the erection system. The “cage” knob is also useful to fast align the gyro at the start of the program.

The orientation of the gyro is represented to the pilot as a ball. Over this ball are drawn the horizon line and several pitch marks separated by 5° up to +/‑30°. The stylized figure of a little aircraft’s wings can be moved up and down by the pilot (F11, F12) so that it becomes aligned with the line of the horizon. This adjustment should be performed in level flight at constant speed so to indicate zero pitch. Once so adjusted, the indicated pitch will match the angle of climb as indicated by the flight path marker of the HUD, provided that these maneuvers are performed at the same airspeed at which that adjustments was made.

A triangle indicates the angle of bank, at steps of 10, 20, 30, 60 and 90 degrees. This triangle moves in the opposite direction of the horizon, so to indicate the actual direction of the turn.

Altitude Indicator

This instrument indicates the altitude. The digital display shows the flight level (bigger digits) followed by the two less significant digits of the current altitude. The pointer indicated tens feet. Since in ACM‑5.0‑ico the atmospheric conditions are always stable and equal to the standard atmosphere, the indicated altitude is also the actual altitude over the sea level.

By default the altimeter indicates the standard pressure altitude (29.92 inHg) but you can change the isobaric level of reference pressing F7 and F8.

For negative altitudes, the instrument passes from 0 to 99990 ft, then 99980 ft and so on.

Vertical Speed Indicator (VSI)

It indicates the rate of change of the altitude from −4000 ft/min up to +4000 ft/min. This instrument has a lag of about 3 seconds, so it takes some time before it stabilizes to the actual vertical speed. Changes in altitude should then be made with the aid of the attitude indicator: first, move the aircraft to the expected pitch, then look at the VSI for fine adjustement of the desired vertical speed rate.

Flying with the classic instruments panel may be challanging at first because there is some delay between pilot’s input and the actual feedback from the instruments. Things get simpler if you accurately plan every maneuver before starting any action. The two rules below should help:

Bank rule To attain the standard rate of turn of 3°/s on a coordinated turn, first calculate the required angle of bank as given by this approximated formula:

bank = 0.15 * airspeed

For example, at 100 kt the angle of bank is 15°. You can calculate easily this value taking the airspeed, dropping the last digit and then adding half of its value. Then roll-in at this angle of bank looking at the attitude indicator: once the aircraft starts to turn, adjust the rate looking at the turn indicator.

Pitch rule Keepig a given airspeed, changes in vertical speed are related to changes in pitch angle by this approximated formula:

vertical_speed_change = 2 * pitch_change * airspeed

For example, flying at 100 kt, every degree of pitch change will result in a change of about 200 fpm of vertical speed. Use the pitch scale of the attitude indicator to move the aircraft’s nose to the expected pitch angle. Then, some seconds later, the VSI will indicate the actual vertical speed so achieved allowing to fine-tuning the pitch.

Head‑Up Display

The Head‑Up Display (HUD) is a collection of indicators that permits pilots to focus their attention on what’s going on outside of the cockpit. These indicators are projected onto a flat pane of glass located near the windscreen. Much of the information is displayed graphically to give the pilot a quicker understanding of the immediate situation.


Notated image of head-up display

The Head‑Up Display


HUD Ladders

Four tape-style “ladders” display basic flight information. On the left, is the aircraft true airspeed (TAS). Each minor tick on the airspeed ladder represents 10 nautical miles per hour (also known as knots and abbreviated “kt”).

On the right is the altitude over the sea level (MSL). Each tick represents 100 feet. A rate‑of‑climb readout is located just below this ladder; rate‑of‑climb is expressed in feet per minute.

In the lower center is a horizontal heading ladder. Each tick represents five degrees.

In the center is an attitude ladder. Each line corresponds to ten degrees of aircraft pitch. The ladder rolls as the aircraft does, providing an artificial horizon.

HUD Compass

The compass displays the the true heading (TH, default) or the magnetic heading (MH). Press Shift-M to switch between the two modes. The HSI displays the mode currently selected. Implementation note: the local magnetic variation is that of the nearest NAVAID station or ILS station.

HUD Angle of Attack

The ACM HUD has two indicators to give the pilot cues as to the planes current angle of attack and sideslip. First, above the altitude ladder, is a readout of the plane’s current angle of attack in degrees. The ACM F‑16 will stall at a positive angle of 30 degrees and a negative angle of ‑30 degrees.

Additionally, a plane-shaped “flight path marker” indicates the aircraft’s current direction of travel. Level flight occurs when the flight path marker is aligned with the zero‑ degree artificial horizon line.

HUD G Meter

A readout of the current vertical G‑force on the pilot is located above the airspeed ladder.

HUD Weapon State

Below the throttle indicator are discretes that show the state of the currently selected weapon system.

HUD Turn and Slip Indicator


Image of turn and slip indicator

The turn and slip indicator


The turn and slip indicator displays the yaw rate and the lateral acceleration. The triangle indicates the standard rates of turn of 1.5°/s and 3°/s. The vertical bar indicates the lateral acceleration, every tick being 0.25 g. The left part of the figure above illustrates a left turn at 3°/s with about 0.4 g of lateral acceleration (uncoordinated turn). The right part of the figure illustrates a coordinated turn without lateral acceleration. Coordinated turns are obtained combining ailerons and rudder.

HUD Mach Meter

The Mach number is the ratio between the airspeed and the spedd of the sound at the current altitude. The table below shows the speed of the sound at some typical altitudes:


Altitude (ft) Speed of the sound (kt)
0659
10000640
20000615
30000590

The Mach number appears only when the speed is at least 0.20 Mach at the current altitude.

HUD Radar Altimeter

At low altitude, below 2500 ft over the terrain, the radar altimeter scale is displayed. The radar altimeter shows the distance in hundreds of feet between the terrain and the wheels of the main gear.

Horizontal Situation Indicator (HSI)

The Horizontal Situation Indicator, or HSI, is a nifty device to aid in instrument flying. It receives and displays VOR/DME stations and ILS stations. The compass card of the instrument gets automaticcaly oriented toward the magnetic north. A sensor of the earth magnetic field (also known as flux gate) detects the orientation of the magnetic north. A gyroscope provides short term stability while the aircraft is maneuvering and, when in level flight, the flux gate provides the correction to the gyroscope drift. The result is an instrument that provides highly accurate aircraft heading in both turning and straight flight, without a requirement for the pilot to manually adjust for drift as in a standard directional gyro.

NOTE. Instruments mounted on the real aircrafts have both the slave mode (as described here) and the free mode. When the pilot selects this latter mode, the flux gate gets disabled (for example because a failure) and the HSI operates simply as a directional gyro that needs to be manually aligned with the magnetic compass.

In ACM‑7.0‑dlc the HSI system occupies two slots of the instrument panel: the left slot is the control panel and the right slot is the HSI display. The HSI panel receives radio signals from VOR, DME, LOCATOR and GS stations, it elaborates all these informations and then it feed the HSI display.

To save space on the sceen, these two panels share the same space with the ADF receiver and the radar system. Use the r key to change radar/ADF modes until the HSI is displayed.

The HSI control panel. It displays several informations. Mode can be NAV1, NAV2, RNAV1, ..., RNAV5. These modes will be described below in separated paragraph. There are two independent NAV1 and NAV2 receivers and five RNAV calculators. Use the SPACE to switch between NAV and RNAV modes.

FRQ is the frequency of the station, as selected by pilot (9, 0).

Once the station has been selected and properly tuned, the receiver starts listening for the signal emitted from the station that can provide also its name displayed in STA (station name).

If the station provides also a distance measurement equipment (DME) this distance gets displayed.

The RAD and DST fields are meaningful only in RNAV mode and are described in the respective paragraph.

The HSI display. In the TH mode (the default, as shown in the figures below) the indicated north is the geographic north. In the MH mode (Shift-M) the indicated north is the magnetic north. The TH mode is mainly useful for estimated navigation based on geographic charts, since these maps are always oriented toward the geographic north pole. The MH mode is the preferred mode for aeronautical navigation, since all the angular indications (VOR, ILS and runways headings) are always referred to the local magnetic north.

The curse deviation indicator (the purple segment at the center of the display) gets displayed only if the corresponding radio signal is correctly received. The slope deviation indicator (the purple arrow to the right of the display) gets dislayed only if the corresponding signal is correctly received.

Use the 7 and 8 keys to orient the Omni Bearing Selector (OBS). The OBS displays the digital value of the selected direction.

HSI for VOR Stations

In NAV mode the HSI displays the VOR/DME bearing, angular deviation (CDI) from the selected radial (OBS) and distance DME.


Image of horizontal situation indicator

The HSI tuned on a VOR/DME station in NAV mode


Having two NAV receivers is very useful, both for navigation and to approach the runway. For example, we can tune NAV1 on the VOR station we are leaving and NAV2 on the station we are going to. Or, we can tune NAV1 on the terminal-VOR of the airport, and NAV2 on the ILS station.

The frequency of a VOR station ranges from 108.x0 MHz up to 111.x5 MHz with x being an even digit 0, 2, 4, 6, 8 for terminal VOR, and from 112.00 MHz to 117.95 MHz for en‑route VOR.

The signal range of a terminal VOR is about 40 NM, and the range of an en‑route VOR is about 200 NM due to the limited power emitted by these stations. Moreover, electromagnetic signals at hight frequency (100 MHz and more, as those emitted from VOR stations are) propagates in a direct line of sight. Because of the curvature of the Earth, the range at which the signal can be received may be even more limited depending on the current altitude of the aircraft:

range = K * (sqrt(station_altitude) + sqrt(aircraft_altitude))

where the altitudes are expressed in feet and the resulting distance in NM. The value of the constant K in the formula above is K=1.064 as you can easily prove with simple geometrical considerations assuming the Earth to be a sphere of radius R=3438 NM. Then, for example, if the altitude of the station is 500 ft and the altitude of the aircraft is 4000 ft, the signal cannot be received beyond the distance of 91 NM.


Diagram of VOR line of sight limitation
The Earth is round and radio signals at high frequency (100+ MHz) propagate in stright line

Every dot of the CDI scale indicates a deviation of 1.7° from the selected radial. For stations providing a DME, the distance from the selected radial is given by this simple formula:

distance_from_radial = distance_from_DME / 100 * 3 * CDI

For example, if the distance from the DME station is 20.0 NM and the CDI indicates 2 dots, then the distance from the selected radial is 20/100*3*2=1.2 NM.

HSI for ILS Stations

In NAV mode, also ILS stations can be tuned.


Image of HSI showing ILS

The HSI tuned on a ILS station


The frequency of ILS stations ranges from 108.x0 MHz up to 111.x5 MHz, with x being an odd digit 1, 3, 5, 7, 9.

An ILS station can be received up to the distance of about 18 NM and in a range of +/‑50° from its bearing angle.

Every dot of the CDI scale indicates a deviation of 0.4° from the LOCATOR plane (not the deviation from the OBS, but the pilot can still select an OBS for its own reference). Every tick of the glide slope scale indicates a deviation of 1° from the glide path angle of the ILS station (typically 3°).

HSI for RNAV Calculator

The RNAV calculator can store up to 5 waypoints (WP). The pilot enters the WP in the RNAV calculator in polar coordinates (radial RAD and distance DST) referred to some VOR/DME station, along the frequency of the VOR/DME station itself.


Image of HSI showing RNAV

The HSI tuned on a VOR/DME station in RNAV mode—
the waypoint is set at radial 75, distance 24.5 NM from the VOR/DME


NOTE: bare VOR stations and ILS stations cannot be tuned in RNAV mode.

Once the control panel has been set, the RNAV calculator feeds the HSI display with angular deviation and distance from the selected waypoint (WP). Then the pilot can fly toward the WP just like if it were a “phantom” VOR/DME station. The DME field of the control panel displays the distance from the WP (not the distance from the VOR/DME station used as reference).


Diagram of RNAV usage

A “phantom” VOR/DME guides the aircraft along the route from A to WP and then from WP to B


Automatic Direction Finder (ADF)

Press the r several times until the ADF receiver gets displayed. The compass card of this instrument is automatically aligned with the magnetic north tanks to the signal provided by the flux gate, and stabilized with a gyroscope.

The ADF occupies two slots of the instrument panel: the left slot is the ADF panel were the frequency and the ID of the NDB station gets displayed; the right slot is the ADF display that shows the magnetic bearing of the NDB station.


Image of HSI showing ADF

The ADF control panel (left) and bearing indicator (right)


Tune the desired station pressing 9 and 0.

In the real world the range of the NDB signal depends on many factors. In ACM‑7.0‑dlc this range is set to 100 NM for navigation NDB stations, and 20 NM for instrumental approach stations (OMARKER, MMARKER, IMARKER).

[AS] Autopilot Systems

The autopilot systems (referenced as a group via [AS]) consists of several functional blocks, each one taking control of some flight parameter. The relations between blocks are indicated in the diagram below. Every block can be engaged or disengaged by the pilot independently from the others blocks, with the only exception of AW and AP that might be required by AN and AL.

In a emergency, the [AS] can be disabled (along with the elevator’s trim setting) by pressing the Home key.


Block diagram of Auto Pilot Systems

Block diagram of the Autopilot Systems [AS]


The acm-5.0-ico release continued using the original APS acronym to connote the group of systems acm-7.0-dlc identifies as [AS]. The following paragraph goes back to Riley Rainey.

A note about the terminology: “APS” is the whole system of auto‑piloting, while the “AP” is the sub‑block that controls only the altitude or the climb rate. Perhaps the AP should had been split into two independent blocks performing “hold altitude” and “hold climb rate”, so resolving the ambiguity. This can be a change left to the future releases of the program.

This paragraph is retained because APS is still widely used in the source code.

[AC] Coordinate Roll/Yaw (AutoCoordinate)

Controlling the rudder through the keyboard and without a physical feedback of the lateral acceleration is really difficult, so often compromising the precision of the maneuver on coordinated standard turns.

The auto‑coordinator (AC) feature allows the rudder to be controlled by the program in order to cancel the lateral acceleration, indicated by the slip indicator. The AC can be enabled/disabled pressing Shift-X. Once enabled, a little AC gets displayed to the side of the slip indicator (or the Coord light in classic instruments mode) and all the turns are automatically coordinated.

A good way to do a standard turn in AC mode is bringing the aircraft to the expected bank angle, then checking the turn rate indicator for the expected turn rate. The figure below plots the expected bank angle vs. the current true air speed for 1.5°/s and 3.0°/s standard rates of turn.


Bank / TAS chart

Bank angle versus TAS


The arrows keys are very useful to do little heading corrections in AC mode, for example to align the aircraft to the runway. Larger turns can be done simply moving the mouse.

The keys z c that control the rudder are still enabled, but not really effective. You may use them for even finer heading corrections.

[AW] Hold Turn/Wings Level (AutoWings)

Annotated HUD turn indicator The auto‑turn block (AW) control the rate of the turn and it is mostly used by the AN and AL. The pilot can engage manually the AW to perform standard turns at 1.5 and 3°/s or also 0°/s to keep the current heading. The involved keys are:

< turn left at 3°/s

, (comma) turn left at 1.5°/s

| (vertical bar) stop turning and hold heading

. (dot) turn right at 1.5°/s

> turn right at 3°/s

/ disengage the AW

The MAX BANK knob set the maximum bank limiter, chosen between 15, 20, 25, 30 and 35 degrees. The AW will never exceed this value. The default value for all aircraft is 25.

When the AW is enabled, a little round circle gets displays into the turn‑and‑slip indicator giving the feedback of the turn speed the AW is aiming to (see the figure to the right).

[AP] Hold Altitude/Rate of Climb (AutoPilot)

The auto‑pilot (AP) helps the pilot keeping a given rate of climb or a given altitude. When engaged, the AP adds a correction term to the current elevator control that can grow up to the 50% of the full elevator control range:

elevator_setting = pilot_setting + AP_correction_term

Even when the AP is engaged, the pilot preserve the ability to control the aircraft, while the AP will try to do its best to keep constant the controlled parameter. When engaged, the “AP” icon is present in the HUD.

Engaging the AP to hold the altitude. Once the desired altitude has been attained, engage the AP via the Shift-Z key. The AP will capture the current altitude and will use this value as a reference to calculate the elevator correction. The rate of climb must be near to zero +/− 100 ft/min.

Engaging the AP to hold the rate of climb. Once the desired rate of climb has been attained, engage the AP via the Shift-A key. The AP will grab the current rate of climb and will use this value as a reference to calculate the elevator correction. The rate of climb must be greater than +100 ft/min or less that −100 ft/min.

Changing the target rate of climb. Once the AP's rate of climb function has been activated, four keys can be used to adjust the target rate of climb. Press 5 or 6 to decrease or increase respectively the rate of climb by approximately one foot per minute (these are for performing very fine tuning. The shifted values of these keys, % and ^, multiply the unshifted change value by 100.

Disengaging the AP. Press Shift-A or Shift-Z. The elevator correction term will be released smoothly within 3 seconds, restoring the full control of the elevator.

AP alarm. When the AP correction grow beyond the 25% of the full elevator control range, the AUTOPILOT displayed in the HUD (or the Pilot light in classic instruments mode) will blink. In this case the intervention of the pilot is required. Adjust the pitch or the engine power until the alarm disappear.

AP limitations:

‑ max vertical acceleration: +/‑ 0.1 g
‑ hold altitude mode, max vertical speed: +100 fpm
‑ hold altitude mode, min vertical speed: ‑1000 fpm
‑ disengaging the AP, smooth release of the elevator within 3 s

[AT] Hold True Airspeed (AutoThrottle)

The auto‑throttle (AT) controls the engine thrust in order to hold a given true airspeed (TAS), limiting the acceleration to the range ‑0.5g .. +0.1g. When the selected TAS cannot be attained, the pilot is warned by the blinking ATxxx in the HUD (or the blinking light Thr in classic instruments mode).

The AT can be engaged/disengaged pressing Shift-T. When enabled, the current TAS is grabbed and used by the AT as the target speed. The value of the current target speed is displayed in the HUD to the right of the speed scale. For example, the indication AT120 means that the target TAS is 120 kt.

When the AT is enabled, the buttons that normally control the engine change their meaning as follow:

1 disable the AT device and sets the minimum thrust (25% RPM).

2 decrease the target TAS by 5 kt.

3 increase the target TAS by 5 kt.

4 disable the AT device and the AP and sets the maximum thrust (100% RPM).

Press Shift-T again to disengage the AT keeping the current throttle setting.

[AN] Navigate to VOR (AutoNavigate)

The auto‑navigator (AN) allows to follow the radial indicated by the OBS set into the HSI panel. Once enabled, the AN automatically compute a proper approaching route bringing to the radial, then it maintain this radial. Ailerons and rudder are controlled in order to correct the magnetic heading of the aircraft according to an algorithm explained below.

Enabling the AN To enable the AN follow these steps:

  1. Tune the HSI on the chosen VOR station or WP.
  2. Turn the OBS to the chosen VOR radial.
  3. Enable the AN (Shift-N). The word AutoNav gets displayed in the HUD (or the Nav light in the classic instruments panel).

Diagram of ILS approaches The approaching path. The AN computes the path bringing to the chosen radial. Normally an approaching angle of OBS+45° gets chosen if the aircraft is located to the left of the radial (point A of the figure) otherwise an heading of OBS−45° gets chosen (point B of the figure). The aircraft then turns toward the heading so computed, either clockwise or counter-clockwise depending on the current heading. For example, if the target heading is 360° (north) and the aircraft is currently directed toward east, then the aircraft will begin to turn counter-clockwise 90°; if the current heading is west, then the aircraft will turn clock-wise. Every turn gets performed with angular speed up to +/−3°/s and a bank angle up to +/−25°.

When the CDI (angular deviation from the OBS) becomes less than 2°, or when the CDI starts moving (indicating that we are very close to the VOR station) the approaching angle gets diminished smoothly so that the aircraft reach the radial with a single turn. This simple strategy works well when the aircraft is far from the VOR, but for short distances (say, 5 NM or less) the aircraft gets forced in a sequence of rough turns, waving around the radial. Because of this limitation the AN should always be disabled below 5 NM from the VOR.

Disabling the AN. The AN can be disabled intentionally pressing Shift-N again. The AN gets also disabled if any of these events occurs:

[AL] Land Using ILS (AutoLand)

The auto‑landing takes control of the aircraft controlling heading and pitch following the approaching path to the LOC+GS station currently tuned. The heading gets corrected in order to smoothly reach the LOCATOR plane. If also the GS is available, then the pitch gets controlled in order to attain the indicated descending path. The AL also performs the flare maneuver, deploys the thrust reverse (if available), deploys the speed brakes, enable the wheel brakes and finally stops the aircraft on the runway.

Enabling the AL To enable the AL follow these steps:

  1. Tune a LOC or LOC+GS=ILS station.
  2. Turn the aircraft so that it is roughly oriented toward the runway. An approaching angle of no more than 30° from a distance of at least 5 NM gives the better results.
  3. Enable the AL (Shift-L). The characters AL get displayed in the HUD (or the Land light will lighted in classic instruments mode).

Once enabled, the AL compute a proper, smooth approach to the plane of the LOCATOR, then it will attain this route up to the runway threshold. Turns are performed with a maximum bank angle of +/‑25°.

For ILS stations providing also the GS signal, the AL can follow the glide path. In this case, the AL takes control of the elevator, maintaining the current altitude until the glide slope plane is reached. Once the GS has being reached, the AL sets a descending rate suitable to maintain the alignment with the glide slope plane (typically ‑3°).

The AL behave pretty well and it can recover from situations that would be very hard for an human to handle. However, in order to ensure the best results, these restrictions should be respected:


Diagram of auto-landing

Requirements of the auto‑landing


The figure above illustrate the final approach to the runway. The optimal distance from the LOCATOR plane should be large enough to allow to the aircraft to attain the alignment to the LOCATOR with only a turn at the rate of 1.5°/s:

d ≥ (1 ‑ cos(A)) v / 94

where v is the current TAS (knots). For example, with an angle of incidence of A=30° and v=170 kt the distance would be 0.24 NM. By the contrary, crossing the LOCATOR plane with an angle near to 90° at little distance from the runway, would force the AL to do several turn maneuvers, often ending with a misalignment and a missing approach.

Disabling the AL. The AL can be disabled intentionally pressing Shift-L again. The AL gets also disabled automatically when any of these events occurs:

Detailed description on how the AL works. The exact sequence of the events depends on several factors. For brevity we will indicate with FLARE_ALT the altitude over the runway at which the flare maneuver starts, V is the current speed, :

FLARE_ALT = 0.375 ft/kt * V

so, for example, landing at 160 kt the flare maneuver starts when the radar altimeter indicates 60 ft from the terrain. We will also indicate with V_TOUCHDOWN the airspeed indicated when the main gear hit the runway. The exact sequence of events is as follow:

1. Keep current altitude until the GS path is intercepted. Adjust heading according to the CDI.

2. Once the GS has been intercepted, start descending at the standard rate of −3 DEG. If the GS has a different angle, the resulting GS error will guide the AL to the correct descending ratio. Continue to follow the LOCATOR, adjusting the heading.

3. When the altitude as indicated by the radar altimeter becomes less than 250 ft, stop following the ILS signal, keep current heading and keep the standard descending rate of −3 DEG.

4. When the altitude indicated by the radar altimeter becomes less than FLARE_THR, the flare maneuver starts. Raise nose so to keep a descending rate of −1 DEG. Ensure wheel brakes are disabled.

5. When the altitude as indicated by the radar altimeter is less than 0.5*FLARE_ALT disable engine auto‑throttle and hold current power setting. The speed begins to reduce.

6. When both the wheels of the main landing gear hit the ground, grab current airspeed V_TOUCHDOWN, as it will used for reference in the rest of the procedure. The speed brakes are fully extended, if available. If the thrust reverse device is available, deploy and set engine power to 75%. Otherwise, set engine idle. Disable auto‑pilot and keep current pitch angle.

7. For tricycle landing gear, immediately lower nose wheel. For bicycle landing gear, hold current pitch until speed drops under 85% V_TOUCHDOWN, then begins lowering the tail wheel.

8. For tricycle landing gears, when all the wheels are in contact with the terrain, enable wheel brakes. If thrust reverse available, brakes are enabled only below 50% V_TOUCHDOWN.

9. At 40% V_TOUCHDOWN, if thrust reverse device available, set engine idle.

10. At 20% V_TOUCHDOWN disable AP, AL, AW and retract thrust reverser, leaving only the brakes on.

Lights Panel

The status panel displays 14 lights. The alarm lights blinks alerting the pilot about some serius sub-system failure or other urgent danger:

OIL, HYD1, HYD2: hydraulic subsystem failures.
GEN1, GEN2: power sources failure.
FLAP: flaps failure.
SPBRK: speed brake failure.
RADAR: radar failure.
TEWS: TEWS failure.
HUD: HUD failure.
G‑LOAD: above 75% maximum positive or negative wings load.

Status and warning lights does not blink and are alerts to the pilot:

FUEL: fuel tank below 15% maximum capacity.
SPD BRK: speed brakes engaged.
BRAKES: wheel brakes are on.

Radar

The ACM radar system has a field of view that extends 130 degrees laterally and vertically from the front of the aircraft. The F‑16 radar set’s range is about 80 NM. All aircraft within that range and field of view will appear as a box on the radar display


Diagram of radar coverage

Radar coverage


The ACM radar display presents a forward looking view of radar targets. Think of it as a television monitor connected to a forward-pointing TV camera that has a very wide angle lens.

If any objects are close enough to be radar-visible, the set will automatically lock onto the nearest threat. With radar lock acquired, your display will provide detailed information about the locked, or :ldquo;primary:rdquo;, target’s disposition. A primary target appears as a filled diamond (u) on the radar display -- the display provides information on the primary target’s range and altitude, as well as its current heading, your desired relative heading to intercept and the rate of closure of your two aircraft.


Image of radar display

The ACM radar display


The radar set’s ability to establish a positive lock on a target extends for a shorter range than the radar’s maximum detection range -- radar lock is limited to about 60 NM on the F‑16 and 30 NM on the MiG‑29.

If multiple targets are plotted on your radar display, you can lock onto other targets by pressing the target reject key (q).

The radar on/standby key (R) can be used to toggle your radar set between its normal operating mode and a standby state. When your radar is in standby mode, your aircraft emits no radar energy and can be more difficult to detect.

Electronic Counter‑measures

Radar Warning Receiver

Each aircraft is equipped with a special device called a Radar Warning Receiver (RWR). It’s display is the round “CRT’ to the left of the radar display. It works much like a radar detector that you can buy for your car. The receiver can detect radar emissions from other aircraft and will plot a box on the RWR display representing the relative direction of that radar threat. Opposing team’s radar emissions appear as filled boxes. Friendly aircraft appear as open boxes. This receiver cannot detect aircraft that have their radar emissions directed away from your aircraft, nor is it capable of detecting aircraft that have their radar sets turned completely off.

Weapon Systems

Your aircraft is equipped with heat-seeking missiles and a 20‑millimeter cannon. Weapon information is displayed in the lower left-hand corner of your HUD. Different weapons may be selected by pressing mouse button 3. The currently selected weapon is fired by pressing mouse button 2.

Cannon

Cannon can be used to engage targets at closer range. Your cannon is modeled after the U.S. M61‑A1 Vulcan. Aircraft typically begin a mission with 500 rounds of ammunition; the cannon fires at 3000 rounds per minute so you only have enough ammunition for a ten-second continuous burst -- use it carefully.

When cannons are selected, the HUD is in Lead Computing Optical Sight (LCOS) mode. On the HUD, a circular aiming reticle is displayed. The HUD couples with the radar set to provide a visible cue of the target’s current range. The aiming reticle is surrounded by 12 ticks. An inner arc represents the current range to the target: each arc tick represents 1000 feet of distance. The aiming reticle moves across the HUD to show a good aiming point based on the target’s range and your aircraft’s pitch and turn rate. If the range is large and or your pitch and turn rates are fast, you may see no reticle at all: the aiming point is simply out of the HUD’s field of view.

An unmoving cross (a “+”) will be displayed on the HUD in LCOS mode. This marker denotes the boresight of the cannon -- the direction that the cannon’s barrel is actually pointing.

Figure 6 (missing!) shows another example of what you might see in a dogfight. All planes are turning hard to the left at a relatively low speed. You are in LCOS mode and see that the reticle is positioned ahead of the intended target. To get the kill, simply relax the turn long enough to get into position and then take the shot.

Air‑to‑Air Missiles

The missiles are patterned after U.S. AIM‑9M Sidewinders. They can detect infrared (IR) targets at any aspect (not just from the rear). Their range varies dramatically with the altitude and closure rate. The missile subsystem couples with your radar set to provide time‑to‑impact information.

This missile has a solid rocket motor that burns for about 8 seconds. After burn-out, it will still track towards its intended target but may lose speed too rapidly to catch it. Your heat seeking missiles don’t arm themselves until three seconds after launch. Because of that, you should not fire at a target that is closer than three seconds of flight time away.

Missile status discretes and their meanings:

ARM A missile is armed, but its seeker has not yet acquired a target in its field of view.

LOCKED A missile is armed and its seeker has locked onto a heat source. The missile is ready to fire.

---- The missile’s seeker has acquired a target, but it is out of range based on current time‑to‑target information.

Ballistic Bombs

The Su‑30 is the only plane that features these. It provides a CCIP bombing sight for low-level bombing.

Other ACM Components and Concepts

About Screen Configuration

The Eye dist. from screen: and Downward view angle: entry boxes combine to define how the outside forward view is presented. The “Scale factor and cockpit view layout” figure to the lower left illustrates these parameters.

From the distance of the eye from the screen, the program computes a proper scale factor so that the landscape visible outside the cockpit can be rendered realistically and without distortion, a feature particularly useful when flying VFR.

Diagram of cockpit view and scaling

Scale factor and cockpit view layout

The downward angle of view (DAV) allows the pilot to see below the horizontal axis of the aircraft. This angle can range from 7 to 10° for civil aircraft, up to 15 or even 18° on fighters. Setting properly this parameter may challange the pilot dealing with take off and landings maneuvers with limited downward visibility. The instrument panel and the engine cowling severely limit the pilot’s ability to view downward toward the ground. Flying at low speed the increased nose-up attitude reduces the visibility even more, and the effective downward angle of view becomes the difference DAV−AoA. To fully display the HUD graphics a DAV of at least 12° is required.

Refer to these links for further information:

for further details.

About Planes

This section contains the following subsections that can be clicked on to jump directly to the subsection:

‑plane ???

This selection is representative of any string that is not a defined aircraft in the inventory file in the objects directory, which causes ACM to tell you what aircraft are available to select, and will contain the same set of possibilities as shown in this manual unless someone has modified the contents of the inventory (refer to the “Defining New Aircraft” section for further information regarding that possibility).

‑plane AMX [‑V]

AMX International — AMX

A jet fighter having the following V data:

Vs0 = 122.892400 KT
Vs1 = 130.823602 KT
Vfe = 0.000000 KT
Vno = 1038.158208 KT
Vne = 0.000000 KT
Alpha stall = 15.000035 DEG
MTOW = 21615.000000 lb
Total mass = 21764.573808 lb

a fuel capacity of 6780 pounds (31.4% of MTOW), and the following ordnance:
500 rounds for M61A1 cannon
6 AIM‑9M missles

‑plane B‑747

Boeing 747‑400

A huge commercial jetliner having the following V data:

Vs0 = 144.290741 KT
Vs1 = 161.348444 KT
Vfe = 220.000000 KT
Vno = 369.094926 KT
Vne = 510.000000 KT
Alpha stall = 15.000035 DEG
MTOW = 800000.000000 lb
Total mass = 730139.598987 lb

a fuel capacity of 360000 pounds (45.0% of MTOW), and no ordnance.

This big bird must be piloted very gently (and it‘s not just because it carries lots of aerobatically-challenged passengers). It's also the highest seat in the hangar to date so it's useful for looking around at things on the ground.

‑plane C‑172

Cessna C172RG

The staple of General Aviation having the following V data:

Vs0 = 43.425740 KT
Vs1 = 52.209489 KT
Vfe = 100.000000 KT
Vno = 145.000000 KT
Vne = 164.000000 KT
Alpha stall = 15.000035 DEG
MTOW = 2650.000000 lb
Total mass = 1839.996786 lb

a fuel capacity of 240 pounds (9.1% of MTOW), and no ordnance.

The ACM version of this four-seater features retractable landing gear, but all models are almost impossible to land in gusty conditions and cannot be mistaken for a jet.

‑plane F‑16

General Dynamics F‑16C Fighting Falcon

The formidible default jet fighter for the Blue Team 1 having the following V data:

Vs0 = 98.866312 KT
Vs1 = 103.625204 KT
Vfe = 0.000000 KT
Vno = 769.615649 KT
Vne = 0.000000 KT
Alpha stall = 31.856453 DEG
MTOW = 24326.000000 lb
Total mass = 24475.629210 lb

a fuel capacity of 9750 pounds (40.1% of MTOW), and the following ordnance:
500 rounds for M61A1 cannon
6 AIM‑9M missles
2 AIM‑120 missles

‑plane MD‑81 [‑V]

MD‑81
McDonnell Douglas MD‑81 (EXPERIMENTAL - not finished yet)

A smaller commercial jetliner than the B‑747 having the following V data:

Vs0 = 128.405530 KT
Vs1 = 140.463437 KT
Vfe = 235.000000 KT
Vno = 340.000000 KT
Vne = 499.000000 KT
Alpha stall = 15.000035 DEG
MTOW = 140000.000000 lb
Total mass = 117736.478705 lb

a fuel capacity of 39160 pounds (28.0% of MTOW), and no ordnance.

‑plane MiG‑29

MiG‑29
Mikayan‑Guryevich MiG‑29M Fulcrum

The also formidible default jet fighter for the Red Team 2 having the following V data:

Vs0 = 98.584463 KT
Vs1 = 103.329788 KT
Vfe = 0.000000 KT
Vno = 1051.261442 KT
Vne = 0.000000 KT
Alpha stall = 31.856453 DEG
MTOW = 32250.000000 lb
Total mass = 32399.452339 lb

a fuel capacity of 9750 pounds (30.2% of MTOW), and the following ordnance:
500 rounds for M61A1 cannon
6 AIM‑9M missles
2 AIM‑120 missles

‑plane P‑51A [‑V]

P‑51A
North American P‑51A Mustang

The famous WWII fighter having the following V data:

Vs0 = 71.963618 KT
Vs1 = 82.611877 KT
Vfe = 220.000000 KT
Vno = 304.000000 KT
Vne = 370.000000 KT
Alpha stall = 14.896903 DEG
MTOW = 7000.000000 lb
Total mass = 7082.987677 lb

a fuel capacity of 500 pounds (7.1% of MTOW), and no ordnance (it’s the racing model).

This aircraft is a tail-dragger; i.e., it has no front wheel—can you land it without over-braking and pushing its nose into the runway?

‑plane Su‑30

Su‑30
Sukhoi Su‑30 Multi-Role Fighter

An impressive jet fighter having the following V data:

Vs0 = 97.519325 KT
Vs1 = 102.213380 KT
Vfe = 0.000000 KT
Vno = 627.524522 KT
Vne = 0.000000 KT
Alpha stall = 31.856453 DEG
MTOW = 52700.000000 lb
Total mass = 52849.583393 lb

a fuel capacity of 20700 pounds (39.3% of MTOW), and the following ordnance:
500 rounds for M61A1 cannon
2 AIM-9M missles
4 MK82 ballistic bombs

This aircraft features a CCIP bombsight integrated into the HUD that is useful for high‑speed low‑level bombing. Try your hand at high altitude precision bombing runs without any more targeting aids than the GPS readouts as described in the “Debug (GPS) Display, Toggle” section.

About Drones

In dog fight mode drones are placed just in front of you. In hunting mode drones are placed up to 50 NM away from you in random direction and altitude. This panel allows also to set the drones aggressivenes, i.e., how much “G” they will pull to escape from you or to attack you. For example, selecting 70% the drone will maneuver up to the 70% of its current maximum vertical load, both positive and negative. Drones are automated opponent aircraft. They are created by pressing the l key. Drones aggressiveness setting (see option ‑da) controls how hard a drone aircraft will attempt to maneuver to attack other planes. For example, a setting of 0.7 means the drone will maneuver pulling “G” up to the 70% of its maximum structural vertical limit (see the parameters MaxLoadZPositive and MaxLoadZNegative); if the fighter supports up to 10g of positive vertical acceleration with nearly empty tank, it will reach 7g of positive vertical acceleration.

With an aggressiveness factor too low (probably 0.2 or less) the aircraft will hardly sustain its own weight and will crash on the ground without even try to fly. With a value near 1.0 or greater your opponent drone will certainly suffer of a tragic fatal structural failure... Values between 0.7 and 0.9 will usually make for an interesting opponent.

NOTE. The DIS protocol MUST enabled, you can’t use the ‑no‑dis option.

About Origin Situations

The ‑airspeed‑kt, ‑altitude, ‑heading, ‑latitude, ‑longitude, and ‑team ‑team_1 ‑team_2 ACM command line options (or their counterparts in the GUI’s You panel) may be combined with starting locations defined in the effective acmscene file to tailor the startup situation of the ACM aircraft. Leaving these fields (except team) blank will cause your aircraft to be placed at the location defined in the appropriate TEAM_1 or TEAM_2 record in the selected or default acmscene file in the objects directory in the ACM release directory.

Latitude and longitude must either both provided or both missing—you cannot set only one of the two. The exact syntax of the latitude and of the longitude is:

  degrees[‑primes[‑seconds]]{N|S|E|W}

Notice latitude cannot exceed 90° with zero primes (aka minutes) and seconds, and likewise longitude cannot exceed 180°. In addition, minutes cannot exceed 59, and seconds approach 60 as a limit (seconds alone can include a fractional component). Examples:

Regardless of the ‑altitude definition used, the flaps are always fully retracted and the throttle is set to idle. If the ‑altitude option is not supplied, ACM automatically sets the aircraft on the ground at the specified location with the landing gear down and locked and the brakes set. When starting airborne; i.e., specifying an altitude greater that the local terrain altitude, the initial pitch is set to 3° with the wings level, the landing gear retracted, and the brakes released. Care should be taken not to specify an altitude too close to the ground and you most certainly do not want the initial airspeed to default to zero—choose the knots that make good sense for the aircraft you choose in the flight attitude previously mentioned and adjust the throttle as soon as possible (after first getting the stick where it needs to be and possibly using [A] [X] [|] to enable the hold rate of climb, coordinate roll/yaw, and hold wings level autopilot subsystems).

For additional information, refer to these links:

About Meteorological Conditions

Lighting lets you choose to fly with the daylight or by night. You can fly through the clouds and the fog setting the field Visibility to a value lower than 50.0 NM (unless the Color Depth Steps in the Configure Panel is set to 1). Two or three NM is probably the minimum value that allows safe landings in IFR mode. The “visibility” is effective only by day, since currently it has no effect in “night” mode. Wind direction and Wind velocity set a prevailing wind over all the ACM “world”.

The following topics are presented more or less in the order of ACM’s capacity to modify them.

Visibility and Haze

Wind

In ACM wind is entirely defined by the ‑wind option and the ‑gust option. When the ‑wind and ‑gust options have been defaulted or explicitly defined as zero, then there is never any wind in the simulation, an unnatural condition. Otherwise, at any given time and and at any given altitude, wind direction (always true, never magnetic) and velocity is the sum of two vectors:

The details of the behavior of wind in ACM are contained in the src/air.c module. If ‑gust is not defined, the prevailing wind, if any, will be constant. Notice the ‑wind velocity is specified in knots but the ‑gust definition is in feet per second—10 knots equals approximately 16.878 feet/second).

Remember that the wind direction is the direction from which the wind comes, not goes (the wind is normally said to “come out of” the direction associated with it; e.g., a westerly wind comes from the west). With a wind of 90 degrees, your aircraft will drift due west.

Landing the Cessna C‑172 with a cross wind (i.e., wind direction perpendicular to runway) of 10 knots is difficult; and 20 knots is nearly impossible. Avoiding crashes during landings in significantly strong crosswinds and/or gusty conditions is in no way easy, even for the auto pilot—you have been warned.

Day and Night

Clouds and Fog

Precipitation

Temperature, Pressure, and Humidity

In ACM air temperature is treated as a simple function of altitude based upon a hard-coded constant; i.e., temperature is always the same. This precludes most thermal effects, especially updrafts, downdrafts, and thermals—all air movement is perfectly horizontal.

About Resupply

The resupply function of ACM works like a “pit stop” to repair any damage, refuel, and rearm any aircraft. The normal means of resupply requires the aircraft be safely landed at its home airbase and parked for approximately 30 seconds within three nautical miles of the mid-point of the runway. Resupply restores all munitions supported by the aircraft to their full complement (note that when the ‑arcade option has been specified, munitions are inexhaustible so resupply maneuvers are unnecessary for aircraft ordnance). This resupply facility also repairs any damage to the aircraft. Refueling occurs at a set rate, so when your previous mission consumes a lot of fuel, it can take several minutes before the tanks have been topped off.

About Stealth Mode

Note: this option is currently causing an immediate seg fault in acm‑7.0‑dlc and acm‑5.0‑ico.

ACM’s stealth mode allows users to monitor out-the-window views for any aircraft active in an exercise.

$ acm ‑stealth

In stealth mode, the radar display is used to display DIS entity id’s of aircraft participating in the exercise. To select and aircraft to follow, use the mouse to click on one of these identifiers. The entity id of the aircraft you are following will be highlighted in magenta.

DIS Entity ID
50,1,1
50,1,2
* 50,6,1

If there is a large number of entities in an exercise, use the PAGE UP and PAGE DOWN keys to scroll through the list.

End-game behavior

When the ‑end‑game option is requested, hostile aircraft near the subject aircraft are tracked. If any of these aircraft moves within the subject aircraft’s radar locking range as defined via the ‑threshold‑range option, then ACM will request control of subject aircraft. Control is requested using a variant of the proposed DIS 2.1.4++ transfer control protocol sequence. If the ‑end‑game option is not requested, the subject aircraft’s radar does not improve in browse mode.

Transfer of Control

ACM supports an experimental DIS 2.1.4++ control request protocol. It permits it to “take over” aircraft of similarly enabled applications. For ACM to take over an aircraft, it must have model information in the “inventory” file describing the characteristics of that aircraft type. Those aircraft entities will be marked with an asterisk (*) in the left margin of the stealth browser display. Double click an aircraft entity id to take control. See the chapter The Transfer Control Protocol for details.

About the Default Scene

The default scene centers on an area in the western part of the Sahara Desert that is likely uninhabited to provide a ficticious arena for team dogfighting. It contains three single runway airfields roughly in a line separated by approximately 100 nautical miles:

Each runway has ILS at both ends with a VOR/DME facility 15‑17 nautical miles straight out from the runway end. There are also two VOR/DMEs between the three airfields:

Each airfield has a tower and a hangar using the associated facility color primarily. The VOR/DME stations are predominently white. Here are some B‑747 pilot's-eye views of them while parked nearby (except for the aerial oblique shot)—these shots feature the .obv files with smaller visibility hexagons, not the larger "training wheels" versions used in the distributed allworlds.acmscene file). The hangars are easily large enough for a B‑747.

Ground level view of black tower

RRA (Black) Tower

Ground level view of red tower

ICO (Red) Tower

Ground level view of blue tower

DLC (Blue) Tower

Ground level view of VOR/DME station

VOR/DME Transmitter

Ground level view of glide slope antenna

Glide Slope Antenna

Aerial view of Riley Rainey Airport

Aerial View of RRA showing GSAs

Ground level front view of blue hangar

DLC (Blue) Hangar (front)

Ground level back/side view of red hangar

ICO (Red) Hangar (back/side)

Chase view of inside of black hangar

RRA (Black) Hangar (inside, chase view)

Oblique aerial view of blue hangar

DLC (Blue) Hangar (oblique from back/side)

The following high-altitude annotated screenshots present the pertinent navigational information. Note these are not charts—they include perspective distortion. These shots use the down view accessed via the [NumLk0] key. The point directly underneath the aircraft is just above the center of the top of the panel (no area behind the aircraft is ever visible in an down view). Aircraft position (longitude, latitude, and meters ASL) is shown in the debug display at the upper-left of the screen which is toggled via the ‘D’ keyboard command. The polar views include four longitude lines with compass directions. Remember that, except at the poles, when heading south, turn left to head east, but when heading north, turn right to head east). Directly at the poles, however, every direction away from the pole is straight toward the opposite pole; i.e., north at the South Pole and south at the North Pole. The Prime Meridian / Anti-Meridian great circle divides East longitude from West longitude (in both these polar charts, West is the upper half and East is the lower half).

DLC — David L. Craig Airbase

High altitude view of David L. Craig Airbase

Annotated aerial photo of David L. Craig Airbase (runway center: 21‑00‑00 N, 7‑00‑00 W)

ICO — Umberto Salsi Airbase

High altitude view of Umberto Salsi Airbase

Annotated aerial photo of Umberto Salsi Airbase (runway center: 24‑00‑00 N, 5‑00‑00 W)

NP_ — North Pole Airbase

High altitude view of North Pole Airbase

Annotated aerial photo of North Pole Airbase (NP1 runway center: 89‑57‑00 N, 0‑00‑00 W)

RRA — Riley Rainey Airport

High altitude view of Riley Rainey Airport

Annotated aerial photo of Railey Raney Airport (runway center: 20‑29‑20 N, 6‑01‑12 W)

SP_ — South Pole Airbase

High altitude view of South Pole Airbase

Annotated aerial photo of South Pole Airbase (SP1 runway center: 89‑57‑00 S, 0‑00‑00 W)

TDC — Tristan da Cunha Airport

High altitude view of Tristan da Cunho Airport

Annotated aerial photo of Tristan da Cunha Airport (runway center: 37‑07‑51 S, 12‑14‑54 W)

Programmer Topics

Building ACM on UNIX Systems

ACM‑7.0‑dlc can be downloaded from dlcusa.net/acm as a gzipped tar archive. The following instructions are from the README file you'll find there:

To run build.sh, you must first install it somewhere in the system you want to use for ACM. And not just this script--you need all the files of the package distribution, which are conveniently put into a single file called an archive or tarball. That file is named acm-7.0-dlc-20200202.tar.gz and is what you must download into your system via its URL:

http://dlcusa.net/acm/acm-7.0-dlc-20200202.tar.gz

It's up to you where you download it in your system. This discussion will assume you put it into your home directory; e.g.,

$ cd ~
$ wget -c 'http://dlcusa.net/acm/acm-7.0-dlc-20200202.tar.gz'

Also get the sha256 hash file, then verify what you downloaded was not corrupted somehow; e.g.,

$ wget -c 'http://dlcusa.net/acm/acm-7.0-dlc-20200202.tar.gz.sha256'
$ sha512sum -c acm-7.0-dlc-20200202.tar.gz.sha256

and verify that last command said OK. If so, make a directory to extract the archive into (and then to build and run the software). Something has to be recommended although it is again entirely up to you where you want it. We'll say the recommended directory is ~/acm-7.0-dlc, so make that and make it the current (aka working) directory:

$ mkdir acm-7.0-dlc
$ cd acm-7.0-dlc

The last step to installing the build.sh script it to expand the tarball into the working directory; e.g.,

$ tar xzf ../acm-7.0-dlc-20200202.tar.gz

and make sure no error messages are displayed.

Now read the build.sh script for more details about compiling and linking the software. If it seems too cryptic, the INSTALL file may provide the enlightenment you seek, but remember not to attempt to build the components the way it says you should.

If you haven't read the front of the the README file yet, which adds the README information for this release of ACM to those of past releases, now would be a good time. You may find the rest interesting with some useful information, but it shouldn't be required reading to proceed with this release.

On systems where X11 is installed in an unusual location, configure may have trouble locating the X include files and libraries (you’ll know that because the compiler will complain that it can’t find files like X11/X.h). If this problem crops up, you can help configure to set up the Makefiles by telling it where to find X11:

$ x_includes=/usr/myX11/include; export x_includes
$ x_libraries=/usr/myX11/lib; export x_libraries
$ ./configure
$ make

By default, configure will compile ACM using gcc if gcc is found in your PATH environment variable. Some combinations of gcc and OS platforms have problems with ACM (gcc 2.2.2 seems to have problems on SunOS and HP‑UX, for example). You can override configure’s selection of gcc:

$ CC=cc; export CC
$ ./configure
$ make

Once build.sh informs you there is an executable src/acm available, follow it's instructions and eventually ACM should be easily and usefully functioning on your system.

Defining New Scenes

The scene file defines the visible ACM “world”. It should be stored as a ASCII text file. Every record occupies exactly one line, with leading and trailing spaces ignored. Fields in a record are separated by one or more spaces or tabulation characters. Empty lines and lines beginning with the character ‘#’ are ignored.

On startup, ACM uses the default.acmscene file from the objects directory. With ACM for Unix, you can override this default by specifying the ‑scene scene‑file‑pathname option. Records can be specified in any order. No valid records are required—the file may be empty, but it must be openable (‑scene /dev/null is perfectly fine).

Team Locations — TEAMLOC, TEAM_x Records

ACM groups participants (players) into two teams. The scene file defines the initial location for each team. Typically, this location will be positioned at the end of a runway and oriented for take-off at the team’s home airbase. This information in contained in the TEAMLOC record associated with the player's team via its TEAM_1 or TEAM_2 record. Example:

TEAMLOC DLCW  TD_DLC_DLC_W8    20-59-42.221N 007-01-06.000W  1402  74
TEAMLOC ICOE  TD_ICO_ICO_E29   23-59-44.439N 004-58-52.100W  1923 284
TEAM_1  DLCW
TEAM_2  ICOE

Fields:

0 Type: TEAMLOC
1 Short name (easily remembered)
2 Long name (descriptive name—any format used should be explained in the acmscene file)
3 Latitude
4 Longitude
5 Altitude (ft, MSL) (ATTENTION: this value is currently ignored, aircrafts are always gently deployed on the ground)
6 Initial Heading (degrees, true)

0 Type: TEAM_1, TEAM_2
1 Short name of associated TEAMLOC record

Ground Color — GROUNDC Record

An X11‑style #RRGGBB color specification defining a color of the ground. Red, green and blue color components are hexadecimal value from 00 to FF. Example:

GROUNDC fairway #305030
Fields:
0 Type: GROUNDC
1 Name of the color 2 Color

Runways — RNW, RNW2 Records

The record entry of the ACM scene describing a runway can take two forms, depending on the available informations: the old one (RWY) and the new one (RWY2). The RWY format requires the geographic coordinates of both the ends of the runway. The RWY2 requires only the center of the runway and its true heading. The syntax of the runway identifier (field no. 2) must be of the form:

H[S]/H[S]

where H is the heading (an integral number between 1 and 36) and S is a capital letter (“L”, “C” or “R”). The S part of the identifier is optional. A leading “0” in an identifier is allowed. The runway identifiers can be specified in any order.

Example of the RWY record format:
RWY ADS 15/33 644 7202 100 32‑58‑40.245N 096‑50‑25.820W 32‑57‑33.383N 096‑49‑56.608W
Fields of the RWY record:
0 Record Identifier: RWY
1 Three/Four letter airport code
2 Runway identifier
3 Runway Altitude (ft, MSL)
4 Runway Length (ft)
5 Runway Width (ft)
6 Near End Latitude
7 Near End Longitude
8 Reciprocal End Latitude
9 Reciprocal End Longitude
Example of the RWY2 record format (same runway):
RWY2 ADS 15/33 644 7202 100 32‑58‑06.81N 096‑50‑11.21W 160.0
Fields of the RWY2 record:
0 Record Identifier: RWY2
1 Three/Four letter airport code
2 Runway identifier
3 Runway Altitude of the Center (ft, MSL)
4 Runway Length (ft)
5 Runway Width (ft)
6 Latitude of the Center
7 Longitude of the Center
8 Runway Heading (DEG, possibly with decimals)

The model of the terrain simulated by ACM is very simple and efficient: the elevation of the nearest runway gives the local terrain altitude, the distance being calculated relatively to the center of the runway. Nevertheless, this behavior has a strange implication: between two runways at different altitudes there is a step line where the local altitude suddenly change. Crossing this step line taxing on the ground, the aircraft would crash its landing gear.

In the figure below the terrain to the left side of the step line has elevation 500 feet, while the terrain in the other side has elevation 510 feet. Unfortunately in this case we have a problem, since the step line crosses both the runways.


Diagram of runway step difficulty

The problem of the step line crossing the runways


The only practical solution to this problem is to keep all the runways of a given airport at the same exact altitude.

A NAV record may be a VOR, a DME or a NDB. The TACAN stations of the ACM world behave simply as VOR/DME stations. VOR and ILS stations frequency ranges from 108.00 MHz up to 117.95 MHz.

OMARKER, MMARKER and IMARKER are just like NDB stations but with limited range (20 NM rather than 100 NM). NDB station frequency ranges from 200 KHz up to 499 KHz. This latter upper limit is a rather arbitrary value set in ACM‑2.0‑dlc, but most of the stations do not exceed 415 KHz.

Example:
NAV TTT VOR/DME 32‑52‑08.98N 097‑02‑25.81W 540 06E 113.10
NAV FWH TACAN   32‑46‑17.46N 097‑26‑22.07W 663 07E 108.7  024X
NAV RBD NDB     32‑40‑36.98N 096‑52‑15.91W 670 06E 287
Fields:
0 Record Identifier: NAV
1 Up to four letters identifier
2 NAVAID Type: VOR, DME, VOR/DME, VORTAC (=VOR+DME), TACAN (=VOR+DME), NDB, OMARKER (=NDB), MMARKER (=NDB), IMARKER (=NDB)
3 Transmitter Latitude
4 Transmitter Longitude
5 Transmitter Altitude (ft, MSL)
6 Magnetic variation at station (degrees east or west)
7 VHF Frequency (MHz for VOR/DME/ILS stations and KHz for NDB)
8 TACAN channel number (optional; only for TACAN)

Instrument Landings — ILS Record

An ILS station is a LOCALIZER (emitting the signal giving the right heading toward the runway) that may include also a glide slope (GS, giving the deviation from the glide plane) and a DME.


Diagram of ILS positioning

Typical ILS arrangement around the runway


Example:
ILS 30 ILS IAIW 108.9 34‑18‑47.161N 097‑01‑38.280W 34‑17‑59.533N 097‑00‑35.018W 729.2 3.2E 4.92 309 3.00
Fields:
0 Record Identifier: ‘ILS’
1 Runway Identifier:
2 ILS Type: either ILS (=LOC+GS), ILS/DME (=LOC+GS+DME), LOCALIZER (=LOC), LOC/GS (=LOC+GS), or LOC/DME (=LOC+DME)
3 Four letter Identifier
4 VHF Frequency (MHz)
5 Localizer Transmitter Latitude
6 Localizer Transmitter Longitude
7 Glide Slope Transmitter Latitude (‘‑‘ for Localizer‑only approaches)
8 Glide Slope Transmitter Longitude (‘‑‘ for Localizer‑only approaches)
9 Glide Slope transmitter altitude (ft, MSL) (‘‑‘ for Localizer‑only approaches)
10 Magnetic variation at localizer station (degrees, east or west)
11 Localizer beam width (degrees)
12 Localizer bearing (degrees, magnetic)
13 Glide slope angle (degrees) (‘‑‘ for Localizer‑only approaches)

Scenery Ornamentation — FEATURE Record

Use feature records to place objects in an ACM scene. Example:
FEATURE tower.obv 32‑58‑04.800N 096‑50‑16.800W 644 0
Fields:
0 Record identifier: FEATURE
1 Object filename
2 Latitude
3 Longitude
4 Altitude (ft, MSL)
5 Orientation angle (degrees, true)

Defining New Aircraft

The stout-of-heart may be interested in creating new aircraft types. Some of this information must be generated by hand, but I did create a program to help me generate aircraft objects: GEDIT. GEDIT is a rudimentary Motif program that allows you to create 3-dimensional objects. It is available in the directory gedit of the distributed package.

Alas, gedit still requires 32-bit hardware and remains unported to 64-bit architecture. This really hamstrings efforts to provide aircraft display files. If you're able to port it for the rest of us, we'd be much obliged!

The syntax of inventory file objects/inventory is not complex. The program doesn’t complain about missing numeric values, and they are assumed to be zero.


# Aircraft Inventory for ACM 5.0
# See ACM‑Bibliography for further information about the sources of this
# information.
# MiG‑29 Fulcrum
# MiG‑29M information was derived from two sources: [Spick87] and [AirI Aug92].

aircraft "MiG‑29" {
    Description "Mikoyan‑Guryevich MiG‑29M Fulcrum"
    Object "mig29.obj"

The visual description of an ACM aircraft is stored separately in V‑library format. This file describes a set of polygons that roughly approximates the shape of the actual aircraft. I used GEDIT to create most of the ACM aircraft objects. If not available, you may leave this parameter commented-out, but chase view will not be available and you craft will be invisible to the other players...


    WingArea     400.0     # (wingS) Wing surface area (ft^2)
    WingHalfSpan 18.87     # (wings) Wing half‑span (ft)
    WingHeight    0.0      # (wingh) Height of the wing aerodynamic center
                           #    above the CM (ft)
    Chord        9.61      # (c) Mean geometric chord of wing (ft)
    AspectRatio  3.56      # (aspectRatio) aspect ratio
    EmptyWeight  22500.0   # (emptyWeight) Empty mass (lb)

These values are usually quoted with an aircraft’s performance figures. The WingHeight is used to estimate the ground effect, and its value is positive for wings above the center of mass.


    # Max. wing load (lb):
    MaxLoadZPositive    273000  # 10*(EmptyWeight+50%*MaxFuel) (+10 g)
    MaxLoadZNegative    137000  # 5*(EmptyWeight+50%*MaxFuel) (‑5 g)

The maximum vertical load, either climbing (MaxLoadZPositive) or diving (MaxLoadZNegative). If the weight the wings have to sustain is greater than that, the structure suddenly breaks and the aircraft gets destroyed.

For civil aircrafts you may guess these values as 2.5*MTOW and 1.0*MTOW. Military aircrafts, and fighters expecially, are reported to sustain up to some number N of positive “g” and some other number Q of negative “g”. If not indicated, you should soppose at least 60% of the fuel contributing to the mass:

MaxLoadZPositive = N * (EmptyWeight + 60%*MaxFuel)
MaxLoadZNegative = Q * (EmptyWeight + 60%*MaxFuel)

where typical values for N range from 7 to 10, and Q=3.


Diagram of aircraft reference frame

The reference frame of the aircraft, with main inertial axes
and center of mass (CM) indicated.



    # (I(x,y,z)) Moments of inertia (lb ft^2)
    Ixx 10000
    Iyy 75000
    Izz 80000

These are hard values to simple guess. I have grabbed values where they were available and simply guessed sometimes, too. Moments of inertia in an actual aircraft are not constant. Most notably, as an aircraft burns fuel, its weight distribution, center-of-gravity, and moments of inertia change. In ACM, however, moments of inertia and CM do not change.


    # (cFlap) Lift due to flaps (yields Clift of 1.0 at max extension)
    CFlap 0.64279
    BetaStall     15.0    # (deg) Stall angle for rudder
    CFlapDrag     0.0467  # (cFlapDrag) Drag due to Flaps
    CGearDrag     0.03    # (cGearDrag) Drag due to Gear
    CSpeedBrake   0.03    # (cSpeedBrake) Drag due to Speed Brake
                          # at 90 degrees


    # (CDb) Drag Characteristic equation [Wave+body]
    # independent variable is mach number

    CDb {                 # (CDb) Drag Characteristic equation [Wave+body]
        # independent variable is mach number
        0.0, 0.020,
        0.2, 0.020,
        0.95, 0.015,
        1.05, 0.045,
        2.00, 0.030,
        10.0, 0.030
    }

In ACM, wave/body drag coefficient is a function of the airspeed expressed as a Mach number. Less drag makes for a faster aircraft. This function generally has a maximum near Mach 1.0. You probably should not change this table unless you really know what you’re doing.
For the CFlap coefficient see below.


    CLift {               # (CLift) Lift‑slope curve (vs alpha)
        ‑3.0, 0.0,
        ‑1.05, 0.0,
        ‑0.576, ‑2.199,
        ‑0.556, ‑2.23,
        ‑0.524, ‑2.199,
        0.524, 2.199,
        0.556, 2.23,
        0.576, 2.199,
        1.05, 0.0,
        2.0, 0.0
    }

In ACM, the coefficient of lift is purely a function of angle of attack (alpha) and of the speed. The CLift table gives the coefficient of lift for some values of the AoA “alpha”. In the example above, the maximum coefficient of lift is 2.23 at 0.556 RAD = 32 DEG of AoA. Above this angle, the lift drops abruptly and the plane stalls. The coefficient of lift also depends on the current flap deflection angle according to the function:

CL = CLift(alpha) + sin(flaps) * CFlap

being CLift(alpha) the interpolated value given by the CLift table above. The total lift force is given by the equation:

L = 1/2 r WingArea V2 CL

where r is the air density (r=1.225 Kg/m3 at sea level), V is the airspeed and CL is the coefficient of lift.


    CnBeta { # (CnBeta) Yaw moment due to sideslip equation
        0, ‑0.08125,
        0.523540, ‑0.078125,
        0.785340, ‑0.0609375,
        1.047198, 0.125,
        1.58, 0.0
    }

In ACM negative yaw due to sideslip means that the aircraft is “weathercock stable”, that is, the aircraft tends to yaw in a way that reduces the sideslip component.


    ClBeta { # (ClBeta) Roll moment due to sideslip equation
        0, ‑0.0125,
        0.43633, ‑0.015,
        0.78540, 0.125,
        1.58, 0.0,
        3.142, 0.125,
    }

A negative value means that the aircraft will roll in the opposite direction of the sideslip component, tending to make the aircraft more stable.


    CDBOrigin   0       # (CDBOrigin, CDBFactor) Drag due to sideslip
    CDBFactor   0.5
    CDBPhase    0       # (CDBPhase) sideslip drag phase (deg)
CDB values define the body drag added by sideslip on the aircraft.

    CYBeta      ‑0.85   # (CYbeta) Side‑force from side‑slip [dCY/dBeta]

CYBeta is the “lift” due to sideslip. This is the factor that allows to roll 90 degrees from level, kick the rudder a lot, and still stay level. Not all simulators take this into account.


    EffElevator   0.60 # (effElevator) Elevator effectiveness
    EffRudder     0.35 # (effRudder) Rudder effectiveness
    MaxRudder     20   # (maxRudder) max Rudder (deg)
    MaxAileron    20   # (maxAileron) max Aileron (deg)
    MaxFlap       20   # (maxFlap) max flap setting (deg)

    # (flapRate) flap extension rate (about 2 secs to fully extend flaps)
    FlapRate      10   # (deg/s)

    # (gearRate) gear extension rate (about 3 secs to fully extend gear)
    GearRate      30   # (deg/s)

    MaxSpeedBrake 80   # (maxSpeedBrake) max Speed Brake setting (deg)

    # (speedBrakeRate) rate of speed brake extension (2 secs to full ext)
    SpeedBrakeRate 40  # (deg/s)

    # (speedBrakeIncr) speed Brake increment per keystroke
    SpeedBrakeIncr 80  # (deg)

These values determine the characteristics of the aircraft’s speed brakes (speed brakes are used in the air, wheel brakes are used on the ground). MaxSpeedBrake determines the maximum extension of the speed brake panels. SpeedBrakeIncr determines how far one press of the s key will increase the speed brake extension. It does not need to be an even increment of MaxSpeedBrake. SpeedBrakeRate determines how fast the brakes will deploy or retract.


    Clda  0.048 # (Clda) roll moment from aileron offset
    Cldr  0.004 # (Cldr) roll moment from rudder offset
    Clp   ‑0.27 # (Clp) roll damping
    Cmq   ‑8.0  # (Cmq) pitch damping factor
    Cnr   ‑2.0  # (Cnr) yaw damping factor

These factors characterize some of the roll, pitch and yaw characteristics of the aircraft. They are in the NACA form. Damping factors determine how quickly an aircraft returns to a steady state after some change in control input. Larger negative damping factors make for a more stable aircraft.


    # Speed limits at MTOW. Leave undefined or set to 0 if unknown.
    MTOW  32250.0    # maximum takeoff weight (lb)
    #Vs0     42.0    # stall speed, full flaps (kt)
    #Vs1     50.0    # stall speed, no flaps (kt)
    #Vfe    100.0    # max speed with flaps extended (kt)
    #Vno    145.0    # normal operation speed (kt)
    #Vne    164.0    # never exceed speed (kt)

These parameters allow the program to set or calculate several speed limits. These speed limits are used to draw the colored arcs on the air speed indicator. Every arc is displayed only if its start and end are known, and it is now drawn otherwise. These speed limits are also considered to simulate some structural failures when exceeded, as detailed below. Leave commented-out or set to 0 the parameters that are unknown: the program will try to guess the missing values of simply will left them undefined if this guess is not possible.

MTOW is the maximum take off weight (lb).

Vs0 is the stall speed at MTOW, full flaps, at sea level. It is indicated by the beginning of the white arc in the anemometer. If undefined or set to zero, the program tries to calculate this value with the following formula:

Vs0 = sqrt( 2 MTOW earth_g / (r WingArea CL) )
where:
earth_g is the gravity acceleration at sea level.
r is the air density at sea level.
CL is the lift coefficient calculated with:
CL = maxCLift + CFlap sin(MaxFlap)
being maxCLift the maximum coefficient of lift as given by the CLift curve.

Vs1 is the stall speed at MTOW, without flaps, at sea level. It is indicated by the end of the short white arc in the anemometer. If undefined or set to zero, the program calculates this value with the following formula:

Vs1 = sqrt( 2 MTOW earth_g / (r WingArea maxCLift) )

Vfe is the maximum speed with flaps extended. It is indicated by the end of the longer white arc in the anemometer. Exceeding this speed with flaps deployed, also partially, causes a flaps failure that makes them unusable. If undefined or set to 0, the Vfe is unlimited.

Vno is the normal operation speed, that is the maximum speed in turbolent air conditions. It is indicated by the beginning of the yellow arc in the anemometer. Flying above this speed in turbolent air, a vertical wind gust of 30 ft/s would cause a vertical positive or negative acceleration above the maximum structural load capacity of the wings. If undefined or set to 0, the Vno is extimated with the following formula:

Vno = 2 earth_g (MaxLoadZNegative + EmptyWeight) / (r WingArea * b * MAX_GUST)
where:
b = 6.302 is the slope of the CLift curve in its linear range; this value was actually calculated for the C‑172RG but it is also very close to that of the other aircraft models, so it is assumed as constant.
MAX_GUST = 30 ft/s is the conventional maximum vertical wind gust intensity assumed as reference to calculate Vno.

Vne is the speed that must never be exceeded. It is indicated by a short red line. Flying above this speed limit the aircraft may suffer a catastrofic structural failure. If undefined or set to zero, this limit does not apply.


    CmAlpha  ‑0.30 # (cmSlope) CmAlpha curve slope
    MaxFuel  9750  # (maxFuel) maximum internal fuel (lb)

    # engine lag factor (how fast does it respond to throttle changes
    EngineLag ‑3.0

    # Engine data based on updated RD‑33K engines cited in [AirI Aug89].
    # (maxThrust) max static thrust, military power (lbf)
    MaxThrust 27000

    # (maxABThrust) max static thrust, afterburner on (lbf)
    MaxABThrust 44000

    HasThrustReverser 0 # 0=no (default), 1=yes

Maximum static military and afterburner thrust values can usually be found in documents that describe aircraft performance. Setting MaxABThrust to the same value of MaxThrust disable the AB for those aircrafts that lack this device. For the conversions, remember that 1 pound = 1 lb g = 4.448 N = 0.4536 Kgf.

The HasThrustReverser parameter tells if the aircraft has a thrust reverse device. Set to 1 if available or 0 if not. If this parameter is missing the default is no. With thrust reverse deployed and engine at the max power, the resulting reverse thrust is calculated as 50% of the max forward thrust.


    Thrust {        # (Thrust) Mach Number vs. thrust
        0,   1,
        1.7, 1.5,
        2.0, 0.84,
        5,   0.5
    }

    ABThrust {      # (ABThrust) afterburner thrust table
        0,   1,
        0.5, 1,
        1,   1.21,
        1.7, 1.7,
        5,   1.64
    }

The Thrust and ABThrust corrects the static thrust value for the aircraft’s Mach number. Unless you have hard information about this, leave these fields alone. The ABThrust table is ignored when the AB device is disabled.


    # (spFuelConsump) specific fuel consump(lb fuel/lb T x hr)
    SpFuelConsump    0.68

    # (spABFuelConsump) AB specific fuel consump(lb fuel/lb T x hr)
    SpABFuelConsump  2.55

These fields define the specific fuel consumption (fuel consumed per pound of thrust per hour). Unless you have hard information about this, leave these fields alone.


    # (viewPoint) pilot’s viewing location wrt CM
    ViewPoint { 14.75, 0, ‑5.375 }

This is the XYZ location relative to the aircraft center of gravity that locates the pilot’s eye view outside of the cockpit.


    # Landing Gear control parameters
    MuStatic   0.08 # (muStatic) static coeff of friction no‑brakes
    MuKinetic  0.05 # (muKinetic) moving coeff of friction no‑brakes
    MuBStatic  0.7  # (muBStatic) static brakes‑on
    MuBKinetic 0.6  # (muBKinetic) moving brakes‑on

These four values characterize the amount of friction that the wheels generate when in contact with the ground. If F is the force (usually a weight) that load a wheel, then F*MuStatic is the friction force when the wheel is at rest; F*MuKinetic when the wheel is rolling. MuBStatic and MuBKinetic have the same meaning with the only difference that the brakes are on. The maximum theoretical value of any of these is 1.0.

NOTE 1. In our landing gear, only the main gear wheel have the brakes; the nose wheel can’t brake.

NOTE 2. The MuKinetic and MuBKinetic are probably misnomers as these coefficients are more commonly known as “MuRolling” instead. Proper “kinetic” coefficients are involved when the wheel skids over the runway, either longitudinally (blocked brakes) or laterally. In ACM‑7.0‑dlc brakes never block, but still wheels can skid laterally over the runway. The coefficient involved in the skidding behaviour is currently hard-coded in the gear.c module. Moreover, the struct breaks when the lateral force applied to the landing gear struct exceeds the empty weight of the aircraft. This limit too is hard-coded into the source program.


    MaxNWDef   72   # (maxNWDef) maximum nosewheel deflection (deg)

The MaxNWDef is the max deflection of the nose wheel, so that the radius of turn of the aircraft is R=Q/sin(MaxNWDef) where Q is the distance between the nose gear and the middle point between the wheels of the main gear (see the figure below).


Diagram of ground turn radius

Radius of turn on the ground



    # (rm) location of right main gear attachments {x,y,z} (ft)
    Rm { ‑2.2, 4, 1.702 }

    # (rn) location of nose gear attachments {x,y,z} (ft)
    Rn { 9.395000, 0, 1.807 }

    Km    18220.7 # main oleo spring factor (lbf/s^2)
    Kn    4278.34 # nose oleo spring factor (lbf/s^2)
    Dm    10000   # main oleo damping factor (lbf s/ft)
    Dn    80      # nose oleo damping factor (lbf s/ft)
    Gm    1.5     # main strut length with tire (ft)
    Gn    1.5     # nose strut length with tire (ft)
    CmMax 1.0     # (cmMax) main max oleo extension distance (ft)
    CnMax 1.5     # (cnMax) nose max oleo extension distance (ft)

Diagram of landing gear forces

Parameters of the landing gear


The parameters Rn and Rm give the positions of the nose and main gear attachements, while Gn and Gm are their total length including the tyre but excluding the oleo extension CnMax and CmMax. As a first approximation of these parameters, you can take these values (all the distances are measured in feet, 1 ft = 0.3048 m):

Rn.x
Longitudinal distance of the nose wheel from the CM, positive for trycicle landing gears, negative for bycicle landing gears.
Rn.y
Always zero.
Rn.z
Vertical distance of the nose gear contact point from the longitudinal axis measured on the plane at rest on the runway, minus CnMax/2.
CnMax
About half foot for light planes, and up to 1.5 feet for larger ones.
Gn
Set to zero, as the only value that really care to the program is the sum Rn.z+Gn and we already included this distance in Rn.z.
Rm.x
Longitudinal distance of the main wheel from the CM, negative for trycicle landing gears, positive for bycicle landing gears.
Rm.y
Lateral distance of the right main wheel from the CM, always positive.
Rm.z
Vertical distance of the main wheel contact point from the longitudinal axis measured on the plane at rest on the runway, minus CmMax/2.
CmMax
About half foot for light planes, and up to 1.5 feet for larger ones.
Gm
Set to zero, as the only value that really care to the program is the sum Rm.z+Gm and we already included this distance in Rm.z.

Every wheel of the landing gear is attached to the aircraft through a spring (K) and a dumper (D). The parameters referring to the main landing gear are the sum for the left and right gear, so the actual parameter for each wheel strut is half of the value reported in the inventory (see the picture above).

The landing gear parameters are difficult to estimate. We will give some simple rule to set good values based on reasonable assumptions.

Km
The main landing gear must sustain most of the weight of the aircraft, so a reasonable rule is to set this spring (left + right) so that the strut be half compressed with the aircraft in its empty weight:

Km = 2 * EmptyWeight / CmMax

For example, if the empty weight is 10000 lbf and the strut maximum extension is 1.5 ft, we have Km = 13300 lbf/ft.

Kn
The nose spring must sustain the static weight that depends on its distance from the CM. Moreover, on bicycle landing gears the nose must sustain also the braking. The resulting formula is:

Kn = 2 * EmptyWeight * (Rm.x + MuBKinetic * Rm.z) / (Rn.x * CnMax)

Note that the distances that appear in this formula have their sign, so usually Rm.x is negative while Rn.x is positive. For bicycle landing gear we can neglet the braking effect, but consider that these aircrafts usually have an higher static pitch for which this simple formula isn’t no more valid.

Dm
The principal role of the dumpig factor in the main gear is to adsorb harder touch-down at high descending speed, when the spring cannot help because is still not compressed. 600 fpm is usually the maximum allowed vertical speed for which aircrafts are tested. That means that the force produced by the dumper when the wheels of the main gear hit the ground is F=Dm*600 fpm. Since in ACM‑7.0‑dlc there is an hard-coded vertical limit to the main gear equal to 3 times the empty weight, the following formula gives a safe value for Dm:

Dm <= 0.2 * EmptyWeight

For example, if the empty weight is 10000 lbf, then dumping factor should not be greater than 2000 lbf*s/ft.

The program GEDIT can be used to determine correct landing gear locations. I then use the program tools/balance.c to generate the appropriate values for the spring factors for each new aircraft type that I create. Note that neither GEDIT nor balance.c currently calculate oleo damping factors.


    # (tailExtent) as we rotate, this part may drag
    TailExtent { ‑18.165, 0.0, 1.191 }

This defines where the aft-most lower part of the aircraft is located. This is the part of the aircraft that may scrape the ground as we rotate. This value is not currently used. Instead we simply limit up-pitch on the ground to 20 degrees.


    StructurePoints 15 # (structurePts) maximum structural damage

This value characterizes how much damage can be absorbed by the aircraft before it simply explodes.


    # Radar data based on N‑019 Pulse Doppler radar cited in [AirI Aug89].
    RadarOutput   15000 # (radarOutput) radar output (watts)
    RadarTRange   38    # (radarTRange) tracking radar range (NM)
    RadarDRange   55    # (radarDRange) detection radar range (NM)
    TEWSThreshold 0     # Radar Warning Receiver threshold (watts)

If you have any information about the radar capabilities of the aircraft, here’s the place for them. The detection range is the maximum range that a target can be seen on radar. No attempt is made to take into account the radar cross section of the target. The track ing range is the range required to get a lock onto the target.


    # Weapons
    WeaponCount 9

Number of weapon hard-points. The following fields are ignored if this value is set to zero, so they can be omitted if the aircraft does not carry weapons at all.


    HardPoint0 { 7.0, ‑4.0, 0.0 }
    HardPoint1 { 0.357, 15.6, 0.0 }
    HardPoint2 { 0.357, ‑15.6, 0.0 }
    HardPoint3 { 1.5, 9.0, 2.0 }
    HardPoint4 { 1.5, ‑9.0, 2.0 }
    HardPoint5 { 1.5, 8.0, 1.5 }
    HardPoint6 { 1.5, ‑8.0, 1.5 }
    HardPoint7 { 1.5, 10.0, 1.5 }
    HardPoint8 { 1.5, ‑10.0, 1.5 }

These are the XYZ locations relative to the aircraft CM of each weapon. By defining these, each missile or cannon fires from its appropriate location on the aircraft.


    WeaponStation   0 "M61A1"   500 0   0
    WeaponStation   1 "AIM‑9M"   0   0   0
    WeaponStation   2 "AIM‑9M"   0   0   0
    WeaponStation   3 "AIM‑9M"   0   0   0
    WeaponStation   4 "AIM‑9M"   0   0   0
    WeaponStation   5 "AIM‑9M"   0   0   0
    WeaponStation   6 "AIM‑9M"   0   0   0
    WeaponStation   7 "AIM‑120"  0   0   0
    WeaponStation   8 "AIM‑120"  0   0   0
}

The WeaponStation directive defines the type of weapon located at each hard point. The first argument is the number of the hard point, that ranges from 0 up to WeaponCount−1. The second argument is the name of the weapon. Then three integer numbers follow whose meaning depends on the specific weapon. The table below summarizes by examples all the available weapons:

Example Notes
WeaponStation 0 "M61A1" 500 0 0
M‑61A1 “Vulcan” cannon. 500 is the number of rounds initially supplied to the cannons. The other two numbers are ignored.
WeaponStation 1 "AIM9M" 0 0 0
AIM9M “Sidewinder”, infra‑red guided, short range, air‑to‑air missile. The other 3 numbers are ignored.
WeaponStation 2 "AIM120" 0 0 0
AIM‑120 “AMRAAM”, radar guided, medium‑range, air‑to‑air missile. The other 3 numbers are ignored.

Defining New Objects

An “object” can be the shape of an aircraft (field Object of the aircraft inventory file) or a feature of the scene file (record FEATURE). The format of the object file, described here, is copied from the ACM Flight Simulator Frequently-Asked Questions List mantained by Brad Bass (bass@convex.com).

The first line is the object name.

The 2nd line has two integers which represent the number of points and the number of polygons in the object.

Then, the points are listed, one per line, with the point id number followed by the X, Y and Z coordinate (North, East, Down). The units are feet.

Finally, the polygons are listed as color, number of corners, and the list of point id numbers. The color may be expressed as a single color or as a front and back color. Also, the polygon can be flagged as “one-sided” -- that is visible only from the front.

For example:


pyramid                  # the object name
5 4                      # the point count and polygon count
1 28000 0 0              # the
2 0 16000 0              #   points that
3 ‑35000 0 0             #     describe
4 0 ‑14000 0             #       the
5 0 0 ‑8200              #         corners
#788b63      3  1 2 5    # side 1 ‑ color (X‑style), cornercount,
                         #   corner list
violet       3  2 3 5    # side 2
(blue red)   3  3 4 5    # side 3 ‑ front is blue, back is red
(green clip) 3  4 1 5    # side 4 ‑ one‑sided polygon

IEEE 1278.1 (DIS) Compliance

As distributed, the DIS implementation supports UDP broadcasts to port 3000 enabling multi-seat interaction via a LAN, so if ACM instances use the "right" DIS parameters, their objects will be visible to each other. While collisions of aircraft are not possible, explosions of missiles and cannon fire enable participants to perpetrate hostilities upon each other. As DIS is an IEEE standard the canonical documentation is not open. However, since the ACM DIS code was last worked on, the Open DIS set of FOSS projects has come into being and even includes multicast transport of datagrams. See this description as a jumping off point for investigating what enhancements to ACM networking may be feasible these days.

ACM emits and recognizes the following DIS PDU Types:



Entity State

Fire

Detonation

Electromagnetic Emission



ACM uses the DIS/x DIS interface library. DIS/x supports dead reckoning of external entities using any of these methods:



Name Enumeration Value

Static 1

FPW 2

RPW 3

RVW 4

FVW 5



These dead reckoning methods are currently unsupported by DIS/x:



Name Enumeration Value

FPB 6

RPB 7

RVB 8

FVB 9

RPW 10

RVW 11



Entities managed by ACM emit entity state PDU’s specifying the RPW(3) dead reckoning method. No articulation parameters are currently sent by entities managed by ACM. As with most current DIS-based simulations, altitudes are expressed as heights above the WGS‑84 ellipsoid, not as heights above the geoid. Dead reckoning threshold values are hard-coded in this version of the product:



Description Value

Maximum time between Entity State PDUs 5 seconds

Dead Reckoning Cartesian distance error 2 meters

Dead Reckoning angular orientation error 3 degrees



When operating in IEEE 1278 mode, the default UDP port number for PDU transmission is 3000.

Transfer Control Protocol

Transfer Control Request PDU

Field
Size
(bits)
Transfer Control Request PDU fields
96 PDU Header

Protocol Version—8‑bit enumeration

Exercise ID—8‑bit unsigned integer

PDU Type —8‑bit unsigned integer

Protocol Family—8‑bit enumeration

Timestamp—32‑bit unsigned integer

Length—16‑bit unsigned integer

Padding—16‑bits unused

48 Originating Entity ID

Site—16‑bit unsigned integer

Application—16‑bit unsigned integer

Entity—16‑bit unsigned integer

48 Receiving Entity ID Site—16‑bit unsigned integer

Application—16‑bit unsigned integer

Entity—16‑bit unsigned integer

32 Request ID 32‑bit unsigned integer
8 Required Reliability Service 8‑bit enumeration
8 Transfer Type 8‑bit enumeration
48 Entity ID to be Transferred Site—16‑bit unsigned integer

Application—16‑bit unsigned integer

Entity—16‑bit unsigned integer

32 Number of Record Sets (R) 32‑bit unsigned integer
96 +
(L1 x Q1)
+ P1
Record Set #1 Datum ID—32‑bit enumeration

Record Set Serial Number—32‑bit unsigned integer

Record Length—16‑bit unsigned integer (L1)

Record Count—16‑bit unsigned integer (Q1)

Record Values—(L1 x Q1) bits

Padding—P1 bits

·

·

·

96 +
(LR x QR)
+ PR
Record Set #R

Datum ID—32‑bit enumeration

Record Set Serial Number—32‑bit unsigned integer

Record Length—16‑bit unsigned integer (LR)

Record Count—16‑bit unsigned integer (QR)

Record Values—(LR x QR) bits

Padding—PR bits

Total Transfer Control Request PDU size:

320 + Sumi=1..R(96 + (Li x Qi) + Pi) bits

where R is the number of Record Sets.

ACM currently ignores record sets in a transfer control PDU.

Transfer Type

This section specifies the 8‑bit enumeration for the Transfer Type field of the Transfer Control PDU.



Field Value Nature
0 Other
1 Controlling application requests transfer of an entity
2 Application desiring control requests transfer of an entity
3 Mutual exchange / swap of an entity
4 Controlling application requests transfer of an environmental process
5 Application desiring controls request transfer of an environmental process
6 Mutual exchange of an environmental



Assuming Ownership

Diagram of ownership assumption process



Accepting Ownership by Request

Another feature of ACM’s transfer control protocol support is that other applications may request that ACM take control of an aircraft that the other application controls.

ACM for Microsoft Windows

While there was a time way back when that someone had ported ACM to run in this environment, it has not been supported or even worked with for years. This section contains the historical documentation for reference but you should expect to do a lot of work to get this software running on a contemporary Microsoft platform.

Source Code

This section contains some information to help you navigate through the ACM for Windows sources.

Here’s a summary of the contents of each of the directories in the source code tree:

source\acm             Toplevel directory for ACM for Windows

source\acm Toplevel directory for ACM for Windows source\acm\pc The MFC‑based front‑end to the simulator This directory holds the main acm.dsw VC++ 5.0 project workspace. source\acm\pc\hlp Help files associated with the project source\acm\pc\res Windows resources (bitmaps, icons, ...) source\acm\src C‑based flight simulator code source\acm\V\lib The 3D graphics library source\acm\V\test source\acm\dis\lib The DIS/x IEEE 1278 library source\acm\dis\test source\acm\dis\disgen IEEE 1278 protocol compiler source\acm\tools Various infrequently used tool sources source\include Supplemental system header files source\oncrpc A Windows port of Sun’s ONC RPC libraries source\rpcgen A Windows port of Sun’s RPCGEN command

Developer Studio Setup

  1. Install this software (if you are reading this, then you have already done that).

  2. Ensure Visual C++ 5.0 has been installed

  3. Install the DirectX Software Development Kit.

  4. Several directories included in the source release must be added to the default search directories. From the Tools>Options… menu in Developer Studio select the Directories tab. Select Include files in the Show Directories for: box. Double click the empty entry at the bottom of the current list and add the c:\sources\include directory – adjust the directory name to suit the correct ACM for Windows source installation location on your system.

  5. From the Tools>Options… menu in Developer Studio select the Directories tab. Select Executable files in the Show Directories for: box. Double click the empty entry at the bottom of the current list and add the c:\bin directory – adjust the directory name to suit the correct ACM for Windows source installation location on your system.

  6. Double click the empty entry at the bottom of the current list and add the c:\DXSDK\sdk\inc directory – adjust the directory name to suit the correct DirectX Software Development Kit installation location on your system. Use the arrow keys to move this item to the top of the directory list. If you do not do this, Visual C++ will incorrectly use the DirectX version 2 include files that shipped with VC++ 5.0.

  7. From the Tools>Options… menu in Developer Studio select the Directories tab. Select Library files in the Show Directories for: box. Double click the empty entry at the bottom of the current list and add the c:\DXSDK\sdk\lib directory – adjust the directory name to suit the correct DirectX Software Development Kit installation location on your system. Use the arrow keys to move this item to the top of the directory list. If you do not do this, Visual C++ will incorrectly use the DirectX version 2 library files that shipped with VC++ 5.0.

  8. Open the main ACM for Windows VC++ workspace. It is named \source\acm\pc\acm.dsw

The basic workspace includes five projects:

acm     \source\acm\pc\acm.dsp              The main program
fsim    \source\acm\src\fsim.dsp            the flight simulation library
vlib    \source\acm\V\lib\vlib.dsp          the 3D graphics library
dis     \source\acm\dis\lib\dis.dsp         the IEEE 1278 DIS library
disgen  \source\acm\dis\disgen\disgen.dsp   a DIS header file generator

Setting up an ACM session


Image of Windows session

Advanced
Use this button to select a different DirectPlay service provider (modem, TCP/IP, direct connect serial, or IPX) or to set IEEE 1278 DIS parameters.



Starting ACM

NOTE. Some versions of the original ACM‑5.0 program were available also for Microsoft Windows. Currently ACM‑7.0‑dlc does not compile on Windows. These notes are still here in the hope some day ACM‑7.0‑dlc will expand its range of supported operating systems.

Image of Windows start-up

Call Sign
Although this is not completely implemented, yet, you may register your aircraft’s call sign – which will used to identify you to other  players.

Aircraft Type
You may select either a MiG‑29M or F‑16C Falcon.

Team
Team locations are defined in the scene file. In the scene file shipped with ACM, team one is based at Addison airport in Dallas, Texas. Team two is based a Sheppard Air Force Base, Wicita Falls, Texas.

Full Screen
If you select full-screen mode, ACM will occupy the full screen (surprise). Currently, the full screen layout is 800x600 and 256 colors.

Appendices

Acronyms

AAM Air‑to‑Air Missile
ACM Air Combat Modeler
AGL Above Ground Level (more precisely, above planetary surface, but not necessarily above man-made artifacts situated on the surface)
AOA Angle Of Attack (also AoA)
ASL Above Sea Level (also MSL)
CAVU Ceiling And Visibility Unlimited
DME Distance Measurement Equipment
DIS Distributed Interactive Simulation
ECM Electronic Countermeasures
FPM Feet Per Minute, the normal unit for rate of climb/descent
HSI Horizontal Situation Indicator
HUD Head‑Up Display
IAS Indicated Airspeed
IFR Instrumental Flight Rules
ILS Instrumental Landing System
IR Infrared
KIAS Knots Indicated Airspeed
KT Nautical Miles per Hour, NM/h.
LOC Localizer
MH Magnetic Heading, the direction referred to the magnetic north pole (see also TH, VAR)
MSL [relative to] Mean Sea Level (also ASL)
NAV Navigation
NDB Nondirectional Radio Beacon
OBS Omni Bearing Selector
RWR Radar Warning Receiver
TAA Target Aspect Angle
TACAN Tactical Air Navigation System
TAS True Airspeed
TEWS Threat Early Warning System—a form of radar warning receiver
TH True Heading, the direction referred to the geographic north pole (see also MH, VAR)
VAR Magnetic variation, the difference between the geographic north and the magnetic north: VAR = TH ‑ MH. For example, VAR=+6=6°E means that the local magnetic north points toward 6° geographic.
VFR Visual Flight Rules
VOR VHF Omnidirectional Radio Range
WP Waypoint

Units of Measurement

Numbers are indicated with 4 significant digits.

Name Symbol Value(1) Equivalences
Time
Second s    
Minute min 60 s  
Hour h 3600 s  
Length
Meter m   3.281 ft = 0.0005400 NM
Foot ft   0.3048 m = 0.0001646 NM
Nautical Mile(2) NM   1853 m = 1.853 Km = 6076 ft
Speed
Knot KT 1 NM/h 0.5144 m/s = 1.852 Km/h = 1.6878 feet/sec
Feet per minute fpm 1 ft/min 0.3048 m/min = 0.005080 m/s
Mass
Pounds lb   0.4536 kg
Kilogram kg   2.205 lb
Slug slug 1 lbf / (1 ft/s2) 32.17 lb = 14.59 Kg
Acceleration
Earth acceleration
at sea level(3)
g   9.806 m/s2 = 32.17 ft/s2
Force
Newton N 1 kg m / s2 0.1020 Kgf = 0.2248 lbf
Kilogram‑force(4) Kgf 1 kg g 9.806 N = 2.205 lbf
Pound‑force(4) lbf 1 lb g 4.448 N = 0.4536 Kgf
Slug‑force(4) slugf slug g 143.1 N = 32.17 lbf

1. A value is given only for those units that are defined in terms of other base units.

2. Nautical miles are a practical length unit used in naval and aerial navigation, as its value is is very close to the length of a arc‑minute measured along a meridian, or the length of a arc‑minute measured along the equatorial line.

3. As Isaac Newton explained, on the Earth at sea level every body fall under its weight with the same acceleration, here indicated with the slanted letter g, not to be confused with the gram unit of mass “g”.

4. The weight is the force with which the Earth attracts bodies toward its center. So it is useful for practical calculations to associate to every mass unit (kg, lb, ...) its corresponding weight‑force unit whose symbol is the same as the mass unit with “f” added. Then, for example, 1 lbf is the weight of 1 lb mass measured on the Earth at sea level.

Suggested Further Reading


The ACM‑7.0‑dlc Pilot Manual ends here.