acm-6.0_20200416 Umberto Salsi <salsi@icosaedro.it>
===================================================
Maintenance release:
+ World Magnetic Model library: updated source code and coefficients to the
  latest version available WMM-2020.
+ Fix: charts updated; NDB frequency unit fixed to "KHz" (was "MHz");
  magnetic variation sign was reversed.
+ Fix: src/dis/test/decoy.exe did not compile under MinGW/Windows.
+ Fix: damage calculation: munitions were mostly ineffective due to a bug
  (introduced by me :-).


acm-6.0_20180725 Umberto Salsi <salsi@icosaedro.it>
===================================================

+ Fixes misleading indentation in source formatting of src/util/zulu.c which is
  detected by newer GCC 6 and 7 as a "warning" and then failing to compile.

+ Fixed PRNG test program, so now src/util/prng.c passes all FIPS 140-1 tests.


acm-6.0_20180402 Umberto Salsi <salsi@icosaedro.it>
===================================================

+ Added new zones from the ourairports.com data base: France zone, Germany zone,
  Spain zone, United Kingdom zone.

+ New tools/ourairports_com program that generates sceneries from the
  ourairports.com data base.

+ New tools/create-ils program that generate ILS scenery record for each RWY
  record found in the given scenery. Used to complete the sceneries created from
  the ourairports.com data base, where all the ILS antennas are missing.


acm-6.0_20171030 Umberto Salsi <salsi@icosaedro.it>
===================================================

      ABSTRACT
      Sceneries are loaded dynamically; flying between sceneries is now possible.
      Departure airport, runway, date and time can now be set.
      By setting a specific date and time, the corresponding Sun position,
      environment lighting and Earth magnetic field are calculated.
      A new tool (faaairports.exe) allows to generate the scenery for any chosen
      area covered by the FAA airports data base, which covers the whole U.S.
      territory. A new tool (chart.exe) allows to generate detailed navigation
      charts in PDF format from any given ACM scenery.

Changes to the configuration files:

+ A new objects/zones.txt file has been added. This zones file lists all the
  known scenery files and the range of latitude and longitude each scenery
  covers. The program now dynamically loads and un-loads sceneries based on the
  current position of the player. The limitation to a single scenery file per
  program run has then been removed.

+ File objects/inventory.txt renamed objects/aircraft.txt.

Changes to the src/acm.exe program:

+ Fixed crash when too many remote entities enter the simulation. The maximum
  number of local and remote aircraft at any given time is 32; the maximum
  number of local or remote munitions and explosions at any given time is 32.
  The program warns when it runs out of free space in its entities tables.

+ A new -departure-time TIMEDATE allows to set the departure date and time.
  Sun position, scene lighting and Earth magnetic field are calculated based
  on this value. The default is the current time retrieved from the internal
  clock. The old "-lighting" (sic) option is not needed anymore -- removed.

+ A new rendering command line parameter allows to choose among flat terrain
  rendering (faster) or tiled terrain rendering (for some speed and altitude
  feedback):

      -ground-mode MODE

  where MODE can be either "flat" (default) or "tiled". On computers with very
  slow screen access time the first mode might be preferred.

+ The clouds layer can now be set with the new command line parameter;

      -clouds-range BASE TOP

  where BASE and TOP are the base and top altitude of the clouds (ft).
  If equal (or top is less than base) no clouds. Clouds are opaque to both
  visible and infra-red light, which implies aircraft can hides inside clouds
  and IR seekers of the missiles cannot lock the target and fly ballistically.
  A clouds layer was already present in the last release of the program, but
  its altitude range was not adjustable. The default now is no clouds.

+ New -force [Other, Friendly, Opposing, Neutral} option to set the force the
  layer belongs to. Old -team {1, 2} option removed. If the player belongs to
  Friendly, its drones are created Opposing and attack any other force; If the
  player belongs to any other force, its drones are created Friendly and attack
  any other force (including the player itself). Drones created by player
  belonging to the Friendly force are Opposing and using MiG-29; drones created
  by player belonging to any other force are Friendly and using F-16.

+ The -scene FILE command line option has been removed; scenery files are
  automatically loaded based on the current position of the player.
  Providing the starting position with the -latitude and -longitude command
  line options is now pretty mandatory: the default start position is 0N 0E :-)

+ Supports ILS types LDA and SDF as synonym of LOCATOR.

+ Maximum tunable NDB frequecncy increased from 499 to 529 KHz.

+ The flight state data page (SHIFT-D) now displays current or simulated time.

+ Finer zoom by steps of about 1.2 factor rather than 2.

New programs and tools:

+ src/chart: a new program that reads an ACM scenery and generates the navigation
  chart. Currently generates PostScript on output, which can be easily translated
  to PDF -- see the readme file for more.

+ tools/faaairports: a new program to parse the US FAA airports data base and
  to generate the corresponding ACM scenery for any given range of latitude and
  longitude. Also added shell scripts that automate the generation of the
  "dallas" scenery and the new "newyork" scenery.

+ The objects/dallas.txt is completely generated with the faaairports tool
  based on the FAA airports data base; now it covers the latitude range
  [30N,35N] and the longitude range [95W,100W] and includes 291 runways (+177%),
  34 ILS (+91%) and 76 NAVAIDs (+15) and it is supposedly more actual.
  A new objects/newyork.txt has been also generated that covers the latitude
  range [40N,45N] and longitude range [70W,75W]. Other regions covered by the
  FAA data base can also be generated.

Changes to the scenery file format:

+ ILS record: added types LDA and SDF; see the reference manual for further
  details about these new types and recommendations about the elevation field.
  For short: LDA and SDF are just like LOCALIZER for the ACM program, but the
  automatic navigation charts generator program is advised a runway end may
  not be available so no error should be emitted.

+ NAV record: field 7 (channel number) is now mandatory and '-' should be
  indicated if not available/unknown; the ACM program does not use it anyway.
  Change made only to simplify parsing programs so that each record has a
  fixed number of fields.

Changes to the acm.tcl launch program:

+ The "You" panel renamed "Plane"; options related to the plane moved here;
  the "Instruments" panel removed.

+ A new "Departure" panel allows to choose the starting position as airport and
  runway, along with altitude and airspeed. Departure date and time can be set.

+ The "Environment" panel allows to chose among flat terrain rendering (faster)
  and tiled terrain rendering (better feedback).

+ The "Environment" panel allows to set the base and top altitude of a tick
  layer of clouds.


acm-5.0-ico-20170914 Umberto Salsi <salsi@icosaedro.it>
=======================================================

  Abstract.
  Sounds support restored. The type of engine can now be specified and a specific
  dynamics is applied. The anemometer now displays Mach's number too. Several
  bugs fixed.

+ Fix modulo bias in random number generation. Now the pseudo-random numbers
  generators has its built-in implementation compliant with the C99, C11
  suggestion in the ISO/IEC 9899.

+ Fix: under Windows, acm.tcl did not displayed the reason for the termination
  of the program. This has been fixed by forcing the creation of a console
  window to capture and preserve the standard output and standard error streams.

