FFGo: Difference between revisions

Jump to navigation Jump to search
Update: new release available and links to external sites
m (→‎Related content: The built-in launcher will probably support Qt ≥ 6 at some point, if not already the case)
(Update: new release available and links to external sites)
Line 7: Line 7:
| type                  = Graphical launcher for FlightGear
| type                  = Graphical launcher for FlightGear
| initialrelease        = 1.0.0 (Aug 21, 2015)
| initialrelease        = 1.0.0 (Aug 21, 2015)
| latestrelease          = 1.12.7 (June 2, 2020)
| latestrelease          = 1.12.9 (April 2, 2025)
<!-- simplifying Python3 to Python for the category to work correctly-->
<!-- simplifying Python3 to Python for the category to work correctly-->
| writtenin              = Python
| writtenin              = Python
| writteninversion              = 3
| writteninversion              = 3
| os                    = Unix-like (incl. Linux), Windows, MacOS X
| os                    = Unix-like (incl. Linux), Windows, MacOS X
| developmentstatus      = Low maintenance (as of June 2020)
| developmentstatus      = Low maintenance (as of April 2025)
| website                = http://frougon.net/projects/FFGo/
| website                = https://frougon.net/projects/FFGo/
| license                = {{wikipedia|WTFPL#Version 2|WTFPL version 2|noicon=1}}
| license                = {{wikipedia|WTFPL#Version 2|WTFPL version 2|noicon=1}}
}}
}}
Line 21: Line 21:
== Features ==
== Features ==