+ Fix: C preprocessor macro "WINNT" replaces "WIN32" to support compilation
  under both 32 and 64-bits Windows systems using MinGW.

+ Each aircraft model now has its specific type of engine. Added the "EngineType"
  field to the "aircraft" inventory record that may specify one among these:

     EngineType "NoEngine"
     EngineType "GenericPistonEngine"
     EngineType "GenericJetEngine"
     EngineType "GenericRocketEngine"

  This allows to simulate the proper dynamics and to generate the proper sound
  for each specific type of engine. Default is "NoEngine".

+ Sounds now supported under Windows and under Linux with ALSA drivers. Sounds
  are enabled by default, but can be disabled with the -no-sound command line
  option. At runtime, CTRL-M mute/unmutes sounds. The following sounds are
  currently supported: engine, gear up and down, stall warning, tire "screetch"
  on touchdown, radar lock, TEWS warning, cannon and missile firing, warning, crash.
  The sampled engine sounds (see the objects/sounds directory) are assumed to
  represent 100% RPM; lower RPM are rendered by resampling those sounds at a
  lower frequency.

+ Classic instruments: the anemometer now also displays the Mach number.

+ Engine idle setting is now 20% RPM (not 25%). Reason: too much thrust for
  idle piston engines now that the RPM vs. thrust law is proportional, you had
  to apply brakes very quickly once started!

+ The following aural and textual messages are generated to help the pilot
  landing and flying at low altitude:

  "Warning: gear down!"
  Radar altitude available and descending rate leaves less than 120 seconds to
  extend the gear, but the gear is not fully extended and locked yet.

  "Warning: pull up!"
  Radar altitude available, descending rate too high, no time time left to
  safely extend the landing gear which is not fully extended and locked yet. Or:
  Radar altitude available, descending rate too high to recover within 1.2 G
  vertical acceleration limit before impact.

+ acm.tcl: the Configure panel now has a "Enable sound effects" check box to
  enable audio. Sounds can be enabled or muted at runtime with CTRL-M.

+ Several text files (CHANGES, COPYING, INSTALL, README and TODO) now have their
  ".txt" file name extension.


acm-5.0-ico-20170822 Umberto Salsi <salsi@icosaedro.it>
=======================================================

  Abstract.
  The current magnetic field of the Earth is now calculated based on the
  World Magnetic Model from NOAA. The rendering of the terrain, that was boring
  flat, is now tiled giving some distance and speed feedback; also introducing
  a thick layer of clouds with zero visibility inside. More colors and shades.
  Minor corrections.

+ Fix: under Windows, did not recognized semicolon as directory separator, so
  multiple directories in objects parameter did not worked.

+ Fix: the state of the instruments panel was not updated with the window in
  minimized or iconified state.

+ The magnetic field on the Earth is now calculated using the World Magnetic
  Model library from NOAA (https://www.ngdc.noaa.gov/geomag/WMM/soft.shtml)
  and it is used to display the current magnetic heading of the aircraft, to
  rotate the magnetic compass, and to calculate the magnetic bearing at each
  VOR station. Therefore, the format of the scenery is now a bit simpler as
  reported below. The file of the coefficients objects/WMM.COF provided along
  the package is valid for dates in the range from year 2015 up to year 2019
  included; beyond this range, a warning is displayed and a new updated file
  should be installed.

	It is important to note that the components of the Earth's magnetic field
    are calculated respect to the current date, so updated navigation charts
    may be needed. The navigation charts provided along this package are
    outdated, so magnetic bearings there indicated may differ more or less
    from the calculated values.

  (In the previous versions of the program, the local magnetic variation was
  calculated based on the nearest radio station for which a magnetic variation
  was available in the scenery; the magnetic inclination needed to simulate the
  behavior of the magnetic compass was calculated with a quite raw world-wide
  approximation. In both the cases, the resulting values were not aligned with
  the current date.)

+ Scenery format changes:
  . The magnetic deviation at the radio stations is now removed.
  . The bearing of the localizer must now be reported as geographic (not magnetic).

+ Colors and colors handling completely revised for better rendering.
  Now uses a 17*17*17=4913 colors table rather than only 5*5*5=125. Non-linear
  mapping of the colors look-up table gives higher resolution on darker colors.
  The quite obscure concept (for the user point of view) of "depth cueing steps"
  removed, and then removed the -depth_steps parameter from the application and
  from the launcher interface acm.tcl. There is no more limit to the number of
  colors the program may request (although they are still approximated with those
  available in the colors look-up table).

+ Improved rendering:
  . Introducing terrain tiling effect for motion feeling and depth cue rendering.
  . Introducing clouds layer with zero visibility in the range 5000-12000 ft.


acm-5.0-ico-20170723 Umberto Salsi <salsi@icosaedro.it>
=======================================================

  Abstract.
  ACM now runs natively also under Windows. Others minor fixes and improvements.

Specific of the acm.exe simulator program:
+ Compiles under Windows with the MinGW system development kit generating a true
  native executable that runs "out of the box". Previous compatibility with
  Cygwin + X-Window emulator has then been dropped.
+ Introducing the GUI abstraction module (src/util/gui) with implementations for
  both X-Windows and Windows. Removed any other dependency from a specific GUI
  all around the sources.
+ Rate control, whenever enabled, now working also with "weight on the wheels"
  for smoother rotation maneuver at liftoff.
+ Fix infinite loop in random number generator on systems whose random source
  provides only 15 bits.
+ Fix: killing with missile was nearly impossible, especially over the net. Now
  the relative position of the explosion in the explosion DIS PDU is set and then
  properly used.
+ Audio disabled if no proper lib available (which practically means, no audio :-).
+ The update rate of the dynamic models is now internally tuned to its optimal
  value around 60 Hz and kept tuned around this value independently from the chosen
  frame rate and from the actual resulting frame rate. This improves the numerical
  stability and makes simpler for the user to configure the program.
+ The following command line options have been removed from acm.exe:
  -update-rate (internally tuned).
  -watch-frame-rate (actual frame rate is periodically displayed by default).
  -bw and -cmap (superseded by the abstraction GUI module).

Specific of the acm.tcl launcher interface:
+ Gets iconified while the program runs, avoiding a boring gray dead window.
+ Removed audio and joystick options (still not working, anyway).
+ Removed update rate option (now internally determined).


acm-5.0-ico-20170527 Umberto Salsi <salsi@icosaedro.it>
=======================================================
+ Removed any dependency from the RCP library and XDR library; now ACM has its
  own built-in encoding/decoding routines, fully supporting 32-bits and 64-bits
  processors and with memory leaks detector.

+ Fix memory leaks when decoding of incoming DIS packets fails, which may happen
  on an heterogenous network of applications speaking the DIS protocol.

+ Fix memory leaks releasing DIS packets.

+ Passes incoming random packets stress-test to resist in an hostile network;
  safety and security issues start to be seriously addressed.

+ Automatically generated site ID, once validated in the validation period, does
  not change anymore and no further site IDs collision tests are performed.
  
+ Fix declarations for DIS protocol IEEE 1278.1-1995 compliance:
  fix articulation parameter data structure (not used by ACM anyway, for now);
  fix comment PDU (not used by ACM anyway, for now).


acm-5.0-ico-20170514 Umberto Salsi <salsi@icosaedro.it>
=======================================================

	Abstract.
	Currently compiles under Linux and Cygwin/Windows at 32 and 64 bits.
	Support for the DIS protocol has been restored and multiplayer
	mode works again; clients connect each other either in multicast
	mode or in relay mode through a specific relay program;
	DIS protocol parameters (site ID and application ID) can now be
	assigned automatically (no more need for a SIM/x server).
	IAS (indicated airspeed) and then rate control mode stick have been
	introduced.

Changes to the general layout of the package
--------------------------------------------
+ Removed original configure script, now replaced by several Makefile(s)
  automatically generated using the script make-makefile available from
       http://cvs.icosaedro.it:8080/viewvc/public/tools/

+ Fix to support 64 bits architecture (DIS protocol encoding, acm, gedit).

+ All the sources are under src/ and the test programs under test/.

+ The simxd server has been removed and replaced by new site ID random
  generation and validation algorithm; entities db query not used anyway and
  so the ndbs data base has been removed as well.
  Any dependency from the RPC portmapper services has been removed and
  its configuration is not needed anymore.

+ Most of the source code has been "modularized": each implementation source
  file .c has its own corresponding interface declaration file .h. The only
  exceptions are the programs, where an interface file is not necessary their
  only programming interface being the main() function.

+ The src/dis/server/dis_relay.exe program implements a DIS relay to support
  multiplayer interaction through Internet.

+ The objects/inventory.txt file got the extension '.txt'. The "include"
  statement has been introduced for a more structured inventory.

DIS relay server
----------------
+ The DIS relay program src/dis/server/dis_relay.exe allows several players to
  interact though Internet; it can be started with the command:

      ./dis_relay --port 3000 --debug

  being 3000 the default port. The --debug option displays packets received and
  forwarded. Clients silent from too much time (currently 60 s) are
  automatically removed from the dispatching list.

Changes specific of the src/acm/acm.exe program
-----------------------------------------------
+ Fix crash if the GROUND_COLOR record is missing from scenario.
+ Fix: sometimes the scale of the magnetic compass did not shown.
+ Fix: gravity bombs now work as expected over the DIS protocol.
+ Fix: radar beam sweep angle in the DIS packets is half the angular aperture,
  not the full aperture; units are RAD, not DEG. Added heuristic to continue
  supporting old bugged versions of the program.
+ Fix: radar in standby does not emits energy anymore.
+ Fix: did not set ACM 20x30 radar mode (for what it worth; see TODO).
+ Fix: TEWS did not accounted for emissions from remote entities, so remote
  aircraft were not displayed.
+ Fix: in TEWS, enemies are now drawn as 3 concentric circles to distinguish
  from friends.
+ Fix: drones were fighting against all; funny, but silly. Now they belongs to
  the enemy team and they select properly their target (that is, you!).
+ The program now works as a DIS application, either in broadcast mode or
  in relay mode. To support this latter, two more options have been added:
	-dis-relay-name HOST
    -dis-relay-port PORT
  where HOST and PORT are the DIS relay host and its UDP port. If the HOST is
  not set or it is set to the empty string, use packets broadcasting instead.
  Previous DIS_RELAY envar not supported anymore.
+ Site ID default value is now -1, which triggers site ID automatic assignment.
  A temporary randomly generated site ID is calculated, then the program enters
  a validation period where it listen for incoming packets; if a collision is
  detected, another value is generated.
+ Application ID default value is now -1 which assign the process ID.
+ Option -no-dis removed; now DIS protocol enabled by any -dis-* option.
+ Drones always working, no need to "enable DIS" anymore.
+ Periodically displays DIS protocol state and network performances: total
  number of tracked remote entities; processed DIS packets per second.
+ Periodically displays actual frame rate and update rate.
+ The separator character in directories list is colon under Linux and semicolon
  under Windows to support the -objects option on both platforms.
+ The ground color has now a default flat light green.
+ New rate control mode enabled/disabled with SHIFT-E allows to control the
  roll ratio and pitch ratio.
+ Brakes are now engaged/disengaged smoothly within 1 s.
+ Computes the indicated air speed with compressibility correction as:
  IAS = TAS * sqrt(rho/rho0) * (1.0 + 1.0/8*(1.0 - delta)*M^2)
  being TAS the airspeed along x, rho the air density at the current altitude,
  rho0 the air density at sea level, delta the ratio P/P0 between the current
  air pressure and the pressure at sea level, and M the Mach number.
+ Vne and Vfe are now IAS (not TAS).
+ "Hints" periodically shown to the user are now read from objects/hints.txt.
+ The scenery may include the terrain surface as a FEATURE record; its name must
  start with '#' so it is drawn on the background (quite an hac, but it works!).
+ Mouse buttons meaning changed: left button to fire, right button to change
  weapon. Center button currently not used.
+ Landing gear dynamics: the dumper is now single effect, as it dissipates
  energy only on compression and has no effect on release.
+ Drones now set a proper combat aircraft configuration with gear up, flaps up,
  speed brakes off, APS off.
+ Auto-Pilot:
  + Internal architecture completely redesigned, with pitch rate and roll rate
    control functions as common basic of all the other functions.
  + Pitch and roll rate control law added (SHIFT-E): mouse controls rate.
  + Auto-throttle target speed is now IAS (not TAS).
+ HUD:
  + Radar altimeter removed (it is already available in the instruments panel
    below).
  + Added "Rate" display when rate control law enabled.
  + Changed display of the auto-pilot's currently active mode:
    "AP" --> "VS/ALT"
	"AN" --> "NAV"
    "AT" --> "THR"
	"AW" --> "Turn"
	"AC" --> "Coord"
	"AL" --> "Land"
  + When auto-throttle is engaged, target speed is IAS (left ladder still
    displays TAS).
  + Added air temperature, pressure, density and speed of sound to the
    displayed data (SHIFT-D).
+ Classic instruments panel:
  + Added "Rate" display when rate control law enabled.
  + Changed display of the auto-pilot's currently active mode:
    "AP" --> "VS/ALT"
	"AN" --> "NAV"
    "AT" --> "THR"
	"AW" --> "Turn"
	"AC" --> "Coord"
	"AL" --> "Land"
  + Airpeed indicator now displays IAS.
  + Altitude indicator now has a thousands needle.

Inventory file objects/inventory
--------------------------------
+ Improved structured inventory by adding the

      include "filepath"

  statement; relative filepath is resolved against the directory of the current
  file, so that the referred included file can be in a different directory.
  Same feature enabled for the

      Object "path/model.obv"

  statement inside the aircraft{} record, now allowing a relative path which is
  resolved against the directory of the current file.
+ P51A now has a machine gun.
+ Added UFO aircraft intended to replace remote entities for which a model is
  not available. Also useful to quickly explore maps because of its exceptional
  performances :-)