One of the things that distinguish FFGo from other FlightGear launchers is the text window allowing one to write any (possibly advanced) [[Command_line_options|command line options]] that will be passed to FlightGear. This is similar, but more convenient and powerful, to editing the [[Fgfsrc|.fgfsrc]] configuration file. The main difference in power compared to editing .fgfsrc or using FGo! comes from FFGo's use of [http://frougon.net/projects/CondConfigParser/ CondConfigParser] to process the user's configuration. See [http://frougon.net/projects/FFGo/doc/README-conditional-config/ FFGo conditional config documentation] for more information on this aspect of FFGo.
One of the things that distinguish FFGo from other FlightGear launchers is the text window allowing one to write any (possibly advanced) [[Command_line_options|command line options]] that will be passed to FlightGear. This is similar, but more convenient and powerful, to editing the [[Fgfsrc|.fgfsrc]] configuration file. The main difference in power compared to editing .fgfsrc or using FGo! comes from FFGo's use of [https://frougon.net/projects/CondConfigParser/ CondConfigParser] to process the user's configuration. See [https://frougon.net/projects/FFGo/doc/README-conditional-config/ FFGo conditional config documentation] for more information on this aspect of FFGo.


In addition to this, FFGo offers:
In addition to this, FFGo offers:
Line 28: Line 28:
* possibility to choose between identically-named aircrafts based on which directory they are stored in (using tooltips in the aircraft list);
* possibility to choose between identically-named aircrafts based on which directory they are stored in (using tooltips in the aircraft list);
* easy selection of startup runway or parking position, offering startup locations from apt.dat if there is no groundnet-defined parking position for the selected airport;
* easy selection of startup runway or parking position, offering startup locations from apt.dat if there is no groundnet-defined parking position for the selected airport;
* detailed airport, runway, helipad and parking tooltips. Airport tooltips show things such as airport type (land airport, seaplane base or heliport), latitude, longitude, elevation, number of land runways, water runways, helipads, magnetic variation... Runway/helipad tooltips show runway type, length and width, surface type, magnetic as well as true heading, etc. Parking tooltips show similar information as runway tooltips, plus maximum aircraft radius, reserved airline codes... (note: The [http://geographiclib.sourceforge.net/html/MagneticField.1.html MagneticField] program from [http://geographiclib.sourceforge.net/ GeographicLib] is needed for magnetic data)
* detailed airport, runway, helipad and parking tooltips. Airport tooltips show things such as airport type (land airport, seaplane base or heliport), latitude, longitude, elevation, number of land runways, water runways, helipads, magnetic variation... Runway/helipad tooltips show runway type, length and width, surface type, magnetic as well as true heading, etc. Parking tooltips show similar information as runway tooltips, plus maximum aircraft radius, reserved airline codes... (note: The [https://geographiclib.sourceforge.io/html/MagneticField.1.html MagneticField] program from [https://geographiclib.sourceforge.io/ GeographicLib] is needed for magnetic data)
* easy consulting of METAR data for the nearest station relatively to the selected airport (if any);
* easy consulting of METAR data for the nearest station relatively to the selected airport (if any);
* a ''Pressure Converter'' dialog to convert between inches of mercury (inHg) and hectopascals (hPa);
* a ''Pressure Converter'' dialog to convert between inches of mercury (inHg) and hectopascals (hPa);
Line 133: Line 133:
The Airport Finder dialog, accessible under the Tools menu, allows one to easily find airports using various criteria: distance to a chosen, “reference airport”; number of land runways, water runways, or helipads; length of the longest or shortest runway in the airport, etc. Results are listed in a table giving these criteria for each airport as well as the initial and final bearings for the shortest path from or to the reference airport. The table of results can be sorted according to airport ICAO code, name or any of the aforementioned criteria (click on a column header to sort according to the corresponding field; click a second time on the same column header to reverse the sort order).
The Airport Finder dialog, accessible under the Tools menu, allows one to easily find airports using various criteria: distance to a chosen, “reference airport”; number of land runways, water runways, or helipads; length of the longest or shortest runway in the airport, etc. Results are listed in a table giving these criteria for each airport as well as the initial and final bearings for the shortest path from or to the reference airport. The table of results can be sorted according to airport ICAO code, name or any of the aforementioned criteria (click on a column header to sort according to the corresponding field; click a second time on the same column header to reverse the sort order).


This dialog is fairly versatile, but one of the uses it is particularly well-suited for is to find a start airport in the desired range with respect to a given airport. For instance, let's say you saw on the [[MPMap|multiplayer map]] that someone is offering [[Air traffic control|Air Traffic Control (ATC)]] services at MHTG (just an example), and you are looking for an airport that is neither too close, nor too far from MHTG in order to take off from there and land at MHTG, following instructions from the air traffic controller. Since it is possible, in the Airport Finder dialog, to sort found airports based on bearings from, or to the reference airport, you can also easily find airports that are, for instance, located more or less north-east of the reference airport. Many, many other things are possible. cf. [http://forum.flightgear.org/viewtopic.php?f=18&t=27054&p=269261#p268159 this forum message for more details].
This dialog is fairly versatile, but one of the uses it is particularly well-suited for is to find a start airport in the desired range with respect to a given airport. For instance, let's say you saw on the [[MPMap|multiplayer map]] that someone is offering [[Air traffic control|Air Traffic Control (ATC)]] services at MHTG (just an example), and you are looking for an airport that is neither too close, nor too far from MHTG in order to take off from there and land at MHTG, following instructions from the air traffic controller. Since it is possible, in the Airport Finder dialog, to sort found airports based on bearings from, or to the reference airport, you can also easily find airports that are, for instance, located more or less north-east of the reference airport. Many, many other things are possible. cf. [https://forum.flightgear.org/viewtopic.php?f=18&t=27054&p=269261#p268159 this forum message for more details].


=== The GPS Tool dialog ===
=== The GPS Tool dialog ===
Line 153: Line 153:
== Installation tips ==
== Installation tips ==
=== Instructions — Read this first! ===
=== Instructions — Read this first! ===
Since installation instructions may in general depend on the particular FFGo version you want to install, they are always included in release tarballs and zip files, precisely in the <tt>docs/INSTALL</tt> folder. Such tarballs and zip files can be downloaded from [http://frougon.net/projects/FFGo/ FFGo's home page] as well as from [https://pypi.python.org/pypi/FFGo FFGo's page on PyPI] (PyPI being [https://pypi.python.org/pypi the Python Package Index]). However, apart from the addition of a small number of optional dependencies, the installation method hasn't changed since FFGo 1.0.0, therefore there is little risk for now using the online [https://github.com/frougon/FFGo/blob/master/docs/INSTALL/INSTALL_en Git version of the installation guide].
Since installation instructions may in general depend on the particular FFGo version you want to install, they are always included in release tarballs and zip files, precisely in the <tt>docs/INSTALL</tt> folder. Such tarballs and zip files can be downloaded from [https://frougon.net/projects/FFGo/ FFGo's home page] as well as from [https://pypi.python.org/pypi/FFGo FFGo's page on PyPI] (PyPI being [https://pypi.python.org/pypi the Python Package Index]). However, apart from the addition of a small number of optional dependencies, the installation method hasn't changed since FFGo 1.0.0, therefore there is little risk for now using the online [https://github.com/frougon/FFGo/blob/master/docs/INSTALL/INSTALL_en Git version of the installation guide].


The guide mentioned in the previous paragraph is rather detailed, because it explains a few concepts that may be new to users who are not Python developers, and tries to give general instructions covering all common cases, which is not very easy given that Python may or may not be shipped depending on the particular operation system in use (Windows, Linux, MacOS X, etc.). To the contrary, the following sections give specific instructions applicable in the most common cases on each OS where I know a working procedure. They are more practical, probably easier to follow than the installation guide, at the expense of being less generic.
The guide mentioned in the previous paragraph is rather detailed, because it explains a few concepts that may be new to users who are not Python developers, and tries to give general instructions covering all common cases, which is not very easy given that Python may or may not be shipped depending on the particular operation system in use (Windows, Linux, MacOS X, etc.). To the contrary, the following sections give specific instructions applicable in the most common cases on each OS where I know a working procedure. They are more practical, probably easier to follow than the installation guide, at the expense of being less generic.
Line 165: Line 165:
Typical FFGo installation on Windows is easy, because there is no system Python shipped with Windows, therefore there is no risk of messing up your Windows installation by just installing or upgrading Python packages. The instructions below assume you have no existing Python installation on your Windows system.<ref name="SampleWindowsInstall.WhenHavingPythonAlreadyInstalled">If you do, the general principle is the same, but you'll have to make sure to invoke ''pip'' for the right Python installation, for instance with:<br/>
Typical FFGo installation on Windows is easy, because there is no system Python shipped with Windows, therefore there is no risk of messing up your Windows installation by just installing or upgrading Python packages. The instructions below assume you have no existing Python installation on your Windows system.<ref name="SampleWindowsInstall.WhenHavingPythonAlreadyInstalled">If you do, the general principle is the same, but you'll have to make sure to invoke ''pip'' for the right Python installation, for instance with:<br/>
: <code>py -3.5 -m pip install FFGo Pillow geographiclib</code><br/>
: <code>py -3.5 -m pip install FFGo Pillow geographiclib</code><br/>
to run ''pip'' with a Python 3.5 installation</code> (not having Windows, I haven't been able to test this myself; please remove this parenthesis if this works, otherwise report on the [http://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo thread on the FlightGear forum] with enough details to allow me to help you).</ref> There we go:
to run ''pip'' with a Python 3.5 installation</code> (not having Windows, I haven't been able to test this myself; please remove this parenthesis if this works, otherwise report on the [https://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo thread on the FlightGear forum] with enough details to allow me to help you).</ref> There we go:


<ol type="1">
<ol type="1">
Line 319: Line 319:
   </ul>}}
   </ul>}}


The instructions given above install all dependencies of FFGo, except one optional dependency: the [http://geographiclib.sourceforge.net/html/MagneticField.1.html MagneticField] executable from [http://geographiclib.sourceforge.net/ GeographicLib] (see [[FFGo#A word about GeographicLib|below]]). To have a complete installation, that is able to show the magnetic variation at each airport and magnetic headings for runways, routes, etc., you need to do this in addition:
The instructions given above install all dependencies of FFGo, except one optional dependency: the [https://geographiclib.sourceforge.io/html/MagneticField.1.html MagneticField] executable from [https://geographiclib.sourceforge.io/ GeographicLib] (see [[FFGo#A word about GeographicLib|below]]). To have a complete installation, that is able to show the magnetic variation at each airport and magnetic headings for runways, routes, etc., you need to do this in addition:


<ol>
<ol>
   <li>
   <li>
     <p>
     <p>
       Go to [http://geographiclib.sourceforge.net/html/install.html#binaryinst GeographicLib's installation page] and run the appropriate installer for your system. This will install the <tt>MagneticField.exe</tt> executable on your computer. Take note of the folder it is installed to, because you'll have to tell the full path of this program to FFGo, unless you let the GeographicLib installer modify your <tt>PATH</tt> environment variable.
       Go to [https://geographiclib.sourceforge.io/C++/doc/install.html GeographicLib's installation page] and run the appropriate installer for your system. This will install the <tt>MagneticField.exe</tt> executable on your computer. Take note of the folder it is installed to, because you'll have to tell the full path of this program to FFGo, unless you let the GeographicLib installer modify your <tt>PATH</tt> environment variable.
     </p>
     </p>
     <gallery mode="packed">
     <gallery mode="packed">
Line 337: Line 337:
   <li>
   <li>
     <p>
     <p>
       <tt>MagneticField.exe</tt> needs one or more datasets to be installed, otherwise it can't work properly. To get such a dataset, go to [http://geographiclib.sourceforge.net/html/magnetic.html GeographicLib's page for magnetic models] and install the magnetic model data file(s) of your choice. <tt>wmm2015</tt> should be fine until 2020. You may also install the <tt>emm2015</tt> dataset, however I can't say whether this will bring any visible change for typical aviation usage.
       <tt>MagneticField.exe</tt> needs one or more datasets to be installed, otherwise it can't work properly. To get such a dataset, go to [https://geographiclib.sourceforge.io/C++/doc/magnetic.html GeographicLib's page for magnetic models] and install the magnetic model data file(s) of your choice. <tt>wmm2015</tt> should be fine until 2020. You may also install the <tt>emm2015</tt> dataset, however I can't say whether this will bring any visible change for typical aviation usage.
     </p>
     </p>
     <gallery mode="packed">
     <gallery mode="packed">
Line 362: Line 362:


<strong>If for some reason you can't run <tt>pip</tt>:</strong>
<strong>If for some reason you can't run <tt>pip</tt>:</strong>
# Write down exactly what you did, copy the error messages, take screenshots to make sure you won't miss anything, and report your problem in [http://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo's thread on the FlightGear forum].
# Write down exactly what you did, copy the error messages, take screenshots to make sure you won't miss anything, and report your problem in [https://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo's thread on the FlightGear forum].
# If you feel adventurous and want to solve the problem all by yourself, a user reported success using the get-pip.py script as explained on [https://pip.pypa.io/ the pip home page].  Personally, I would first try running something like <code>py -3 -m ensurepip</code> from a Command Prompt, but both methods should work to install <tt>pip</tt> into a Python installation where it is missing (<code>py -3</code> invokes the [https://docs.python.org/3/using/windows.html#launcher Python Launcher for Windows] to automatically find the latest Python 3.x installation present on your system; you can use <code>py -3.5</code> to invoke Python 3.5, etc.).
# If you feel adventurous and want to solve the problem all by yourself, a user reported success using the get-pip.py script as explained on [https://pip.pypa.io/ the pip home page].  Personally, I would first try running something like <code>py -3 -m ensurepip</code> from a Command Prompt, but both methods should work to install <tt>pip</tt> into a Python installation where it is missing (<code>py -3</code> invokes the [https://docs.python.org/3/using/windows.html#launcher Python Launcher for Windows] to automatically find the latest Python 3.x installation present on your system; you can use <code>py -3.5</code> to invoke Python 3.5, etc.).


Line 473: Line 473:
Florent Rougon. They can be downloaded and installed normally using
Florent Rougon. They can be downloaded and installed normally using
''apt-get'', ''aptitude'', etc. provided you have installed
''apt-get'', ''aptitude'', etc. provided you have installed
[http://frougon.net/OpenPGP-key.asc Florent's OpenPGP key].
[https://frougon.net/OpenPGP-key.asc Florent's OpenPGP key].


<ul>
<ul>
Line 489: Line 489:
</syntaxhighlight>
</syntaxhighlight>


the output of which should show the [http://frougon.net/keys.html correct fingerprint]:
the output of which should show the [https://frougon.net/keys.html correct fingerprint]:


<pre>pub  rsa4096/0xC785B90B5053A3A2 2010-03-17 [expires: 2016-10-19]
<pre>pub  rsa4096/0xC785B90B5053A3A2 2010-03-17 [expires: 2016-10-19]
Line 508: Line 508:
attacks—using <tt>/tmp</tt> instead of <tt>~/tmp</tt> wouldn't be a great idea).</li></ol>
attacks—using <tt>/tmp</tt> instead of <tt>~/tmp</tt> wouldn't be a great idea).</li></ol>
</li>
</li>
<li>The other way is getting [http://frougon.net/OpenPGP-key.asc the key] from [http://frougon.net/ Florent's home page] (it is linked from [http://frougon.net/keys.html that page] on Florent's site). In short, assuming you have the <tt>wget</tt> package installed, you can get the key with:
<li>The other way is getting [https://frougon.net/OpenPGP-key.asc the key] from [https://frougon.net/ Florent's home page] (it is linked from [https://frougon.net/keys.html that page] on Florent's site). In short, assuming you have the <tt>wget</tt> package installed, you can get the key with:


<syntaxhighlight lang="shell" enclose="div">
<syntaxhighlight lang="shell" enclose="div">
wget -O ~/tmp/flo-key http://frougon.net/OpenPGP-key.asc
wget -O ~/tmp/flo-key https://frougon.net/OpenPGP-key.asc
</syntaxhighlight></li>
</syntaxhighlight></li>
Once you have that key in the file <tt>flo-key</tt>, you can install it for <tt>apt</tt> by running, <i>as root</i>:
Once you have that key in the file <tt>flo-key</tt>, you can install it for <tt>apt</tt> by running, <i>as root</i>:
Line 522: Line 522:


<syntaxhighlight lang="shell" enclose="div">
<syntaxhighlight lang="shell" enclose="div">
wget -O- http://frougon.net/OpenPGP-key.asc | apt-key add -
wget -O- https://frougon.net/OpenPGP-key.asc | apt-key add -
</syntaxhighlight>
</syntaxhighlight>


Line 535: Line 535:
<p>Add the following lines to your <tt>/etc/apt/sources.list</tt>:</p>
<p>Add the following lines to your <tt>/etc/apt/sources.list</tt>:</p>


<pre>deb http://frougon.net/debian-ffgo unstable main
<pre>deb https://frougon.net/debian-ffgo unstable main
deb-src http://frougon.net/debian-ffgo unstable main</pre>
deb-src https://frougon.net/debian-ffgo unstable main</pre>


<p>(replace <i>unstable</i> with <i>stretch</i> if you are using Debian 9, also known as <i>stretch</i>)</p>
<p>(replace <i>unstable</i> with <i>stretch</i> if you are using Debian 9, also known as <i>stretch</i>)</p>
Line 576: Line 576:
<pre>/usr/sbin/geographiclib-get-magnetic minimal</pre>
<pre>/usr/sbin/geographiclib-get-magnetic minimal</pre>


This will automatically download and install a minimal dataset under <tt>/usr/share/GeographicLib/magnetic</tt>, where it can be found by <tt>MagneticField</tt> (not registering the added files with <tt>dpkg</tt> though, which is a bit ugly, cf. [https://bugs.debian.org/687253 Debian bug #687253]). Otherwise, you can read the [http://geographiclib.sourceforge.net/html/MagneticField.1.html MagneticField(1) manual page] which explains how to tell MagneticField where he should look to find the datasets it needs.}}
This will automatically download and install a minimal dataset under <tt>/usr/share/GeographicLib/magnetic</tt>, where it can be found by <tt>MagneticField</tt> (not registering the added files with <tt>dpkg</tt> though, which is a bit ugly, cf. [https://bugs.debian.org/687253 Debian bug #687253]). Otherwise, you can read the [https://geographiclib.sourceforge.io/html/MagneticField.1.html MagneticField(1) manual page] which explains how to tell MagneticField where he should look to find the datasets it needs.}}


Once the <tt>ffgo</tt> package is installed, FFGo can be run from the [http://freedesktop.org/ freedesktop] menu and, obviously, from the command line (the command name is <tt>ffgo</tt>).
Once the <tt>ffgo</tt> package is installed, FFGo can be run from the [https://www.freedesktop.org/ freedesktop] menu and, obviously, from the command line (the command name is <tt>ffgo</tt>).
</li>
</li>
</ul>
</ul>
Line 663: Line 663:
<p><em><strong>First session:</strong> installing FFGo (and some of its
<p><em><strong>First session:</strong> installing FFGo (and some of its
dependencies, such as
dependencies, such as
[http://frougon.net/projects/CondConfigParser/ CondConfigParser])
[https://frougon.net/projects/CondConfigParser/ CondConfigParser])
using <tt>pip</tt> in a virtual environment.</em></p>
using <tt>pip</tt> in a virtual environment.</em></p>


Line 784: Line 784:
<li><p><em><strong>Second session:</strong> installing some of FFGo's
<li><p><em><strong>Second session:</strong> installing some of FFGo's
dependencies (such as
dependencies (such as
[http://frougon.net/projects/CondConfigParser/ CondConfigParser])
[https://frougon.net/projects/CondConfigParser/ CondConfigParser])
using <tt>pip</tt> in a virtual environment, while using FFGo directly from a
using <tt>pip</tt> in a virtual environment, while using FFGo directly from a
clone of its [https://github.com/frougon/FFGo Git repository].</em></p>
clone of its [https://github.com/frougon/FFGo Git repository].</em></p>
Line 952: Line 952:
(cf. [https://github.com/pypa/pip/issues/59 pip issue #59]). However, with a
(cf. [https://github.com/pypa/pip/issues/59 pip issue #59]). However, with a
bit of plumbing, it is possible to write a script that does that: see
bit of plumbing, it is possible to write a script that does that: see
[http://forum.flightgear.org/viewtopic.php?f=18&t=27054&start=105#p274118 this message on the FlightGear forum]
[https://forum.flightgear.org/viewtopic.php?f=18&t=27054&start=105#p274118 this message on the FlightGear forum]
for an example (the error handling may be imperfect, so watch the updates as
for an example (the error handling may be imperfect, so watch the updates as
they are going if you use such a script).
they are going if you use such a script).
Line 1,079: Line 1,079:
=== A word about GeographicLib ===
=== A word about GeographicLib ===


[http://geographiclib.sourceforge.net/ GeographicLib] is a powerful C++ library that can perform many kinds of geographic calculations (such as finding the shortest “walkable” path between two points on Earth), and also provides information about Earth's magnetic field. This library has been written by researcher Charles F. F. Karney, who designed well-known algorithms to solve the geodetic direct and inverse problems.
[https://geographiclib.sourceforge.io/ GeographicLib] is a powerful C++ library that can perform many kinds of geographic calculations (such as finding the shortest “walkable” path between two points on Earth), and also provides information about Earth's magnetic field. This library has been written by researcher Charles F. F. Karney, who designed well-known algorithms to solve the geodetic direct and inverse problems.


Apart from the C++ library and accompanying programs such as [http://geographiclib.sourceforge.net/html/MagneticField.1.html MagneticField], Charles Karney provides a standalone Python 2 & 3 implementation of the geodetic algorithms. This Python implementation is what you get when running commands such as (depending on your setup):
Apart from the C++ library and accompanying programs such as [https://geographiclib.sourceforge.io/html/MagneticField.1.html MagneticField], Charles Karney provides a standalone Python 2 & 3 implementation of the geodetic algorithms. This Python implementation is what you get when running commands such as (depending on your setup):


<syntaxhighlight lang="shell" enclose="div">
<syntaxhighlight lang="shell" enclose="div">
Line 1,099: Line 1,099:
* GeographicLib's MagneticField program.
* GeographicLib's MagneticField program.


The former is normally obtained via pip, while the latter comes with the “full GeographicLib package” as published on [http://geographiclib.sourceforge.net/ GeographicLib's home page].
The former is normally obtained via pip, while the latter comes with the “full GeographicLib package” as published on [https://geographiclib.sourceforge.io/ GeographicLib's home page].


== Related content ==
== Related content ==
* [http://frougon.net/projects/FFGo/ FFGo's home page]
* [https://frougon.net/projects/FFGo/ FFGo's home page]
* [http://frougon.net/projects/FFGo/doc/README-conditional-config/ FFGo conditional config documentation]
* [https://frougon.net/projects/FFGo/doc/README-conditional-config/ FFGo conditional config documentation]
* [http://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo's thread on the FlightGear forum]
* [https://forum.flightgear.org/viewtopic.php?f=18&t=27054 FFGo's thread on the FlightGear forum]
* [[FGo!]] — ''predecessor to FFGo''
* [[FGo!]] — ''predecessor to FFGo''
* [[FlightGear Launch Control]] (a.k.a. FGRun)
* [[FlightGear Launch Control]] (a.k.a. FGRun)
417

edits

Navigation menu