Changes specific of the acm.tcl launch interface
------------------------------------------------
+ The old "acm.tk" program changed extension becoming now "acm.tcl".
+ Add a "DIS" panel for all DIS related configurations: relay host and port,
  exercise, application and site.
+ Allows for wind speed up to 40 kt (was 20 kt).
+ The update rate can now be set.



acm-5.0-ico-20100109 Umberto Salsi <salsi@icosaedro.it>
+ HUD: pitch scale ladder now rendered in perspective projection, so that it
  matches exactly the pitch as indicated by the FPM (fix).
+ Stall warning: panel light + HUD display + audible alarm.
+ Player whose aircraft is damaged fall down and crashes.
+ More accurate CCIP HUD symbology (use circle rather than cross).
+ Mark 82 bomb blast may damage aircraft.
+ CCIP: corrected position of the CCIP accounting for the pilot's head position.
+ Added keypad button 0 to look down.

acm-5.0-ico-20090215 Umberto Salsi <salsi@icosaedro.it>
+ Added Mark 82 drop bombs with CCIP calculator.
+ Added down view (keypad 0).
+ Inventory: Su-30 now armed with 4 MK82, 2 AIM9M and M61A1 for bombing
  practice with CCIP.

acm-5.0-ico-20090208 Umberto Salsi <salsi@icosaedro.it>
+ FIX: the runway numbers are now rendered in the proper order.
+ FIX: properly evaluates max lateral mouse range.
+ FIX: corrected elevator non-linear response curve.
+ Introduced wind gust model.
+ Anemometer: now displays speed limits arcs.
+ Attitude indicator: increased gyro rigidity.
+ Removed keyboard command 'u'.
+ Auto-Pilot System:
  + Now implemented using the proportional-integrative algo.
  + AC: smooth release.
  + AW: smooth release.
  + AL: performs flare maneuver at lower altitude.
+ Weapons:
  + Enabled radar guided "AMRAAM" missile AIM-120 (previously was disabled).
  + Drone algorithm now uses AIM-120 first, then AIM-9M.
+ Inventory file:
  + Removed unused parameters CLNegStall, CLPosStall, SeTrimTakeoff, CmFactor.
  + Added parameters MTOW, Vs0, Vs1, Vfe, Vno, Vne.
  + Weapons have new canonical names M61A1, AIM-9M, AIM-120, MK82.
  + C-172 has lower pitch.
  + F-16 and MiG-29 now mount 2 AIM-120.
  + MD-80 now has the thrust reverser.
+ Updated manual.

acm-5.0-ico-20080420 Umberto Salsi <salsi@icosaedro.it>
+ FIX: HUD, turn indicator: now shows actual yaw rate.
+ FIX: classic turn&slip indicator: now show turn rate around aircraft z axis.
+ FIX: rendering: show correct downward view at higher zoom factors.
+ Added Thrust Reverser device (currently available only on B-747):
  * Inventory: added parameter HasThrustReverser.
  * Enable/disable thrust reverser with SHIFT-!. To enable, engine setting
    must be idle (<= 25% RPM).
  * Panel: new "THR REV" lights, blinking while the device is moving.
+ AutoLanding, flare maneuver: with tricycle, thrust reverser, lower nose,
  brakes; with bicycle, thrust reverser, raise nose, no brakes.
+ Render: darker night.
+ ADF: added rotatable heading needle for pilot's convenience (7 and 8 to
  move).
+ Manual updated with the new features listed above, and AutoLanding
  procedure fully described.

acm-5.0-ico-20080328 Umberto Salsi <salsi@icosaedro.it>
+ BUG FIXED: now works also with 8-bit and 16-bit color depth (please choose
  accordingly the "Color depth steps" parameter now available in acm.tk).
+ BUG FIXED in magnetic compass scale labels.
+ Now compiles under GCC 4.
+ Aerodynamic forces fully implemented also on the ground.
+ Landing gear model rewritten, now it deals with the roll moment, wheels
  skidding, detect max lateral load on all the landing gears, steering
  effectiveness reduced at high speed.
+ Bicycle landing gear now supported.
+ Added P-51A "Mustang" to the inventory (first bicycle gear available).
+ Starting airborne, set pitch 3 DEG and gear retracted.
+ The parameter -heading now sets MH (not TH).
+ Auto-Pilot System: introduced max bank limiter from 5 to 25 DEG.
+ New option -drone_mode [DOG_FIGHT | HUNTING].
+ New panel light "G-LOAD" blinks above 75% max wings load.
+ Inventory file:
  * GroundingPoint parameter removed since now it is calculated at run-time
    along a proper rest pitch, so that the aircraft can be deployed gently over
    the runway.
  * MaxNWS parameter removed since now steering effectiveness gets reduced as
    far as the velocity increases, reproducing some "resistance" feedback to
    lateral acceleration.
  * NWIncr parameter removed as the keyboard cannot be used to steer.
  * If Object parameter undefined do not display aircraft chase view
    rather than simply crash the program.
+ Source changes:
  * Vlib and Alib reorganized as "C modules", extensively introduced the
    concept of "Rect", old Win32 code moved into a sub-dir.
  * The number of polygons that may be rendered is now unlimited.
  * New module src/vpath_gallery that implements common drawings.
  * Removed all the bitmaps images, now implemented with vpath. All the
    graphics routines now based on Vlib, no more X Window calls spread.
  * Module src/vlist properly renamed as "viewer".
  * HUD ladder and HSI compass scale now generated at run-time, so removed
    tools/horizon.c and tools/hsi_header.c.

acm-5.0-ico-20080209 Umberto Salsi <salsi@icosaedro.it>
+ New: cockpit view now rendered in accurate scale based on
  screen resolution (pixel/meter) and on the distance of the eye from the
  screen. The downward angle of view can also be specified.  The command
  line parameters -eye_to_screen_cm and -downward_view_angle_deg were also
  added. The -scale parameter then removed.
+ New: zoom with +/- keys, ranging from x0.125 up to x4.
+ HUD now rendered more realistically with smaller dimension
  and moved downward 3 DEG (or, nose pointer move up 3 DEG) so that the
  center of the HUD is very close to the point toward we are flying to or
  we are aiming to.
+ New: SHIFT-$ enable combat in drone mode.
+ Smarther drones do not crash to the ground (almost :-) anymore.
+ Splash screeen removed; copyright info displayed with -copyright switch.
+ acm.tk: support for new parameters "eye distance from screen" and
  "downward angle of view".

acm-5.0-ico-20071002 Umberto Salsi <salsi@icosaedro.it>
+ AL: now performs flare maneuver, touch-down and braking,
  faster recovery of misalignment from LOCATOR
+ AP: new algorithm that improves stability and responsiveness
+ AN: smoother maneuvering at small deviation angles
+ NEW: radar altimeter now available in the instruments panel
+ Automatic fuel resupply now disabled -- restart the program to fill the tank
+ Enlarged HUD

acm-5.0-ico-20070905 Umberto Salsi <salsi@icosaedro.it>
+ BUG fixed that prevented compilation under gcc 4.
+ NEW: VOR/DME radio signal can no more be received above the horizon of sight
  (see the manual for details).

acm-5.0-ico-20070831 Umberto Salsi <salsi@icosaedro.it>
+ BUG: crash trying to set altimeter offset or pitch offset in HUD mode: fixed.
+ NEW: magnetic compass.
+ NEW: RNAV calculator.
+ NEW: support for NDB stations.
+ NEW: ADF receiver.
+ NEW: option -hud-mode.
+ Dallas scene: restored existing NDBs, updated nav. charts.
+ Italy scene: added known NDB, updated nav. charts.
+ Now starts in classic instruments mode rather than HUD mode (but see also
  the new -hud-mode option).
+ Now starts in MH mode rather than TH mode.
+ Now starts with HSI enabled.

acm-5.0-ico-20070725 Umberto Salsi <salsi@icosaedro.it>
+ BUG: crash when at rest on the runway: fixed
+ BUG: turn indicator of the classic instrument panel now displays the
  actual turn rate around the vertical axis of the aircraft (not the turn
  rate around the zenith)
+ NEW: you can set the altimeter offset in the range 28-31 inHg
+ NEW: aircraft description: added MaxLoadZPositive and MaxLoadZNegative
+ Drone aggressiveness (option -da) now sets the fraction of the max load
  at which drones will maneuver. Drones now behave more realistically
  maneuvering within their structural limits.
+ acm.tk: now manages the -da option
+ Removed AutoCoord, AutoThr and AutoPilot warning lights from the panel:
  classic instruments mode and HUD mode already provide these alarms
+ B-747: increased elevator effectiveness

acm-5.0-ico-20070715 Umberto Salsi <salsi@icosaedro.it>
+ NEW: classic instruments panel: attitude indicator, anemometer,
  altimeter, turn&slip indicator, vertical speed indicator. Press SHIFT-H
  to toggle between the HUD mode and the classic instruments panel.
  Read the manual for details about the classic instruments characteristics,
  their limitations and usage.
+ NEW: flight by night option -lighting daylight|night
+ NEW: mouse mode option -mouse-mode fast|normal|precise
+ NEW: SHIFT-Z to engage the AP in hold-altitude mode

acm-5.0-ico-20070709 Umberto Salsi <salsi@icosaedro.it>
+ acm.tk: the Mig-29 wasn't displayed, now it is (BUG FIX)
+ auto-navigation with VOR (AN)
+ auto-pilot:
  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
+ C-172RG: engine power and drag coeff. tuning.

acm-5.0-ico-20070621 Umberto Salsi <salsi@icosaedro.it>
+ nose wheel now can attain the specified angle of steering (BUG FIX)
+ corrected TAS indication with wind (BUG FIX)
+ conflicting NAV on the same freq.: now only nearest gets received (BUG FIX)
+ the payload can now be specified (see option -payload WEIGHT)
+ new airplanes: AMX, MD-81
+ the '7' key rotates OBS of 10 DEG (not 20 DEG)
+ acm.tk: now it gathers the planes from the inventory file (no hard-coded)

acm-5.0-ico-20061022 Umberto Salsi <salsi@icosaedro.it>
+ acm/tk: now you can choose your team
+ auto-turn feature (keys ,.<>/|)
+ AP: smoother release
+ AL: now bank angle limited to 25 DEG (no more limits on turn rate)
+ removed unused open socket that sometimes saturated the CPU
+ manual updated accordingly
+ C-172RG: reduced engine power to closely match performances of the real
  plane (max climb rate, max speed)

acm-5.0-ico-20060529 Umberto Salsi <salsi@icosaedro.it>
+ auto-landing system (AL)
+ auto-pilot: now uses a faster dynamic model of the elevator
+ now 'Home' resets ailerons/elevator trim and disable AP/AT/AL
+ (rough) estimation of the ground effect
+ inventory file: new parameter "WingHeight"
+ if no NETAUDIO nor HPAUDIO, try sending audio data directly to /dev/dsp
+ audio module completely reworked
+ chaser module removed (not used)
+ mouse control: no fuzz zone
+ updated Unix man page
+ manual updated accordingly
+ Unix "man page" updated
+ acm.tk: displays on stdout the resulting command used to start ACM

acm-5.0-ico-20060507 Umberto Salsi <salsi@icosaedro.it>
+ AC: response time reduced
+ AT: out-of-range alarm now raised properly
+ HUD: now indicate the effective total airspeed
+ B-747: increased rudder effectiveness to attain 3DEG/s at 185 kts

acm-5.0-ico-20060505 Umberto Salsi <salsi@icosaedro.it>
+ autothrottle controlling the TAS
+ manual updated accordingly
+ italy.acmscene, Genova-Sestri airport: fixed up ILS

acm-5.0-ico-20060502 Umberto Salsi <salsi@icosaedro.it>
+ 'd' detach commands from the window
+ handle properly window focus in/out (you can leave ACM in background)
+ double HSI receiver - press 'SPACE' to switch NAV1/NAV2
+ source reorganized - every *.c module now has its *.h
+ improved rendering of the engine gouge and gear handle
+ afterburner disabled on aircraft lacking this device
+ to exit from the program press SHIFT-Q twice

acm-5.0-ico-20060427 Umberto Salsi <salsi@icosaedro.it>
+ optional true heading (TH) or magnetic heading (MH) indication (SHIFT-M)
+ HSI: displays the current selected TH/MH mode
+ HSI: digital display of the OBS
+ HUD, heading scale: displays TH or MH
+ some source clan-up based on the gcc -Wall complains :-)
+ manual: updated with the changes above
+ manual: now explains the terrain model and the "step line" problem
+ Italy scene: 8 more airports, 25 more NAVAIDS, more navigation charts.
+ bug fix: "Color Segment pool overflow" and crash

acm-5.0-ico-20060416 Umberto Salsi <salsi@icosaedro.it>
+ BUG FIX (the autocoordinator was always engaged)

acm-5.0-ico-20060415 Umberto Salsi <salsi@icosaedro.it>
+ autocoordinator controlling the rudder
+ HUD: now displays a bank indicator

acm-5.0-ico-20060409 Umberto Salsi <salsi@icosaedro.it>
+ HUD: now displays a radar altimeter
+ fixed up bug in flight calculations (calcAlphaBetaVT())

acm-5.0-ico-20060402 Umberto Salsi <salsi@icosaedro.it>
+ HUD, pitch ladder: added -1, -2 and -3 degrees markers
+ navigation charts now include average magnetic variation
+ dallas.acmscene: improved ILS alignment to their runways
+ italy.acmscene: improved ILS alignment to their runways

acm-5.0-ico-20060326 Umberto Salsi <salsi@icosaedro.it>
+ autopilot controlling the elevator
+ acmscene file format: new RWY2 record type
+ acmscene file format: DME only NAVAIDs now allowed
+ scene rendering: displays runway numbers
+ objects/inventory, Boeing 747: speed brakes, elevator effectiveness
+ objects/dallas.scene: minimal updates and corrections
+ objects/italy.acmscene: +Firenze-Peretola, +Napoli-Capodichino
+ improved navigation charts
+ undocumented SHIFT-D feature displaying debugging infos

acm-5.0-ico-20060319 Umberto Salsi <salsi@icosaedro.it>
+ new italy.acmscene (only north Italy, by now)
+ dallas.scene: minimal updates and corrections
+ better navigation charts

acm-5.0-ico-20060314 Umberto Salsi <salsi@icosaedro.it>
+ range of ILS stations now limited to 18 nm
+ range of terminal VOR now limited to 40 nm
+ range of en-route VOR now limited to 200 nm
+ the HSI now looses/acquires the tuning accordingly to the previous changes
+ manual updated accordingly - see section "The HSI" for details
+ "acmscene" file format, RWY record: fields 10 and 11 removed (not used)
+ improved navigation charts

acm-5.0-ico-20060307 Umberto Salsi <salsi@icosaedro.it>
+ HSI: always display the CDI of the ILS locator
+ magnetic variation for NAV and ILS can be fractional (ex.: "1.3E")
+ gedit compile properly under Linux
+ added chart BB.pdf

acm-5.0-ico-20060301 Umberto Salsi <salsi@icosaedro.it>
+ manual: now explain the landing gear parameters in more detail
+ twoOrder() in src/pm.c sometimes generates NAN and crashes the program:
  rewritten

acm-5.0-ico-20060215 Umberto Salsi <salsi@icosaedro.it>
+ acm.tk: new radio button "Debug" to debug through GDB
+ lateral accel. indicator: every tick now is 0.25 g
+ fix that prevent pm.c/twoOrder() from generating NAN values as result
+ fuel level: better precision for low fuel level (required for the C-172)

acm-5.0-ico-20060202 Umberto Salsi <salsi@icosaedro.it>
+ HUD: now displays the TAS along the x-axis of the plane (see "-wind" opt.)
+ HUD: now displays a turn and slip indicator
+ HUD: now displays a timer -- press 't' for start/stop/reset
+ HSI: now displays the NAVAID 4-char ID
+ HSI: rendering enlarged and improved
+ HSI, ILS: does not display CDI if we are outside of the station beam
+ HSI, ILS: every dot now is 0.4 degrees regardless to the station
+ new option "-wind WD/WV" that sets the wind direction (DEG) and speed (kt)
+ new option -scale FACTOR that sets the scale of the rendering
+ new option -no-splash that disable the initial splash-screen
+ new option -no-dis that disable the DIS protocol
+ SHIFT-P generates screen shoot into /tmp/acm-dump-*
+ fixed up minor bugs that prevented the compilation under GNU/Linux
+ upper-case letters are now reserved for future extensions of the program
+ displays flaps (fix)
+ displays the engine settings at the start of the program (fix)
+ moved the manual into doc/manual/
+ added flying charts about the default scene (see doc/charts/)
+ added Boeing 747 to objects/inventory
+ added objects/man.obv
+ new option -objects path1:path2:... for objects directories
+ new option -help and -version
+ new option -no-sound
+ new option -fuel FUEL-LB; use MaxFuel if this opt is not specified
+ added program acm.tk to the distributed package
+ on abnormal termination (crash, damage, etc.) displays an explanatory message
+ the opts -latitude and -longitude now support the format DD-PP-SS.SSSQ
+ fuel resupply rate: +10% every 30 seconds
+ if no weapons available for the plane, disable weapons display/select/fire

2006-01-05
+ starting playing around the source of the original version acm-5.0 from
  www.websimulations.com.



From here on: changes list made to ACM-5.0 by Riley Rainey (circa dec 1998).
============================================================================


What's different with revision 5.0:
-----------------------------------

Current ACM documentation may be found in the file "acmdoc.rtf".


        --------------------- UPDATE ------------------------
        The reference manual is now in HTML format under the
		doc/manual directory, with the new features described.
        U.S. 2017-04-03
        -----------------------------------------------------

ACM now dynamically maps DIS entity identifiers to rendered objects.  The
mapping is defined in the file "objects/object-map.txt".

ACM now has a more flexible scheme for determining aircraft damage.  See the
file "objects/munition-map.txt".

ACM now supports reading DXF object description files.  This support isn't
exhaustive, but it works with many popular 3D CAD programs capable of
exporting DXF files.

The V library object description file suffix was changed from ".obj" to
".obv" to avoid conflicting with Microsoft object file names.

A bug in the new scene reader code was preventing 'FEATURES' (special
ground based features) from being rendered.  The default.acmscene file now
contains an example of a ground feature reference -- the tower at Addison
airport.

Support for the GNU --srcdir option to 'configure'.  Michael Deutschmann
(ldeutsch@mail.netshop.net) suggested changes to support this as well
as numerous autoconfig enhancements.


        --------------------- UPDATE ------------------------
        I removed the configure script, now replaced by seve-
		ral Makefile automatically generated with
		make-makefile.
        U.S. 2017-04-03
        -----------------------------------------------------

Several changes have been made to allow ACM to compile and link
cleanly on Linux systems.  ACM's configure now looks for a /usr/lib/games
directory and installs ACM's object files there if it is present.

Mats Lofkvist fixed several bugs relating to DIS processing.

The DIS/x library now supports more DIS dead reckoning methods.
All static and world-based methods are now supported.  Body
frame methods remain unsupported.

Missiles will no longer fire while weight is on the landing gear.

Mark Cianfaglione (markcia@nortel.ca) suggested changes to landing gear
handling.  Now the gear will not come up until weight is off the wheels.
At Mark's suggestion, the low fuel light now comes on when there is
fifteen percent fuel remaining -- it used to be hard coded to come on
any time there was less than 1000 lbs of fule on-board.

Misha Stephanov <misha@hp1.physics.uiuc.edu> pointed out two one-line,
but significant bugs in update.c and damage.c.  Misha also suggest
a changes to landing gear handling to detect when someone is unlucky
enough to attempt a gear-up landing.

ACM now has a basic DIS Stealth capability.

ACM supports numerous new command line options, all of which are
documented in the acmdoc.rtf file.


What's different with revision 4.8:
-----------------------------------

The world is now round -- er, spheroidal. When you enter the ACM world, you 
are placed on runway 15 at Addison airport in Dallas, Texas [my aircraft's
home base ;-) ].  The scene databases now include realistic radio navigation
aid information as well as runway location information. With this info 
integrated into ACM, you can fly more real instrument approaches.
If you'd like to try, you should get a copy of the current
National Ocean Service [NOS] terminal procedures [approach plates]
South Central Volume 2. I will try to get permission to scan and distribute a
few with the release of ACM.

Only the Dallas scene database is currently available.

Use your PC joystick with ACM!  Support for the Colorado Spectrum
Workstation Gameport(tm) has been added to ACM.  This gameport adapter
allows you to connect a PC joystick to a serial line on your UNIX
workstation.  The Workstation Gameport can be ordered from Colorado
Spectrum by phone: +1 (970) 225-6929; it currently lists for $100.
The Workstation Gameport is a different design than the Notebook
Gameport that you will find in your local PC retail store.  The Notebook
Gameport will not work with ACM.

WARNING:  This support is currently incomplete.  The joystick driver has been
temporarily hard-wired to interface to two-axis joysticks.  To enable joystick
operation, type:

	$ acm -js /dev/cua1

The name of the serial port connected to the gameport is supplied as the
second argument.  The device name will vary from one system to the next 
(/dev/cua1 corresponds to the direct-connect port "B" on my Sparc IPX).

Mats Lofkvist has integrated ACM with the U.S. Navy Postgraduate School's
Distributed Interactive Simulation software (called NPSNET).  As the name
implies, DIS is a simulation information interchange protocol that allows
distributed servers (ACM servers, in this case) to work cooperatively.

I have replaced Mats' use of NPSNET with a DIS library that I created.  This
library implementation should be more portable.

Using DIS means that if you are using ACM in a multiplayer environment, you'll
see much better overall performance.  

The DIS protocol relies on broadcast UDP datagrams. Therefore, all ACM
players must currently run on the same subnet (UDP broadcasts are not
propagated beyond a subnet).  There are DIS bridges available that
would potentially relax this restriction, but none have been tested with
ACM yet.

The ACM server (acms) has been eliminated.  Invoke acm by simply
typing 'acm'.  Check the acm man page for information about new
command-line arguments and switches.

A font problem that manifested itself on AIX/Windows has been fixed.

Fixes for Linux compatibility problems in ACM 4.7 were submitted by 
Jeremie Petit (petit@aurora.unice.fr).


What's different with revision 4.7:
-----------------------------------

A problem with V library 3-D to 2-D mapping has been fixed.

A problem with the V library could cause this esoteric error message on some
X servers:
	
	BadPixmap (invalid Pixmap parameter)

The fix to this problem was identified by Brent Holland.


What's different with revision 4.6:
-----------------------------------

Sound support has been added for many HP platforms.  Philippe-Andre Prindeville
made the changes required for ACM to function with the HP-UX audio API.
Configure no longer assumes that the NCD netaudio library is the only only one
named "libaudio.a".

Cloud layers can now be used to affect combat conditions.  A single cloud
top/base can be set.  This solid cloud layer is opaque to IR emissions, so
you will have a hard time shooting down an opponent who is on the other side
of the clouds.  The default cloud base is 2800 feet, tops at 9000 feet.
It is not currently possible to "turn-off" clouds.

Portability problems with ACM's usage of the random number generators rand()
and random() have been fixed.

A problem with architectures where a "long" is not the size of an "int" (DEC
Alphas) has been fixed.


What's different with revision 4.5:
-----------------------------------

The HUD compass and HSI were pointing to true north rather than to magnetic
north.  This has been fixed.  The magnetic variation has been set to
eight degrees east (it can be changed in navaid.c).  This means that the
18-36 runways at both team's airfields are actually 17-35 runways; the runway
heading for the ILS 17 approach at team one's airfield is 172 degrees;  the
runway heading for the ILS 36 approach at team two's airfield is 352 degrees.

A field has been added to the navaid description structure to account for
the fact that ILS localizers have a variable beam width (three to six degrees
according to the FAA Airman's Information Manual).  The two ILS approaches
have been adjusted so that their beam widths are 700 feet wide at the runway
threshold (per the standard).

Porting problems with Solaris 2.3 and DEC Alpha OSF/1 have been fixed.
Thanks to Bill Davidson, Peter Asenstorfer, and S.Y. Ni.

A problem in the VOR TO/FROM logic was pointed out by Jeff Westbrook and has
been fixed.

A problem with monochrome support was fixed by Jeff Westbrook.

ACM's configuration facility was rebuilt using autoconf 1.9.


What's different with revision 4.4:
-----------------------------------

Simple visual depth cueing has been added to ACM.  Depth cueing is only
activated on color or grey-scale screens that have at least 8 bit planes.
Visibility can be set using the "-visibility" switch on the acms command
line.  It produces interesting, if slow, results when used with any of the
Hawaiian Island scenes.  I intend to improve the performance and visual
fidelity of this feature.

A bug in the depth cueing color blending code has been fixed.

Fixes to src/makefile.in and V/lib/Makefile.in have been applied.  A
"make depend" target has been added.


What's different with revision 4.3:
-----------------------------------

Drones will now maneuver and attempt to attack you with missiles.
The original inspiration and code changes were supplied by 
Jason Nyberg (nyberg@ctron.com).  The drone tracking method was modified 
and the missile launch logic was created by Riley Rainey.

A bug in the AIM-9 time-to-target HUD calculation was fixed.

Support for NCD's netaudio software has been added.  The NCD netaudio software
is free and available in source form via anonymous ftp from ftp.x.org.

Netaudio 1.1 does not allow the user to switch the audio output port on
a Sun IPX (an IPX has both an internal speaker and an external jack for
headphones or separate speakers).  You can switch ports by using the SunOS
/usr/demo/SOUND/x_soundtool before executing acms.

The scene file format has been modified slightly.  The third line is
now the color to be used for the "ground".

The kauai-scene, oahu-scene and maui-scene files display environments
around those Hawaiian islands.  Terrain elevation data was extracted from
USGS one degree Digital Elevation Model (DEM) data files.  Because of the
complexity of these scenes, rendering speed is unacceptably slow on all but
the fastest contemporary workstations.

A bug in the V library backface clipping code was fixed by Tim Love.

A bug in the V library was resulting in oddly colored instrument panels at
seemingly random times.  This has been fixed.

A problem with the landing gear parameters on the F-16 has been fixed.

Acms 4.2 core dumped on AIX systems.  This has been fixed.  Tom McConnell
supplied the changes.


What's different with revision 4.2:
-----------------------------------

Several nits reported by CodeCenter have been repaired by Brad Bass.

Makefiles now use the $(MFLAGS) macro, where needed.


What's different with revision 4.1:
-----------------------------------

Ultrix and HP-UX make(1) was having problems with the $(MAKEFLAGS) directive in
V/Makefile.in.  It has been removed.  It's removal should not affect the
build process.

The Ultrix 4.3 shell was having problems with "./configure".  The problem
has been fixed.

A problem in "./Makefile" that would cause a mis-identification of the
default target has been fixed.

ClipPoly.c was unused in ACM 4, but has been updated so that it compiles.

A problem in inventory.c that was causing the nose-wheel steering mode to
stay enabled at all times has been fixed.  This problem was pointed-out by
      _
Mats Lofkvist (d87-mal@nada.kth.se).


What's different with revision 4.0:
-----------------------------------

Combat Simulation
-----------------

Mig-29's are now the default team two plane.

The HUD display has been improved.

A bug in the missile tracking algorithm that would induce misses when the
target was moving at a high speed has been fixed.

ACM now supports situation recording and playback.  The "{" key will start
recording, the "}" key ends it.  The positions of all aircraft existing
during the recording period will be saved in the file "./back_box_output".
That file can be played back by moving it to the file "./black_box_input".
Activate the playback by pressing the "[" key while you're in ACM.

DME, VOR's, Localizers, and Glide Slopes have been added.  An HSI has been
added to provide VOR and ILS readouts.  

To activate the HSI, press the 'R' key.  Each press of the 'R' key cycles
through RADAR -> HSI -> RADAR STANDBY.  The Omni Bearing Selector is moved
20 degrees with the '7' key, and one degree with the '8' key.  The '9' key
increases the NAV frequency by 1 MHz, the '0' key increases it by 0.05 MHz.
The selected frequency is displayed at the lower right-hand section of the HSI.

If you want to shoot an ILS approach, I suggest the following settings:

LEVEL FLIGHT:
	power	45 %RPM
	flaps	20
	gear	up
	speed brake  deployed as needed
	speed	~ 150 kts

ON GLIDE SLOPE:
	power	35 %RPM
	flaps	20
	gear	down
	speed brake  retracted
	speed	140-150 kts
	AOA	10-11 degrees

When you shoot the ILS 17 approach, don't forget to set the OBS dial to
the runway heading (172 degrees).  Otherwise, you'll get a very
confusing picture of which way to fly.
This approach configuration gives you a good opportunity to practice
soft landings.


Flight Simulation
-----------------

Engine response is no longer instantaneous.  Engine RPM (power) will
increase and decrease gradually to a newly selected setting.

The aircraft simulation model has been changed substantially.  Tim Tessin
uncovered a bug in pm.c that was substantially degrading the performance
of all aircraft in high angle of attack situations. It's been fixed.

Several problems with the lift-curve determination have been fixed.
The lift coefficient is now determined by interpolation.  The lift contribution
of flaps has been modified to be more consistent with reality.

Aircraft control surface effectiveness has been increased substantially.
I believe that this increase in consistent with a more realistic simulation.

ACM now models aircraft motion on the ground more accurately.  ACM actually
models the spring and motion damping effects of the landing gear struts, as
well as the contribution of ground friction by the wheels.

A problem with the roll dynamics of the flight simulation model pointed out
by Tim Tessin has been fixed.  The roll model (no pun intended) has been
substantially re-worked to be able to use standard NACA stability
derivatives to describe aircraft roll performance.

The pitch and yaw dynamics have been modified to use NACA derivatives.

The outside view has been modified.

The F-16 flight model has been modified to be more well behaved; lateral 
and longitudinal motion damping coefficients have been increased.


The Graphics
------------

The graphics have been re-vamped to be much faster on color workstations.
Monochrome graphics are slower.

Object clipping has been improved in the V library to improve rendering
performance.


The Guts of ACM
---------------

ACM now participates in the X11 WM_CLOSEDOWN and WM_DELETE_WINDOW protocols.

The directory structure has been modified to get the object description
files out of the source directory.  Object files now all have a '.obj'
extension.  The 'make install' target has been improved.

Aircraft descriptions are now defined in the file "objects/inventory".

Terrain layout is now described using a "scene" file.  Acms accepts a
"-s scene-file-name" command line option. The file "default.acmscene" describes
the default layout.

A periodic alarm facility has been added in the guts of ACM.  See alarm.[hc]
for details.  An example of its use can be found in navaid.c; it is used
to periodically update DME readouts on all aircraft.  It is designed to be
compatible with variants of ACM that modify deltaT on the fly.

The radar display has been modified to be more closely coupled to the V
library.  This code was borrowed from the ACM 4.0 version.

If no geometry specification is supplied, the ACM server now computes a
reasonable window geometry based on the screen's width.

Keypad view selection has been added for Sun systems with some help from
Keith Fredericks (keith@cray.com).



What's different with revision 2.4:
-----------------------------------

Missiles now use a more realistic target tracking method, known as proportional
navigation guidance.

Sustained aircraft load factors at high speeds are now limited to a range of
about +10.0 to -4.0 gees.

More math portability problems have been worked-around.  src/manifest.h
contains the definition NEEDS_COPYSIGN.  You may comment this out if your
system supports the IEEE copysign function.

This revision has been tested with X11R5.


What's different with revision 2.3:
-----------------------------------

This revision repairs several portability problems uncovered in revision 2.2.

A problem with IEEE math in interpolate.c has been worked-around.  Invalid
interpolation requests (which shouldn't happen in ACM) will now result in
messages being printed to standard error.

Several debugging code fragments are now only conditionally compiled. See
manifest.h for more information.

A problem controlling aircraft resupply could generate unexpected errors
from a system's sqrt function ("sqrt: domain error", for example). It has been
fixed.


What's different with revision 2.2:
-----------------------------------

Explosions now appear in the skies of ACM.  Explosions will appear when an
aircraft is struck by a missile or cannon shell.  Players go out with a
bang, too.

The flight simulation model has been tweaked to allow for spins.  I don't
think you can really spin an F-16, but if you'd like to try it in ACM, do
this: build up some airspeed in level flight and then go vertical (pitch
up to ninety degrees, or thereabouts).  Cut the throttle and afterburner
and keep the nose pointed vertically.  Eventually, the F-16 will begin to
fall back to earth -- and typically enter a spin.  The only recovery 
procedure that I've tried that works is to apply full forward (down)
elevator to break the stall; then re-apply power.

Elevator trim has been added.  The (J) key sets to the elevator trim to
be equal to the current elevator setting.  The (U) key resets it to the
normal takeoff setting.  Typically, you'll get the aircraft into the
pitch configuration that you want (e.g. level flight) and then press the
(J) key -- then move the elevator control to the neutral position
(the center of the HUD).

Aircraft now have functioning landing gear.  The (G) key acts as the landing
gear handle.  A landing gear handle and status lights are located to the right
of the radar set.

Each aircraft now carries a limited number of air-to-air missiles (eight, to
be precise). 

Aircraft can now be re-armed and re-fueled on the ground.
To do this, a player must land successfully at the team's home airfield
and come to a complete stop.  After an interval of not greater than 30
seconds, the aircraft will be completely re-armed and refueled.  Aircraft
damage is repaired, as well.

Acm's reaction to the resizing of its window has been improved substantially.

The code handling the HUD altitude, airspeed, and heading ladders has been
improved.

A problem with acms dumping core when it cannot access the graphics
description files has been fixed.  Thanks go to Mark Moraes.

Acm now makes an effort to select an appropriate X Visual to run in.  These
changes are based on code supplied by Mark Hall.

A problem with unwanted NoExpose events on monochrome displays was fixed
by Georges Lauri.

Acm's usage of the X DISPLAY environment variable has been improved with the
help of some code from Michael Pall.  Now systems where the ACM server is
running on the same system as the X server can get "unix:*" and "local:*"
connections.


GENERAL NOTES
-------------

This software is divided into three major parts: the 3-D graphics routines,
the DIS library and the flight simulator itself.  The 3-D stuff is contained
in the V directory.  V/lib holds the library itself.  V/test contains a 
program that can be used to test your port of the V library. The dis
directory holds the Distributed Interactive Simulation library.

`src' contains the remainder of the flight simulator.

Comments and suggestions to improve this software are welcome.

Several "features" in this revision of the software:

	* flaps and landing gear can be lowered at rediculously high speeds.

	* you can fly through mountains.

	* engines do not flame-out.

README: patchlevel-4.8
