<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><HTML> <META NAME="GENERATOR" CONTENT="TtH 1.57"> <title>FlightGear Flight Simulator - Installation and Getting Started</title> <H1 align=center>FlightGear Flight Simulator - Installation and Getting Started</H1> <p> <H3 align=center> Michael Basler (<a href="mailto:pmb@knUUt.de">pmb@knUUt.de</a>)<br> Bernhard Buckel (<a href="mailto:buckel@wmad95.mathematik.uni-wuerzburg.de">buckel@wmad95.mathematik.uni-wuerzburg.de</a>)<br> <p> <img src="start.gif"><br> </H3> <H3 align=center>March 7, 1999</H3> <p> <H1>Contents </H1><A href="#tth_chAp1" >1 Want to have a free flight? Take <i>FlightGear </i>!</A><br>chapter.1 <A href="#tth_sEc1.1" >1.1 Yet another Flight Simulator?</A><br>section.1.1 <A href="#tth_sEc1.2" >1.2 A short history of <i>FlightGear </i></A><br>section.1.2 <A href="#tth_sEc1.3" >1.3 System requirements</A><br>section.1.3 <A href="#tth_sEc1.4" >1.4 Whom this guide is addressed to and how it is organized</A><br>section.1.4 <A href="#tth_chAp2" >2 Getting the engine: Installing OpenGL graphics drivers</A><br>chapter.2 <A href="#tth_sEc2.1" >2.1 3DFX under Linux</A><br>section.2.1 <A href="#tth_sEc2.2" >2.2 Rendition Chipset under Windows 98/NT</A><br>section.2.2 <A href="#tth_sEc2.3" >2.3 RIVA TNT Chipset under Windows 98/NT</A><br>section.2.3 <A href="#tth_sEc2.4" >2.4 3DFX chip based boards under Windows 98/NT</A><br>section.2.4 <A href="#tth_sEc2.5" >2.5 OpenGL software rendering under Windows 98/NT</A><br>section.2.5 <A href="#tth_chAp3" >3 Building the plane: Compiling the program</A><br>chapter.3 <A href="#tth_sEc3.1" >3.1 Compiling under Linux</A><br>section.3.1 <A href="#tth_sEc3.2" >3.2 Compiling under Windows 98/NT</A><br>section.3.2 <A href="#tth_chAp4" >4 Preflight: Installing <i>FlightGear </i></A><br>chapter.4 <A href="#tth_sEc4.1" >4.1 Installing the Binaries</A><br>section.4.1 <A href="#tth_sEc4.2" >4.2 Installing Support files</A><br>section.4.2 <A href="#tth_chAp5" >5 Takeoff: How to start the program</A><br>chapter.5 <A href="#tth_sEc5.1" >5.1 Starting under Linux</A><br>section.5.1 <A href="#tth_sEc5.2" >5.2 Starting under Windows 98/NT</A><br>section.5.2 <A href="#tth_sEc5.3" >5.3 Command line parameters</A><br>section.5.3 <A href="#tth_sEc5.3.1" >5.3.1 General Options</A><br>subsection.5.3.1 <A href="#tth_sEc5.3.2" >5.3.2 Features</A><br>subsection.5.3.2 <A href="#tth_sEc5.3.3" >5.3.3 Initial Position and Orientation</A><br>subsection.5.3.3 <A href="#tth_sEc5.3.4" >5.3.4 Rendering Options</A><br>subsection.5.3.4 <A href="#tth_chAp6" >6 Flight: Keystrokes, the HUD and all that</A><br>chapter.6 <A href="#tth_sEc6.1" >6.1 Keyboard commands</A><br>section.6.1 <A href="#tth_sEc6.2" >6.2 The head up display</A><br>section.6.2 <A href="#tth_chAp7" >7 Landing: Some further thoughts before leaving the plane</A><br>chapter.7 <A href="#tth_sEc7.1" >7.1 Those, who did the work</A><br>section.7.1 <A href="#tth_sEc7.2" >7.2 What remains to be done</A><br>section.7.2 <A href="#tth_chAp8" >8 Missed approach: If anything refuses to work</A><br>chapter.8 <A href="#tth_sEc8.1" >8.1 General problems</A><br>section.8.1 <A href="#tth_sEc8.2" >8.2 Potential problems under Linux</A><br>section.8.2 <A href="#tth_sEc8.3" >8.3 Potential problems under Windows95/NT</A><br>section.8.3 <p> <H1><A NAME="tth_chAp1"> Chapter 1 </A><br>Want to have a free flight? Take <i>FlightGear </i>!<A NAME="free"> </A></H1> <p> <H2><A NAME="tth_sEc1.1"> 1.1</A> Yet another Flight Simulator?</H2> Did you ever want to fly a plane yourself, but lacked the money or skills to do so? Do you belong to those real pilots, who want to improve their skills without having to take off? Do you want to try some dangerous maneuvers without risking your life? Or do you just want to have fun with a more serious game not killing any people? If any of these questions applies, PC flight simulators are just for you. <p> If you are reading this you might have got already some experience either using Microsoft<a NAME="Microsoft11"> </a>'s © FS98<a NAME="FS9811"> </a>, Looking Glass<a NAME="Looking Glass11"> </a>' © Flight Unlimited II<a NAME="Flight Unlimited II11"> </a> or any other of the commercially available PC flight simulators. As the price tag of those is usually within the 50$ range buying one of it should not be a serious problem given the fact, that running any serious PC flight simulator requires a hardware within the 1500$ range, despite dropping prices, at least. <p> Why then that effort of spending hundreds or thousands of hours of programming to build a free simulator? Obviously there must be good reason to do so: <p> <UL> <li> All of the commercial programs have a serious drawback: They are made by a small group of developers defining their properties - often quite inert and not listening too much to the customer. Anyone ever trying to contact Microsoft<a NAME="Microsoft11"> </a> will immediately agree. <li> Commercial PC flight simulators usually try to cover a market segment as broad as possible. For obvious reason, most of them want to serve the serious pilot as well as the beginner and the gamer. The result are compromises. As <i>FlightGear </i>is free, there is no need for such compromises; it just can be given the properties its users want. It defines itself via building. <li> Building a flight simulator is a challenge to the art of programming. Contributing to that project makes you belong to those being able to contribute to serious, ambitious and advanced software projects. <li> It is fun. Not only is it fun to write the code (... or documentation...) but also to belong to that - temporarily changing - club of clever people on the net having discussed, struggled and finally succeeded in creating that project. Even reading the <i>FlightGear </i> mailing lists is informative and fun for itself. </UL> <p> The above-mentioned points make <i>FlightGear </i>different from other competitors in several respect. <i>FlightGear </i>aims to be a civilian,<a NAME="Flight simulator+civilian11"> </a> multi-platform,<a NAME="Flight simulator+multi-platform11"> </a> open,<a NAME="Flight simulator+open11"> </a> user-supported,<a NAME="Flight simulator+user-sported11"> </a> user-extensible<a NAME="Flight simulator+user-extensible11"> </a> simulator: <p> <UL> <li> <b>Civilian:</b><a NAME="Flight simulator+civilian11"> </a> The <i>FlightGear </i> project is primarily aimed to civilian flight simulation. It should be appropriate for simulating general aviation as well as civilian aircraft. However, according to the open concept of development, that sure does not exclude someone taking the code and integrating military components<a NAME="military components11"> </a>. <p> <li><b>Multi-platform:</b><a NAME="Flight simulator+multi-platform11"> </a> The developers are attempting to keep the code as platform-independent as possible. This is based on their observation that people interested in flight simulations run quite a variety of computer hardware and operating systems. The present code supports the following Operating Systems<a NAME="Operating Systems11"> </a>: <UL> <p> <li>Linux<a NAME="Linux11"> </a> (any platform), <li>Windows NT<a NAME="Windows NT11"> </a> (i86 platform), <li>Windows 95/98<a NAME="Windows 95/9811"> </a>, <li>BSD UNIX<a NAME="BSD UNIX11"> </a>, <li>SGI IRIX<a NAME="SGI IRIX11"> </a>, <li>SunOS<a NAME="SunOS11"> </a>. </UL> <p> There is ongoing effort to support more platforms such as the MacIntosh<a NAME="MacIntosh11"> </a>. At this time we are not aware of the existence of any other serious multi-platform flight simulator - neither commercial nor free. Initial ideas on support for DOS<a NAME="DOS11"> </a> or OS/2<a NAME="OS/211"> </a> were dropped later because of diminishing interest in these platforms and the non-availability of OpenGL for DOS. <p> <li><b>Open:</b><a NAME="Flight simulator+open11"> </a> The project is not restricted to a closed club of developers. Anyone who feels he or she being able to contribute is highly welcome. The code (including documentation) is copyrighted under the terms of the Gnu Public License<a NAME="Gnu Public License11"> </a>. <p> The Gnu Public License is often misunderstood. In simple terms it states that you can copy and freely distribute the program(s) licensed to it. You can modify them, if you like. You are even allowed to charge as much money for the distribution of the modified or original program as you want. However, you must distribute it complete with the entire source code and it must retain the original copyrights. In short: <p><br> <p> <center><i>''You can do anything with the software except making it non-free''</i>.</center><br> <p> At present, the Gnu Public License<a NAME="Gnu Public License11"> </a> is not included in this document, but can be obtained from <p> <a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>. <p> <li><b>User-supported, user-extensible:</b><a NAME="Flight simulator+user-supported11"> </a> <a NAME="Flight simulator+user-extensible11"> </a>Contrary to the various commercial simulators available, scenery and aircraft format, internal variables, etc. are user accessible and documented from the beginning. Even without an explicit developmental documentation<a NAME="documentation11"> </a>, which sure has to be written at some point, this is guaranteed by supplying the source code<a NAME="source code11"> </a>. It is the goal of the developers to build a basic engine to which scenery designers, panel engineers, maybe adventure or ATC routine writers, sound capturers and others can (and are asked to) add. It is our hope, that the project will finally gain from the creativeness and ideas of hundreds of talented simmers across the world. <p> Without doubt, the success of the Linux<a NAME="Linux11"> </a> project initiated by Linus Torvalds<a NAME="Torvalds, Linus11"> </a> inspired several of the developers. Not only has it shown that distributed development of even highly sophisticated software projects over the Internet is possible. It led to a product which, in several respect, is better than its commercial competitors. </UL> <p> <H2><A NAME="tth_sEc1.2"> 1.2</A> A short history<a NAME="history12"> </a> of <i>FlightGear </i></H2> <p> This project goes back to a discussion of a group of net-citizens in 1996. This resulted in a proposal written by David Murr<a NAME="Murr, David12"> </a> who, unfortunately, dropped out from the project (as well as the net) later. His proposal<a NAME="proposal12"> </a> is still available from the <i>FlightGear </i>web site and can be found under <p> <a href="http://www.flightgear.org/proposal-3.0">http://www.flightgear.org/proposal-3.0</a>. <p> Although the names of the people and several of the details naturally changed in time, the spirit of that proposal was clearly retained up to the present status of the project. <p> Actual coding started in summer 1996 and by the end of that year essential graphics routines were completed. At that time, programming was mainly done and coordinated by Eric Korpela<a NAME="Korpela, Eric12"> </a> from Berkeley University (<a href="mailto:korpela@ssl.Berkeley.EDU">korpela@ssl.Berkeley.EDU</a>). Early code was running under Linux<a NAME="Linux12"> </a> as well as under DOS<a NAME="DOS12"> </a>, OS/2<a NAME="OS/212"> </a>, Windows 95/NT<a NAME="Windows 95/NT12"> </a>, and Sun-OS<a NAME="Sun-OS12"> </a>. This was quite an ambitious project, as it involved, among others, writing all the graphics routines<a NAME="graphics routines12"> </a> in a system-independent way just from scratch. <p> Development slowed down and finally stopped at the beginning of 1997 when Eric had to complete his thesis. At this point, the project seemed to be dead and traffic on the mailing list went down to nearly nothing. <p> It was Curt Olson<a NAME="Olson, Curt12"> </a> from the University of Minnesota (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>) who re-started the project in the middle of 1997. His idea was as simple as successful: Why invent the wheel a second time? There have been several free flight simulators<a NAME="Flight simulator+free12"> </a> available running on workstation<a NAME="workstation12"> </a>s under several flavors of UNIX<a NAME="UNIX12"> </a>. One of these, LaRCsim<a NAME="LaRCsim12"> </a>, which was developed by Bruce Jackson<a NAME="Jackson, Bruce12"> </a> from NASA (<a href="mailto:jackson@larc.nasa.gov">jackson@larc.nasa.gov</a>) seemed to be well-adapted for the present approach. Curt took this one apart and re-wrote several of the routines in a way making them build-able as well as run-able on the intended target platforms. The key idea in doing so was selecting a system-independent graphics platform, i. e. OpenGL<a NAME="OpenGL12"> </a>, for the basic graphics routines<a NAME="graphics routines12"> </a>. <p><br> <p> <center><img src="navion.gif"><br></center><br> Fig. 1: <i>The Navion<a NAME="Navion12"> </a> flight model is one of the features <i>FlightGear </i>inherited from LaRCsim<a NAME="LaRCsim12"> </a>. Until now it is the only one plane being realized in <i>FlightGear </i>.</i> <p><br> <p> In addition, a clever decision on the selection of the basic scenery<a NAME="scenery12"> </a> data was already made in this very first version. <i>FlightGear </i>Scenery is created on the basis of satellite data published by the U. S. Geological Survey<a NAME="U.\,S. Geological Survey12"> </a>. These terrain data are available for the whole world over the Internet for free from <p> <a href="http://edcwww.cr.usgs.gov/doc/edchome/ndcdb/ndcdb.html">http://edcwww.cr.usgs.gov/doc/edchome/ndcdb/ndcdb.html</a> <p> for the US resp. <p> <a href="http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html">http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html</a> <p> for other countries. Those freely accessible scenery data in conjunction with scenery building tools provided with <i>FlightGear </i>are an important prerequisite enabling anyone to create his or her own scenery, at least in principle. <p> This new FlightGear code - still largely being based on original LaRCsim<a NAME="LaRCsim12"> </a> code - was released in July 1997. From that moment the project gained momentum again. Here are some milestones from the further history of development: <p> <UL> <li> Sun, moon and stars are a field where PC flight simulators have been notoriously weak for ages. It is one of the great achievements of <i>FlightGear </i>that it includes accurate sun (watch, Microsoft!), moon, and planets being moreover placed on their proper positions. The corresponding astronomy code<a NAME="astronomy code12"> </a> was implemented in fall 1997 by Durk Talsma<a NAME="Talsma, Durk12"> </a> (<a href="mailto:pn_talsma@macmail.psy.uva.nl">pn_talsma@macmail.psy.uva.nl</a>. <p> <li> Texture support<a NAME="textures12"> </a> was added by Curt Olson<a NAME="Olson, Curt12"> </a> (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>) in spring 1998. This marked a significant improvement in terms of reality. You may recall: MSFS had untextured scenery up to version 4.0. For this purpose, some high-quality textures were submitted by Eric Mitchell<a NAME="Mitchell, Eric12"> </a> (<a href="mailto:mitchell@mars.ark.com">mitchell@mars. ark.com</a>. <p> <li> A HUD<a NAME="HUD12"> </a> (head up display<a NAME="head up display12"> </a>) was added based on code provided by Michele America<a NAME="America, Michele12"> </a> (<a href="mailto:nomimarketing@mail.telepac.pt">nomimarketing@mail.telepac.pt</a>) and Charlie Hotchkiss<a NAME="Hotchkiss, Charlie12"> </a> (<a href="mailto:chotchkiss@namg.us.anritsu.com">chotch kiss@namg.us.anritsu.com</a>) in fall 1997 and continuously improved later. While being probably not a substitute for a panel<a NAME="panel12"> </a> and moreover possibly being a bit odd in that tiny Navion<a NAME="Navion12"> </a>, this HUD<a NAME="HUD12"> </a> has proven extremely useful in navigation until now. <p> <li> After improving scenery<a NAME="scenery12"> </a> and texture<a NAME="textures12"> </a> support and adding some more features there was a disappointing side-effect in spring 1998: Frame rates<a NAME="frame rate12"> </a> dropped down to a point where <i>FlightGear </i>became inflyable. There were two main achievements overcoming this problem. First, with the advent of hardware OpenGL<a NAME="OpenGL12"> </a> support and corresponding drivers for most of the graphics cards these features could be exploited in <i>FlightGear </i>as well, leading to a frame rate<a NAME="frame rate12"> </a> boost by a factor up to 10. Second, Curt Olson<a NAME="Olson, Curt12"> </a> (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>) implemented so-called view frustrum culling<a NAME="view frustrum culling12"> </a> (a procedure to except part of the scenery not required from rendering) which gave another 20% or so of frame rate boost in May 1998. <p> With these two achievements <i>FlightGear </i>became flyable again even on weaker machines as long as they included a 3D graphics board with hardware OpenGL<a NAME="OpenGL12"> </a> support. (With respect to this point one should keep in mind that the code at present is in no way optimized leaving a lot of room for further improvements of frame rate.) <p> <li> A rudimentary autopilot<a NAME="autopilot12"> </a> implementing heading hold was contributed by Jeff Goeke-Smith<a NAME="Goeke-Smith, Jeff12"> </a> (<a href="mailto:jgoeke@voyager.net">jgoeke@voyager.net</a>) in April 1998. This autopilot was improved to cover altitude hold and a terrain follow switch in October 1998. <p> <li> Although detailed menus are still missing there is a first approach on developing a menu system<a NAME="menu system12"> </a> based on Steve Baker's<a NAME="Baker, Steve12"> </a> (<a href="mailto:sjbaker@hti.com">sjbaker@hti.com</a>) menu library PUI<a NAME="PUI12"> </a>. This first menu system was added in June 1998. <p> <li> Friedemann Reinhard <a NAME="Reinhard, Friedemann12"> </a> (<a href="mailto:mpt218@faupt212.physik.uni-erlangen.de">mpt218@faupt212.physik.uni-erlangen.de</a>) developed early panel code<a NAME="panel code12"> </a> including a working airspeed indicator<a NAME="airspeed indicator12"> </a> which was added in June 1998 and has been considerably improved until today. <p> <li> There was basic audio support<a NAME="audio support12"> </a> i. e. an audio library and some basic background engine sound, contributed by Steve Baker (<a href="mailto:sjbaker@hti.com">sjbaker@hti.com</a>)<a NAME="Baker, Steve12"> </a> and Tom Knienieder<a NAME="Knienieder, Tom12"> </a> (<a href="mailto:knienieder@ms.netwing.at">knienieder@ms.netwing.at</a>) in Summer 1998. <p> <li> Steve Baker<a NAME="Baker, Steve12"> </a> (<a href="mailto:sjbaker@hti.com">sjbaker@hti.com</a>) and Curt Olson<a NAME="Olson, Curt12"> </a> (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>) got basic joystick/yoke support running in October 1998. While implementation may change and pedals do not yet work under Windows this marks a huge improvement in terms of realism. <p> <li> In September 1998 Curt Olson<a NAME="Olson, Curt12"> </a> (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>) succeeded in creating complete terrain Scenery for the USA, which is available for download from <p> <a href="ftp://ftp.kingmont.com/pub/kingmont/">ftp://ftp.kingmont.com/pub/kingmont/</a>. <p> </UL>This is by no way a complete history and a lot of people making even important contributions were left out here. Besides the named achievements which are more on the surface, there was a lot of work done concerning the internal structure, by Steve Baker<a NAME="Baker, Steve12"> </a> (<a href="mailto:sjbaker@hti.com">sjbaker@hti.com</a>)<a NAME="Baker, Steve12"> </a>, Norman Vine<a NAME="Vine, Norman12"> </a> (<a href="mailto:nhv@laserplot.com">nhv@laserplot.com</a>), Gary R. Van Sickle<a NAME="Van Sickle, Gary, R.12"> </a> (<a href="mailto:tiberius@braemarinc.com">tiberius@braemarinc.com</a>), and others. A more complete list of contributors to the project can be found in <i>Landing: Some further thoughts before leaving the plane</i>, chapter <A href="#landing">7</A> as well as in the file <tt>Thanks</tt> provided with the code. Moreover, the <i>FlightGear </i>Website<a NAME="\FlightGear Website12"> </a> contains a detailed history of all of the development under <p> <a href="http://www.flightgear.org/News/">http://www.flightgear.org/News/</a>. <p> <H2><A NAME="tth_sEc1.3"> 1.3</A> System requirements</H2><a NAME="system requirements13"> </a> Compared to other recent flight simulators the system requirements for <i>FlightGear </i>are rather decent. A P100 is already sufficient, given you have a proper 3D graphics card, but of course for getting good performance we recommend a P200 or better, if you run it on a PC. On the other hand, any not too ancient UNIX<a NAME="UNIX13"> </a> workstation<a NAME="workstation13"> </a> will run <i>FlightGear </i>as well. <p> While in principle you can run <i>FlightGear </i>on 3D boards without OpenGL support or even on systems without 3D graphics hardware, missing hardware OpenGL support can force even the fastest PII to its knees (frame rate<a NAME="frame rate13"> </a>s typically below 1 fps even on fast machines). Any cheap 3D graphics card will do as long as it features hardware OpenGL<a NAME="OpenGL13"> </a> support. For Windows 98/NT<a NAME="Windows 98/NT13"> </a> drivers, you may contact the home page of the manufacturer. Moreover, you should have in mind that most OpenGL drivers<a NAME="OpenGL+drivers13"> </a> are still marked as beta and moreover, often these drivers are provided by the makers of the graphics chip instead of the makers of the board. More detail on OpenGL drivers can be found under <p> <a href="http://www.x-plane.com/v4ibm.html">http://www.x-plane.com/v4ibm.html</a> <p> as well as under <p> <a href="http://www.flightgear.org/Hardware">http://www.flightgear.org/Hardware</a>. <p> Moreover, you need around 16MB of free disk space for installing the executable including most of the scenery. In case you want to compile the program yourself you need around 50MB for the source code and for temporary files created during compilation, independent of the operating system. <p> If you want to hear the sound effects<a NAME="sound effects13"> </a> any decent sound card<a NAME="sound card13"> </a> should serve. At present, support for using a joystick<a NAME="joystick13"> </a> or yoke<a NAME="yoke13"> </a> is just in its early stages, but is expected to work on most systems. At present, Pedals are supported under UNIX/Linux only. <p> With respect to operating systems, <i>FlightGear </i>is being primarily developed under Linux<a NAME="Linux13"> </a>, a free UNIX clone developed cooperatively over the net in much the same way as the <i>FlightGear </i>project itself. Moreover, <i>FlightGear </i>runs under Windows 95<a NAME="Windows 9513"> </a>, Windows 98<a NAME="Windows 9813"> </a> and Windows NT<a NAME="Windows NT13"> </a> and given you have a proper compiler<a NAME="compiler13"> </a> installed it can be build under all of these platform as well. The primary compiler for all platforms is GNU C++<a NAME="GNU C++13"> </a> (i. e. the Cygnus<a NAME="Cygnus13"> </a> compiler under Win32), however there is some support for MSVC<a NAME="MSVC13"> </a>5 as well. Moreover, <i>FlightGear </i>runs and can be build on several UNIX<a NAME="UNIX13"> </a>/X11 platforms with GNU C++ installed. <p> <H2><A NAME="tth_sEc1.4"> 1.4</A> Whom this guide is addressed to and how it is organized</H2> <p> At first: There is not much of the material in this Guide being originally invented by ourself. You could even say with Montaigne that we ''merely gathered here a big bunch of other men's flowers, having furnished nothing of my own but the strip to hold them together''. Most (but fortunately not all) of the information can as well be grabbed from the <i>FlightGear </i>home page<a NAME="\FlightGear home page14"> </a> being situated at <p> <a href="http://www.flightgear.org/">http://www.flightgear.org/</a> <p> and its various sub pages. However, there still seem to be a small group of people preferring neatly printed manuals over loosely scattered Readmes and those may acknowledge our effort. <p> This <i>Installation and Getting Started</i> is intended as being a first step towards a more complete <i>FlightGear </i>documentation<a NAME="\FlightGear documentation14"> </a> (with the other parts, supposedly, to be written by others). Its main addressee is the end-user who is not interested in the internal workings of OpenGL<a NAME="OpenGL14"> </a> or in building his or her own scenery, for instance. It is our hope, that sometime there will be an accompanying <i><i>FlightGear </i> Programmer's Guide<a NAME="\FlightGear Programmer's Guide14"> </a></i>, which could be based on some of the documentation under <p> <a href="http://www.flightgear.org/Docs">http://www.flightgear.org/Docs</a>, <p> a <i><i>FlightGear </i>Scenery Design Guide<a NAME="\FlightGear Scenery Design Guide14"> </a></i>, and a <i><i>FlightGear </i>Flight School<a NAME="\FlightGear Flight School14"> </a></i>, at least. <p> This <i>Installation and Getting Started</i> is organized as follows: <p> The first chapter <A href="#opengl">2</A>, <i>Getting the engine: Installing OpenGL graphics drivers</i>, describes how to prepare the computer for handling <i>FlightGear </i>'s graphics routines. <i>FlightGear </i>is based on a graphics library called OpenGL, thus you must install either hardware or software OpenGL support for your graphics board (except, you did so before, of course). <p> Chapter <A href="#building">3</A>, <i>Building the plane: Compiling the program</i>, explains how to build, i. e. compile the simulator. Depending on your platform this may or may not be required for you. There will at least be binaries available for those working on a Win32 (i. e. Windows 98 © or Windows NT ©) platform. For those on such systems, who want to take off immediately without going through the potentially troublesome process of compiling, we recommend just skipping that chapter and going directly to the next one. <p> In chapter <A href="#prefligh">4</A>, <i>Preflight: Installing <i>FlightGear </i></i>, you find instructions for installing the binaries in case you did not so by building them in the previous chapter. Moreover, you'll have to install scenery and texture files, which will be described there, too. <p> The following chapter <A href="#takeoff">5</A>, <i>Takeoff: How to start the program</i>, describes how to start the program including an overview on the command line options. <p> <i>Flight: Keystrokes, HUD, and all that</i>, chapter <A href="#flight">6</A>, describes how to operate the program, i. e. to actually fly with <i>FlightGear </i>. This includes several lists of key strokes as well as a detailed description of the HUD (head up display) as the primary instrument for controlling the plane. <p> In chapter <A href="#landing">7</A>, <i>Landing: Some further thoughts before leaving the plane</i>, we would like to give credits to those who did the hard work and give an outlook on what remains to be done. <p> Finally: <b>We kindly ask others to help us improving this document by submitting corrections, improvements, and more. Notably, we invite others to contribute descriptions referring to alternative setups (graphics cards, operating systems, and compilers etc.). We will be more than happy to include those into forthcoming versions of this <i>Installation and Getting Started</i> (of course not without giving credit to the authors).</b> <p> We hope to continuously maintain this document at least for a foreseeable future, but probably will not be able to produce a new one for any single release of <i>FlightGear </i>. While we are both watching the mailing lists, it might help, if developers adding new functionality could send us a short note. <p> <H1><A NAME="tth_chAp2"> Chapter 2 </A><br>Getting the engine: Installing OpenGL<a NAME="OpenGL20"> </a> graphics drivers<a NAME="graphics drivers20"> </a><A NAME="opengl"> </A></H1> <i>FlightGear </i>'s graphics engine is based on a graphics library<a NAME="graphics library20"> </a> called OpenGL<a NAME="OpenGL20"> </a>. Its primary advantage is it's platform independence, i. e., programs written with OpenGL<a NAME="OpenGL20"> </a> support can be compiled and executed on several platforms, given the proper drivers having been installed in advance. Thus, independent of if you want to run the binaries only or if you want to compile the program yourself you must install some sort of OpenGL<a NAME="OpenGL20"> </a> support for your video card<a NAME="video card20"> </a>. Naturally, you can skip this chapter in case you already did (maybe for Quake or some other game). <p> Unfortunately, there are so many graphics boards, graphics chips and drivers that we are unable to provide a complete description for all systems at present, but we hope to be able to extend that section with the help of others soon. To give beginners a hand, we just describe what we did to install drivers on our systems. <p> By any means, should you try getting hardware OpenGL<a NAME="OpenGL20"> </a> drivers for your system, which is exemplary described in sections <A href="#3dfxlinux">2.1</A> to <A href="#3DFXwin98">2.4</A>, resp. If you are unable to locate any such drivers you can try software support<a NAME="OpenGL+software support20"> </a> as detailed under <A href="#softrend">2.5</A>. <p> <H2><A NAME="tth_sEc2.1"> 2.1</A> 3DFX<a NAME="3DFX21"> </a> under Linux<a NAME="Linux21"> </a><A NAME="3dfxlinux"> </A></H2> <p> An excellent place to search for documentation about Linux and 3D accelerators is the <i>Linux 3Dfx HOWTO</i> at <p> <a href="http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html">http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html</a>. <p> It describes all the following steps in an in-depth fashion and should be your first aid in case something goes wrong with your 3D setup. <p> The 3DFX<a NAME="3DFX21"> </a> graphics card is a quite popular one (We tested the Voodoo<a NAME="Voodoo21"> </a>1 to work). At first, you need the GLIDE<a NAME="GLIDE21"> </a> library installed. Grab it at: <p> <a href="http://www.3dfx.com/software/download_glidel.html">http://www.3dfx.com/software/download_glidel.html</a> <p> and install it. Be careful, you need different Glide libraries for the different types of VooDoos (I, II, Banshee). There is even an install script included that will do things for you. The canonical place for GLIDE<a NAME="GLIDE21"> </a> is <tt>/usr/local/glide</tt>, if you prefer another location, you'll have to edit the Makefile for <i>FlightGear </i>by hand. Be sure to read and understand the file <tt>/usr/local/glide/README</tt>. Next, you need to install the MESA<a NAME="MESA21"> </a> library version 3.0 (or later). Grab it at <p> <a href="ftp://iris.ssec.wisc.edu/pub/Mesa">ftp://iris.ssec.wisc.edu/pub/Mesa</a>, <p> unpack it and run <p> <tt>make linux-glide</tt> <p> in the Mesa directory. Follow the instructions in the <tt>README</tt> file, take a close look at <tt>README.3DFX</tt> and play with the demo programs. <p> Besides these, you need the GLUT<a NAME="GLUT21"> </a> library version 3.7 (or greater, aka GameGLUT) installed. Grab it at: <p> <a href="http://reality.sgi.com/opengl/glut3/glut3.html">http://reality.sgi.com/opengl/glut3/glut3.html</a>. <p> Note: Glut-3.7 is included with Mesa 3.0 so if you've already grabbed the latest version of mesa, you should have everything you need. <p> Finally, some more notes on the behavior of Voodoo<a NAME="Voodoo21"> </a> boards: <p> Your card comes packaged with a loop-through-cable<a NAME="loop-through-cable21"> </a>. If you have only one monitor, then the Voodoo will take it over when used. This means that all the applications on your desktop will continue running but you'll only see the <i>FlightGear </i>screen. If your window manager uses a focus-follows-mouse policy, don't move the mouse. If you lose the focus, there's no way to shut down <i>FlightGear </i>graciously! Better solution: Use two monitors, one for your desktop, connect the other one to your accelerator. You'll then get a window on your desktop which manages all keyboard events and you're still able to see your desktop. <p> Running <i>FlightGear </i>under Linux using a 3DFX accelerator board is somewhat tricky. Most of the boards behavior is controlled by environment variables.<a NAME="environment variable21"> </a> The two most important are: <p> <UL> <li><tt>MESA_GLX_FX</tt>: When set to <tt>f</tt> rendering will be in fullscreen mode, <tt>w</tt> will perform rendering in a window at a significant speed penalty. <p> <li> <tt>FX_GLIDE_NO_SPLASH</tt>: When set to <tt>1</tt> the rotating 3DFX logo won't appear. For a description of all environment variables<a NAME="environment variable21"> </a> for VooDooI/II have a look at <p> <a href="http://www.bahnhof.se/~engstrom/e_3dfxvars.htm">http://www.bahnhof.se/~engstrom/e_3dfxvars.htm</a>. <p> </UL>This completes preparing your 3DFX<a NAME="3DFX21"> </a> equipped Linux PC for running <i>FlightGear </i> . Now proceed and install the support files as described later in this document. <p> <H2><A NAME="tth_sEc2.2"> 2.2</A> Rendition Chipset<a NAME="Rendition chipset22"> </a> under Windows 98/NT<a NAME="Windows 98/NT22"> </a><A NAME="renditionwin"> </A></H2> <p> This section serves as an example for installing OpenGL<a NAME="OpenGL22"> </a> drivers under Windows 98/NT<a NAME="Windows 98/NT22"> </a>. The Rendition 2100 chipset<a NAME="Rendition 2100 chipset22"> </a> is, for instance, part of the Diamond Stealth II<a NAME="Diamond Stealth II22"> </a> card performing especially well in somewhat weaker machines. <p> Diamond itself does not provide any OpenGL<a NAME="OpenGL22"> </a> driver support for that board. However, Rendition, who make the graphics chip, do. Go to their Web site and grab the latest OpenGL<a NAME="OpenGL22"> </a> Windows drivers<a NAME="Windows drivers22"> </a> from <p> <a href="http://www.rendition.com/download.html">http://www.rendition.com/download.html</a> <p> Follow the description in <tt>readme.txt</tt>. We recommend making the drivers the default ones by copying them to <tt>\windows\system</tt> (which avoids the hassle of not being sure which driver actually runs). <p> With this step you're already done. <p> According to our experience, so-called mini-OpenGL<a NAME="mini-OpenGL22"> </a> drivers provided by some manufacturers for making Quake playable do not provide the level of OpenGL support required by <i>FlightGear </i>. At least, Rendition's mini-OpenGL<a NAME="mini-OpenGL22"> </a> driver definitely does not. <p> <H2><A NAME="tth_sEc2.3"> 2.3</A> RIVA TNT Chipset<a NAME="RIVA TNT chipset23"> </a> under Windows 98/NT<a NAME="Windows 98/NT23"> </a><A NAME="rivatnt"> </A></H2> <p> Because of its high performance, the RIVA TNT is one of the most popular chipsets today. The Diamond Viper 550<a NAME="Diamond Viper 55023"> </a>, ELSA Erazor-2, Creative Graphics Blaster<a NAME="Creative Graphics Blaster23"> </a>, and more cards are equipped with this chip. At least the default Viper 550 drivers are known to us having native built-in OpenGL support making any add-on OpenGL drivers obsolete. Similar things should apply to the other RIVA TNT based cards. In any case, NVIDIA's reference drivers being available from <p> <a href="http://www.nvidia.com/">http://www.nvidia.com/</a> <p> do the job as well. <p> <H2><A NAME="tth_sEc2.4"> 2.4</A> 3DFX chip based boards<a NAME="3DFX chip24"> </a> under Windows 98/NT<a NAME="Windows 98/NT24"> </a><A NAME="3DFXwin98"> </A></H2> <p> The 3DXF<a NAME="3DXF24"> </a> based 3D add-on or 2D/3D boards are perhaps the most popular ones today at all. 3DFX<a NAME="3DFX24"> </a> made Beta OpenGL Windows 98 drivers available on their Website at <p> <a href="http://www.3dfx.com">http://www.3dfx.com</a>. <p> From the main page go to <tt>Develop 3DFX</tt> and further to <tt>SDKs and Demos</tt> and grab them there. <p> First, make sure you have the file <tt>glu32.dll</tt> either under <tt>\Windows\System</tt> or elsewhere in your path. If not, install the MS OpenGL kit <tt>opengl95</tt> available from Microsoft or elsewhere on the net. (Which by itself only provides software rendering.) <p> Next, locate the file <tt>3dfxopengl.dll</tt>. in the 3DFX driver package, rename it to <tt>opengl32.dll</tt> and copy it into <tt>\Windows\System</tt> overwriting the file with the same name installed from the MS kit. This should get you going. <p> <H2><A NAME="tth_sEc2.5"> 2.5</A> OpenGL<a NAME="OpenGL25"> </a> software rendering<a NAME="OpenGL+software rendering25"> </a> under Windows 98/NT<A NAME="softrend"> </A></H2> <p> If you have an accelerated 3D card, it is highly recommended you install hardware OpenGL<a NAME="OpenGL25"> </a> drivers for your specific card. <p> However, in case you are really unable to find such drivers and want to try <i>FlightGear </i>despite this you can install SGI software OpenGL<a NAME="OpenGL25"> </a> rendering. For this purpose, get the file <tt>sgi-opengl2.exe</tt> from <p> <a href="http://www.flightgear.org/Downloads/">http://www.flightgear.org/Downloads/</a>. <p> This is a Windows 98/NT<a NAME="Windows 98/NT25"> </a> self extracting installation program. Install it by double-clicking in Windows explorer. The package includes some demo games you may wish to try by invoking them from the Start menu. <p> <H1><A NAME="tth_chAp3"> Chapter 3 </A><br>Building the plane: Compiling<a NAME="compiling30"> </a> the program<A NAME="building"> </A></H1> This major chapter describes how to build <i>FlightGear </i>on several systems. In case you are on a Win32 (i. e. Windows 98 or Windows NT) platform you may not want to go though that potentially troublesome process but instead skip that chapter and straightly go to the next one. (Not everyone wants to build his or her plane himself or herself, right?) However, there may be good reason at least to try building the simulator: <p> <UL> <li> In case you are on a UNIX<a NAME="UNIX30"> </a>/Linux<a NAME="Linux30"> </a> platform there may be no pre-compiled binaries<a NAME="binaries, pre-compiled30"> </a> available for your system. We do not see any reason why the distribution of pre-compiled binaries (with statically linked libraries) should not be possible for UNIX<a NAME="UNIX30"> </a> systems in principle as well, but in practice it is common to install programs like this one on UNIX<a NAME="UNIX30"> </a> systems by recompiling them. <p> <li> There are several options you can set only during compile time. One such option is the decision to compile with hardware or software OpenGL<a NAME="OpenGL30"> </a> rendering enabled. A more complete list goes beyond this <i>Installation and Getting Started</i> and should be included in a future <i><i>FlightGear </i>Programmer's Guide<a NAME="\FlightGear Programmer's Guide30"> </a></i>. <p> <li> You may be proud you did. </UL> <p> As you will note, this chapter is far from being complete. Basically, we describe compiling for two operating systems only, Windows 98/NT<a NAME="Windows 98/NT30"> </a> and Linux<a NAME="Linux30"> </a>. There is a simple explanation for this: These are just the systems we are working on. We hope to be able to provide descriptions for more systems based on contributions written by others. <p> <H2><A NAME="tth_sEc3.1"> 3.1</A> Compiling<a NAME="compiling+Linux31"> </a> under Linux<a NAME="Linux31"> </a></H2> <p> If you are running Linux you probably have to build your own binaries<a NAME="binaries31"> </a>. The following is one way to do so. <p> <OL type="1"> <li> Get the file <tt>FlightGear-x.xx.tar.gz</tt> from the <tt>source</tt> subdirectory under <p> <a href="http://www.flightgear.org/Downloads/">http://www.flightgear.org/Downloads/</a> <p> <li> Unpack it using : <p> <tt>tar xvfz FlightGear-x.xx.tar.gz</tt>. <p> <li> <tt>cd</tt> into <tt>FlightGear-x.xx</tt>. Run: <p> <tt>./configure</tt> <p> and wait a few minutes. configure<a NAME="configure31"> </a> knows about a lot of options. Have a look at the file <tt>INSTALL</tt> in the <i>FlightGear </i>source directory to learn about them. If run without options, configure assumes that you will install the data files under <tt>/usr/local/lib/FlightGear</tt>. <p> <li> Assuming configure finished successfully, simply run <p> <tt>make</tt> <p> and wait for the make process to finish. <p> <li> Now become root (for example by using the su command) and type <p> <tt>make install</tt>. <p> This will install the binaries<a NAME="binaries31"> </a> in <tt>/usr/local/bin</tt>. <p> There is a problem concerning permissions under Linux/Glide. All programs accessing the accelerator board need root permissions. The solution is either to play as root or make the <tt>/usr/local/bin/fgfs</tt> binary <tt>setuid root</tt>, i.e. when this binary is run root privileges are given. Do this by issuing (as root) <p> <tt>chmod +s /usr/local/bin/fgfs</tt>. <p> A solution for this problem is upcoming, keep an eye on the 3Dfx website if you run a 3Dfx board. <p> </OL> <H2><A NAME="tth_sEc3.2"> 3.2</A> Compiling<a NAME="compiling+Windows 98/NT32"> </a> under Windows 98/NT<a NAME="Windows 98/NT32"> </a></H2> <p> <OL type="1"> <li> Contrary to Linux which brings its own compiler Windows comes not equipped with developmental tools. Several compilers have been shown to work for compiling <i>FlightGear </i>, including the Cygnus Win32 port of GNU C<a NAME="Cygnus Win32 port of GNU C32"> </a>++ and the MS Visual C5<a NAME="MS Visual C532"> </a> compiler. Given that the project will be a free one we prefer the Cygnus Compiler as it provides a free development environment. However, we will be happy to include a proper description in case those who worked out how to compile with MSVC or other Compilers provide one to us. <p> <li> Install and configure the Cygnus<a NAME="Cygnus32"> </a> Gnu-Win32 development environment. The latest version is Beta 20. The main Cygnus Gnu-Win32 page is at: <p> <a href="http://www.cygnus.com/misc/gnu-win32/">http://www.cygnus.com/misc/gnu-win32/</a>. <p> You can download the Cygnus Gnu-Win32 compiler from: <p> <a href="ftp://ftp.cygnus.com/pub/gnu-win32/latest/cdk.exe">ftp://ftp.cygnus.com/pub/gnu-win32/latest/cdk.exe</a>. <p> To install it, just run the file <tt>cdk.exe</tt> by double-clicking in Windows explorer. Be sure to read this package's README : <p> <a href="http://www.cygnus.com/misc/gnu-win32/readme\_toc.html">http://www.cygnus.com/misc/gnu-win32/readme_toc.html</a>. <p> Next, you need several UNIX developmental tools, being compiled for Windows 98/NT. These are bundled in the package <tt>usertools</tt>. Get it from <p> <a href="ftp://ftp.cygnus.com/pub/gnu-win32/latest/usertools.exe">ftp://ftp.cygnus.com/pub/gnu-win32/latest/usertools.exe</a> <p> and install it by double-clicking as well. After doing so you should find a program group called <tt>Cygnus Solutions</tt> in your start menu. <p> <li> Compiling <i>FlightGear </i>requires you to install the EGCS<a NAME="EGCS32"> </a> upgrade to the Cygnus<a NAME="Cygnus32"> </a> environment being available from: <p> <a href="http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs.html">http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs.html</a> <p> Again, make sure you follow the directions. It is recommended that you unroll the EGCS<a NAME="EGCS32"> </a> stuff over top of your Cygwin32 installation. It will replace many of the files. <p> <li> Open the Cygnus bash via its entry in the Start menu. Mount the drive as follows (assuming your <i>FlightGear </i>drive is <tt>d:</tt>): <p> <tt>mkdir /mnt</tt><br> <tt>mount d: /mnt</tt> <p> You only have to do this once. The drive stays mounted (until you umount it) even through reboots and switching off the machine. <p> <li> Fetch the Flight Gear code and special Win32 libraries<a NAME="Win32 libraries32"> </a>. These can be found at: <p> <a href="http://www.flightgear.org/Downloads/Source">http://www.flightgear.org/Downloads/Source</a> <p> Grab the latest <tt>FlightGear-X.XX.zip</tt> and <tt>win32-libs-X.XX.zip</tt> files. <p> <li> Unpack the <i>FlightGear </i>source code via <p> <tt>pkunzip -d FlightGear-X.XX.zip</tt>. <p> (Be sure to use the -d option. This will create all the needed subdirectories. Otherwise you will have one big mess!) <p> <li> Change to the newly created <tt>FlightGear-X.XX directory</tt> with e. g. <p> <tt>cd //D/FlightGear-X.XX</tt> <p> and unpack the Win32 libraries: <p> <tt>pkunzip -d win32-libs-X.XX.zip</tt>. <p> <li> You will find a file called <tt>install.exe</tt> in the Win32 directory after unzipping <tt>win32-libs-X.XX.zip</tt>. This version of <tt>install.exe</tt> should replace the one in your \<tt>H-i386-cygwin32\bin</tt> directory - it's sole claim to fame is that it understands that when many calls to it say <tt>install foo</tt> they mean <tt>install foo.exe</tt>. If you skip this step and attempt an install with the older version present <tt>make install</tt> will fail. <p> Side Note: We need to make a distinction between the <tt>build tree<a NAME="build tree32"> </a></tt> and the <tt>install tree<a NAME="install tree32"> </a></tt>. The <tt>build tree</tt> is what we've been talking about up until this point. This is where the source code lives and all the compiling takes place. Once the executables are built, they need to be installed someplace. We shall call this install location the <tt>install tree</tt>. This is where the executables, the scenery, the textures, and any other run-time files will be located. <p> <li> Configure the make system for your environment and your <tt>install tree</tt>. Tell the configure script where you would like to install the binaries<a NAME="binaries32"> </a> and all the scenery<a NAME="scenery32"> </a> and textures<a NAME="textures32"> </a> by using the <tt>--prefix</tt> option. In the following example the base of the <tt>install tree</tt> is <tt>FlightGear</tt>. Make your you are within <i>FlightGear </i>'s root directory or change to it. <p> <li> Run:<a NAME="configure32"> </a> <p> <tt>./configure --prefix=/mnt/FlightGear</tt>. <p> Side note: The make procedure is designed to link against opengl32.dll, glu32.dll, and glut32.dll which most accelerated boards require. If this does not apply to yours or if you installed SGI's software rendering<a NAME="software rendering32"> </a> as mentioned in subsection <A href="#softrend">2.5</A> you may have to change these to opengl.dll, glu.dll, and glut.dll. (In case you're in doubt check your <tt>\windows\system</tt> directory what you've got.) <p> If this is the case for your video card<a NAME="video card32"> </a>, you can edit <tt>.../Simulator/Main/ Makefile</tt> and rename these three libraries to their "non-32" counterparts. There is only one place in this <tt>Makefile</tt> where these files are listed. <p> <li> Build the executable. Run: <p> <tt>make</tt>. <p> <li> Assuming you have installed the updated version of <tt>install.exe</tt> (see earlier instructions) you can now create and populate the install tree. Run: <p> <tt>make install</tt>. <p> You can save a significant amount of space by stripping all the debugging symbols off of the executable. To do this, change to the directory in the <tt>install tree</tt> where your binary lives and run: <p> <tt>strip fgfs.exe</tt> resp. <tt>strip fgfs-sgi.exe</tt>. <p> </OL> <H1><A NAME="tth_chAp4"> Chapter 4 </A><br>Preflight: Installing <i>FlightGear </i><A NAME="prefligh"> </A></H1> <p> <H2><A NAME="tth_sEc4.1"> 4.1</A> Installing the Binaries</H2><a NAME="binaries+installation41"> </a> You can skip this section and go to the installation of scenery in case you built <i>FlightGear </i>along the lines describes during the previous chapter. If you did not and you're jumping in here your first step consists in installing the binaries. At present, there are only pre-compiled binaries<a NAME="binaries41"> </a> available for Windows 98/NT<a NAME="Windows 98/NT41"> </a> while in principle it might be possible to create (statically linked) binaries for Linux<a NAME="Linux41"> </a> as well. <p> The following supposes you are on a Windows 98 or Windows NT<a NAME="Windows 98/NT41"> </a> system. Installing the binaries is quite simple. Go to the <i>FlightGear </i>downloads page <p> <a href="http://www.flightgear.org/Downloads/">http://www.flightgear.org/Downloads/</a> <p> and get the latest binaries from the binaries subdirectory named <p> <tt>fg-win32-bin-X.XX.exe</tt> <p> and unpack them via double clicking. This will create a directory <tt>FlightGear</tt> with several subdirectories. You are done. <p> <H2><A NAME="tth_sEc4.2"> 4.2</A> Installing Support files<a NAME="Support files42"> </a></H2> <p> Independent on your operating system and independent on if you built the binaries yourself or installed the precompiled ones as described above you will need scenery<a NAME="scenery42"> </a>, texture<a NAME="texture42"> </a>, and sound<a NAME="sound42"> </a> files. A basic package of all these is contained in the binaries directory mentioned above as <p> <tt>fgfs-base-X.XX</tt>. <p> Preferably, you may want to download the <tt>.tar.gz</tt> version if you are working under Linux<a NAME="Linux42"> </a>/UNIX<a NAME="UNIX42"> </a> and the <tt>.exe</tt> version if you are under Windows 98/NT<a NAME="Windows 98/NT42"> </a>. Make sure you get the <b>most recent</b> version. <p> If you're working under Linux<a NAME="Linux42"> </a> or UNIX<a NAME="UNIX42"> </a>, unpack the previously downloaded file with <p> <tt>tar xvfz fgfs-base-X.XX.tar.gz</tt>, <p> while under Windows 98/NT<a NAME="Windows 98/NT42"> </a> just double click on the file (being situated in the root of your <i>FlightGear </i>drive.). <p> This already completes installing <i>FlightGear </i>and should enable you to invoke the program. <p> Some more scenery which, however, is not a substitute for the package mentioned above but rather is based on it can be found in the scenery subdirectory under <p> <a href="http://www.flightgear.org/Downloads/">http://www.flightgear.org/Downloads/</a> <p> These may be older versions which may or may not work with the most recent binaries. <p> In addition, there is a complete set of USA Scenery files<a NAME="USA Scenery files42"> </a> available created by Curt Olson<a NAME="Olson, Curt42"> </a> which can be downloaded from <p> <a href="ftp://ftp.kingmont.com/pub/kingmont/index.html">ftp://ftp.kingmont.com/pub/kingmont/index.html</a>. <p> The complete set covers several 100's of MBytes. Thus, Curt provides the complete set on CD-ROM for those who really would like to fly over all of the USA. For more detail, check the remarks in the downloads page above. <p> Finally, the binaries directory mentioned contain the complete <i>FlightGear </i>documentation including a .pdf version of this <i>Installation and Getting Started</i> guide intended for pretty printing using Adobe's Acrobat reader being available from <p> <a href="http://www.adobe.com/acrobat">http://www.adobe.com/acrobat</a>. <p> on any printer. <p> <H1><A NAME="tth_chAp5"> Chapter 5 </A><br>Takeoff: How to start the program<A NAME="takeoff"> </A></H1> <p> <H2><A NAME="tth_sEc5.1"> 5.1</A> Starting under Linux</H2> Under Linux, <i>FlightGear </i>is invoked by <p> <tt>fgfs --option1 --option2...</tt>, <p> where the options are described in section <A href="#options">5.3</A> below. <p> <H2><A NAME="tth_sEc5.2"> 5.2</A> Starting under Windows 98/NT<a NAME="Windows 98/NT52"> </a></H2> <p> In Windows explorer, change to <tt>\FlightGear\</tt>. Call <tt>runfgfs.bat</tt> by double-clicking if you want to invoke the hardware accelerated version of <i>FlightGear </i><tt>fgfs.exe</tt>, or <tt>runfgfs-sgi.bat</tt> if you installed SGI's software OpenGL<a NAME="OpenGL52"> </a> support. <p> Alternatively, if for one or the other reason the batch does not work, you can open an MS-DOS shell, change to the directory where your binary resides (typically something like <tt>d:\FlightGear\bin</tt> where you might have to substitute <tt>d:</tt> in favor of your <i>FlightGear </i>directory), set the environment variable with <p> <tt>SET FG_ROOT=d:\FlightGear\bin</tt> <p> and invoke <i>FlightGear </i>(within the same shell - Windows environment settings are only valid locally within the same shell) via <p> <tt>fgfs --option1 --option2...</tt>. <p> For getting maximum performance it is highly recommended to minimize (iconize) the non-graphics window while running <i>FlightGear </i>. <p><br> <p> <center><img src="arizona.gif"><br></center><br> Fig. 2: <i>Ready for takeoff. We are at the default startup position in Arizona.</i> <p><br> <p> <H2><A NAME="tth_sEc5.3"> 5.3</A> Command line parameters<A NAME="options"> </A></H2> <a NAME="command line options53"> </a> <p> Following is a list and short description of the command line options available. In case of Windows 98/NT it is recommended to include these in <tt>runfgfs.bat</tt>. <p> <H3><A NAME="tth_sEc5.3.1"> 5.3.1</A> General Options</H3> <p> <UL> <li><tt>--help</tt>: gives a small help text, kind of a short version of this section. <p> <li><tt>--fg-root=<i>path</i></tt>: tells <i>FlightGear </i>where to look for its data files if you didn't compile it with the default settings. <p> <li><tt>--disable-game-mode</tt>: Disables fullscreen display<a NAME="fullscreen display53"> </a>. <p> <li><tt>--enable-game-mode</tt>: Enables fullscreen rendering. <p> <li><tt>--disable-splash-screen</tt>: Turns off the rotating 3DFX logo<a NAME="3DFX logo53"> </a> when the accelerator board gets initialized. <p> <li><tt>--enable-splash-screen</tt>: If you like advertising, set this! <p> <li><tt>--disable-intro-music</tt>: No MP3-sample is being played when <i>FlightGear </i>starts up. <p> <li><tt>--enable-intro-music</tt>: If your machine is powerful enough, enjoy this setting. <p> <li><tt>--disable-mouse-pointer</tt>: In the future, <i>FlightGear </i>will feature a mouse interface so that options can be set at runtime. As this feature is not implemented yet it seems wise to disable the mouse interface. <p> <li><tt>--enable-mouse-pointer</tt>: Enables another mouse pointer in the <i>FlightGear </i>window. This is useful when running <i>FlightGear </i>in full screen mode and will allow access to the - yet to be implemented - mouse interface of <i>FlightGear </i> . <p> <li><tt>--disable-pause</tt>: This will put you into <i>FlightGear </i>with the engine running, ready for Take-Off. <p> <li><tt>--enable-pause</tt>: Starts <i>FlightGear </i>in pause mode. <p> </UL> <H3><A NAME="tth_sEc5.3.2"> 5.3.2</A> Features</H3> <p> <UL> <li><tt>--disable-hud</tt>: Switches off the HUD<a NAME="HUD53"> </a> (<b>H</b>ead <b>U</b>p <b>D</b>isplay). <p> <li><tt>--enable-hud</tt>: Turns the HUD<a NAME="HUD53"> </a> on. This is the default. <p> <li><tt>--disable-panel</tt>: Turns off the instrument panel<a NAME="instrument panel53"> </a>. This is the default, as the instrument panel is still in its early beginnings - but in our opinion you should give it a try. <p> <li><tt>--enable-panel</tt>: This will give you the look of a real cockpit<a NAME="cockpit53"> </a>. <p> <li><tt>--disable-sound</tt>: Pretty self explaining, isn't it? <p> <li><tt>--enable-sound</tt>: <p> </UL> <H3><A NAME="tth_sEc5.3.3"> 5.3.3</A> Initial Position and Orientation<a NAME="orientation53"> </a></H3> <p> <UL> <li><tt>--airport-id=ABCD</tt>: If you want to start directly at an airport, enter its international code, i.e. KJFK for JFK airport in New York. A long/short list of the IDs of the airports being implemented can be found in <tt>/Flight Gear/Airports</tt>. You only have to unpack one of the files with gnuzip. Keep in mind, you need the terrain data for the relevant region!<a NAME="airport code53"> </a> <p> <li><tt>--lon=degrees</tt>: This is the starting longitude in degrees (west = -) <p> <li><tt>--lat=degrees</tt>: This is the starting latitude in degrees (south = -) <p> <li><tt>--altitude=meters</tt>: You may start in free flight at the given altitude. Watch for the next options to insert the plane with a given heading etc. <p> <li><tt>--heading=degrees</tt>: Sets the initial heading<a NAME="initial heading53"> </a>. <p> <li><tt>--roll=degrees</tt>: Initial roll angle.<a NAME="initial roll angle53"> </a> <p> <li><tt>--pitch=degrees</tt>: Initial pitch angle.<a NAME="initial pitch angle53"> </a> <p> </UL> <H3><A NAME="tth_sEc5.3.4"> 5.3.4</A> Rendering Options<a NAME="rendering options53"> </a></H3> <p> <UL> <li><tt>--fog-disable</tt>: To cut down the rendering efforts, distant regions are vanishing in fog<a NAME="fog53"> </a> by default. If you disable fogging, you'll see farther but your frame rates will drop. <p> <li><tt>--fog-fastest</tt>: The scenery will not look very nice but frame rates will increase. <p> <li><tt>--fog-nicest</tt>: This option will give you a fairly realistic view of flying on a hazy day. <p> <li><tt>--fov=xx.x</tt>: Sets the field of view<a NAME="field of view53"> </a> in degrees. The value is displayed on the HUD. Default is 55.0. <p> <li><tt>--disable-fullscreen</tt>: Self explaining, isn't it? <p> <li><tt>--enable-fullscreen</tt>: <p> <li><tt>--shading-flat</tt>: This is the fastest mode but the terrain will look ugly! This option might help if your video accelerator is really slow. <p> <li><tt>--shading-smooth</tt>: This is the recommended (and default) setting - things will look really nice. <p> <li><tt>--disable-skyblend</tt>: No fogging or haze<a NAME="haze53"> </a>, sky will be displayed using just one color. Fast but ugly! <p> <li><tt>--enable-skyblend</tt>: Fogging/haze is enabled, sky and terrain<a NAME="terrain53"> </a> look realistic. This is the default and recommended setting. <p> <li><tt>--disable-textures</tt>: Terrain details will be disabled. Looks ugly, but might help if your video board is slow. <p> <li><tt>--enable-textures</tt>: Default and recommended. <p> <li><tt>--enable-wireframe</tt>: If you want to know how the world of <i>FlightGear </i>internally looks like, try this! <p> </UL> <H1><A NAME="tth_chAp6"> Chapter 6 </A><br>Flight: Keystrokes,<a NAME="keystrokes60"> </a> the HUD<a NAME="HUD60"> </a> and all that<A NAME="flight"> </A></H1> <p> <H2><A NAME="tth_sEc6.1"> 6.1</A> Keyboard commands</H2> <p> At present, support for using a joystick<a NAME="joystick61"> </a> or yoke<a NAME="yoke61"> </a> is just in its early stages. It may or may not work - just try it! In any case, you can use keyboard commands<a NAME="keyboard commands61"> </a> instead. For proper controlling via keyboard (i) the <tt>NumLock<a NAME="NumLock61"> </a></tt> key must be switched on (ii) the <i>FlightGear </i>window must have focus (if not, click with the mouse on the graphics window). <p> After activating <tt>NumLock</tt> the following keyboard commands<a NAME="keyboard commands61"> </a> should work: <p><br> <p> Tab. 1: <i>Main keyboard commands<a NAME="keyboard commands61"> </a> for <i>FlightGear </i></i>. <p><br> <p> <center> <table border><tr><td> <tr><td>Key </td><td>Action <tr><td>Pg Up/Pg Dn </td><td>Throttle <tr><td>Left Arrow/Right Arrow </td><td>Aileron <tr><td>Up Arrow/Down Arrow </td><td>Elevator <tr><td>Ins/Enter </td><td>Rudder <tr><td>5 </td><td>Center aileron/elevator/rudder <tr><td>Home/End </td><td>Elevator trim</table> </center><br> <p> For changing views you have to de-activate <tt>NumLock</tt>. Now <tt>Shift</tt> + <font face=symbol> < </font ><tt>Numeric Keypad Key</tt><font face=symbol> > </font > changes the view as follows: <p> <p> Tab. 2: <i>View directions<a NAME="view directions61"> </a> accessible after de-activating <tt>NumLock</tt>.</i> <p><br> <p> <center> <table border><tr><td> <tr><td>Numeric Key </td><td>View direction <tr><td>Shift-8 </td><td>forward <tr><td>Shift-7 </td><td>left/forward <tr><td>Shift-4 </td><td>left <tr><td>Shift-1 </td><td>left/back <tr><td>Shift-2 </td><td>back <tr><td>Shift-3 </td><td>right/back <tr><td>Shift-6 </td><td>right <tr><td>Shift-9 </td><td>right/forward</table> </center><br> <p> Moreover, the autopilot<a NAME="autopilot61"> </a> is controlled via the following controls: <p><br> <p> Tab. 3: <i>Autopilot controls.<a NAME="autopilot controls61"> </a></i> <p><br> <p> <center> <table border><tr><td> <tr><td>Key </td><td>Action <tr><td>Ctrl + A </td><td>Altitude hold toggle on/off <tr><td>Ctrl + H </td><td>Heading hold toggle on/off <tr><td>Ctrl + S </td><td>Autothrottle toggle on/off <tr><td>Ctrl + T </td><td>Terrain follow toggle on/off</table> </center><br> <p> <p><br>The last one is especially interesting as it makes your Navion<a NAME="Navion61"> </a> behave like a cruise missile. <p> Besides these basic keys there are some more special ones; most of these you'll probably not want to try during your first flight: <p><br> <p> Tab. 4: <i>More control commands.</i> <p><br> <p> <center> <table border><tr><td> <tr><td>Key </td><td>Action <tr><td>H/h </td><td>Change color of HUD/toggle HUD off forward/backward <tr><td>i/I </td><td>Minimize/maximize HUD <tr><td>m/M </td><td>Change time offset (warp) used by t/T forward/backward <tr><td>t/T </td><td>Time speed up/slow down forward/backward <tr><td>x/X </td><td>Zoom in/out <tr><td>z/Z </td><td>Change visibility (fog) forward/backward <tr><td>b </td><td>Toggle brakes on/off <tr><td>p </td><td>Toggle pause on/off <tr><td>W </td><td>Toggle fullscreen mode on/off (Mesa/3dfx/Glide only) <tr><td>F8 </td><td>Toggle fog on/off <tr><td>F9 </td><td>Toggle texturing on/off <tr><td>F10 </td><td>Toggle menu on/off <tr><td>ESC </td><td>Exit program</table> </center><br> <p> <p><br> <H2><A NAME="tth_sEc6.2"> 6.2</A> The head up display</H2> <p> At present, the main instrument for controlling the plane is the HUD<a NAME="HUD62"> </a> (<b>H</b>ead <b>U</b>p <b>D</b>isplay <a NAME="head up display62"> </a>, see Fig. 1). Neither are HUD<a NAME="HUD62"> </a>s used in usual general aviation planes nor in civilian ones. Rather they belong to the equipment of modern military jets. However, in view of the fact that the panel<a NAME="panel62"> </a> is still in the early stages of development the HUD<a NAME="HUD62"> </a> is the main instrument for controlling the plane for now. Besides, it might be easier to fly using this one than exploiting a panel<a NAME="panel62"> </a> and several of the real pilots might prefer it because of combining the readouts of critical parameters with an outside view onto the real world. (Several Cessna<a NAME="Cessna62"> </a> pilots might love to have one, but technology is simply too expensive for implementing HUDs in general aviation aircrafts.) <p><br> <p> <center><img src="hud.gif"><br></center><br> Fig. 3: <i>The HUD, or head up display, as the present main <i>FlightGear </i>instrument.</i> <p><br> <p> The most important information for navigating, i. e. throttle<a NAME="throttle62"> </a>, elevation<a NAME="elevation62"> </a>, aileron<a NAME="aileron62"> </a> can be found on the r.h.s of the HUD<a NAME="HUD62"> </a>. These are just given on a scale between 0 and 1. Above these you find the AOA<a NAME="AOA62"> </a> (angle of attack<a NAME="angle of attack62"> </a>; the angle between the wings and the relative wind i. e. the direction of airflow), the heading<a NAME="heading62"> </a> given in degrees, and the sideslip<a NAME="sideslip62"> </a>. <p> On the left hand side you find the speed<a NAME="speed62"> </a> in kts and the roll<a NAME="roll62"> </a> given in degrees. You may recall the Navion<a NAME="Navion62"> </a> taking off at a speed of 100 kts. Still further left you find the FOV<a NAME="FOV62"> </a> (= field of view<a NAME="field of view62"> </a>) in degrees. Zooming<a NAME="zoom62"> </a> in and out with the x/X keys changes this one. The value below that, the number of triangles<a NAME="number of triangles62"> </a> rendered is usually not of importance for you as a pilot (and can be switched off via a corresponding startup option). Below you find the frame rate<a NAME="frame rate62"> </a>, displaying the frames per second. <p> Besides these figures, most of the flight parameters and flight characteristics are displayed graphically in the upper half of the screen. In the center you find the pitch indicator<a NAME="pitch indicator62"> </a> (in degrees) with the aileron indicator<a NAME="aileron indicator62"> </a> above and the rudder indicator<a NAME="rudder indicator62"> </a> below. A corresponding readoff for the elevation<a NAME="elevation indicator62"> </a> can be found to the left of the pitch scale. Below the pitch indicator<a NAME="pitch indicator62"> </a> you will find a simple turn indicator<a NAME="turn indicator62"> </a>. <p> There are two scales further left: The inner one displays the speed<a NAME="speed62"> </a> (in kts) while the outer one gives the vertical speed<a NAME="vertical speed62"> </a> (climb/sink rate<a NAME="climb/sink rate62"> </a>). The two scales on the r.h.s display your height<a NAME="height62"> </a>, i. e. the left of it shows the height above ground while the right of it gives that above zero, both being displayed in feet. <p> Based on these keystrokes and the HUD you should be able to properly control the plane. Try it! The functions already implemented are completely sufficient for even doing complicated manoeuvres. <p> In addition, <i>FlightGear </i>has a rudimentary menu which, however, is not yet working. If you're done and are about to leave the plane, just hit the ESC key to exit the program. <p> If you are looking for some interesting places to discover with <i>FlightGear </i>(which may or may not require downloading additional scenery) you may want to check <p> <a href="http://www.flightgear.org/Downloads/Places">http://www.flightgear.org/Downloads/Places</a>. <p> <H1><A NAME="tth_chAp7"> Chapter 7 </A><br>Landing: Some further thoughts before leaving the plane<A NAME="landing"> </A></H1> <p> <H2><A NAME="tth_sEc7.1"> 7.1</A> Those, who did the work</H2> <p> Did you enjoy the flight? In case you did, don't forget those who devoted hundreds of hours to that project. All of this work is done on a voluntary basis within spare time, thus bare with the programmers<a NAME="programmers71"> </a> in case something does not work the way you want it to. Instead, sit down and write them a kind (!) letter proposing what to change. Alternatively, you can subscribe to the <i>FlightGear </i>mailing lists<a NAME="mailing lists71"> </a> and contribute your thoughts there. Instructions to do so can be found under <p> <a href="http://www.flightgear.org/mail.html">http://www.flightgear.org/mail.html</a>. <p> Essentially there are two lists, one of which being mainly for the developers and the other one for users. <p> These are the people who did the job (This information was essentially taken from the file <tt>Thanks</tt> accompanying the code): <p><br> <p> Raul Alonzo<a NAME="Alonzo, Raul71"> </a> (<a href="mailto:amil@las.es">amil@las.es</a>)<br> Author of Ssystem and moon texture. <p><br> <p> Michele America<a NAME="America, Michele71"> </a> (<a href="mailto:nomimarketing@mail.telepac.pt">nomimarketing@mail.telepac.pt</a>)<br> Contributed to the HUD<a NAME="HUD71"> </a> code. <p><br> <p> Steve Baker<a NAME="Baker, Steve71"> </a> (<a href="mailto:sjbaker@hti.com">sjbaker@hti.com</a>)<br> Author of PUI<a NAME="PUI71"> </a> (a graphical interface written entirely on top of OpenGL<a NAME="OpenGL71"> </a>/GLUT<a NAME="GLUT71"> </a>). Author of the basic audio library<a NAME="audio library71"> </a> used in <i>FlightGear </i>. An immense amount of coaching and tutelage, both on the subjects of flight simulation and OpenGL<a NAME="OpenGL71"> </a>. It has been his comments and thoughts that have prompted the implementation of most of the more sophisticated features of <i>FlightGear </i> . <p><br> <p> Michael Basler<a NAME="Basler, Michael71"> </a> (<a href="mailto:pmb@knUUt.de">pmb@knUUt.de</a>)<br> Coauthor of Installation and Getting Started (together with Bernhard Buckel). <p><br> <p> John S. Berndt<a NAME="Berndt, John, S.71"> </a> (<a href="mailto:jsb@hal-pc.org">jsb@hal-pc.org</a>)<br> Working on a complete C++rewrite/reimplimentation of the core FDM. Initially he is using X15 data to test his code, but once things are all in place we should be able to simulator arbitrary aircraft. <p><br> <p> Paul Bleisch<a NAME="Bleisch, Paul71"> </a> (<a href="mailto:pbleisch@acm.org">pbleisch@acm.org</a>)<br> Paul redid the debug system so that it would be much more flexible, so it could be easily disabled for production system, and so that messages for certain subsystems could be selectively enabled. <p> Also contributed a first stab at a config file/command line parsing system. <p><br> <p> Jim Brennan<a NAME="Brennan, Jim71"> </a> (<a href="mailto:jjb@foothill.net">jjb@foothill.net</a>)<br> Provided a big chunk of online space to store USA scenery for Flight Gear. <p><br> <p> Bernie Bright<a NAME="Bright, Bernie71"> </a> (<a href="mailto:bbright@c031.aone.net.au">bbright@c031.aone.net.au</a>)<br> Many C++ style, usage, and implementation improvements, STL portability and much, much more. <p><br> <p> Bernhard H. Buckel<a NAME="Buckel, Bernhard H.71"> </a> (<a href="mailto:buckel@wmad95.mathematik.uni-wuerzburg.de">buckel@wmad95.mathematik.uni-wuerzburg.de</a>)<br> Contributed the README.Linux. Coauthor of Installation and Getting Started (together with Michael Basler). <p><br> <p> Gene Buckle<a NAME="Buckle, Gene71"> </a> (<a href="mailto:geneb@nwlink.com">geneb@nwlink.com</a>)<br> Gene has done a lot of work getting <i>FlightGear </i>to compile with the MSVC<a NAME="MSVC71"> </a>++ compiler. Numerous hints on detailed improvements. <p><br> <p> Didier Chauveau<a NAME="Chauveau, Didier71"> </a> (<a href="mailto:chauveau@math.univ-mlv.fr">chauveau@math.univ-mlv.fr</a>)<br> Provided some initial code to parse the 30 arcsec DEM files found at: <p> <a href="http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html">http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html</a>. <p><br> <p> Jean-Francois Doue<a NAME="Doue, Jean-Francois71"> </a><br> Vector 2D, 3D, 4D and Matrix 3D and 4D inlined C++ classes. (Based on Graphics Gems IV ed. Paul S. Heckbert) <p> <a href="http://www.animats.com/simpleppp/ftp/public_html/topics/developers.html">http://www.animats.com/simpleppp/ftp/public_html/topics/developers.html</a>. <p><br> <p> Francine Evans<a NAME="Evans, Francine71"> </a> (<a href="mailto:evans@cs.sunysb.edu">evans@cs.sunysb.edu</a>) <p> <a href="http://www.cs.sunysb.edu/~evans/stripe.html">http://www.cs.sunysb.edu/~evans/stripe.html</a> <p> Wrote the GPL'd tri-striper. <p><br> <p> Oscar Everitt<a NAME="Everitt, Oscar71"> </a> (<a href="mailto:bigoc@premier.net">bigoc@premier.net</a>)<br> Created single engine piston engine sounds as part of an F4U package for FS98<a NAME="FS9871"> </a>. They are pretty cool and Oscar was happy to contribute them to our little project. <p><br> <p> Jean-loup Gailly<a NAME="Gailly, Jean-loup71"> </a> and Mark Adler<a NAME="Adler, Mark71"> </a> (<a href="mailto:zlib@quest.jpl.nasa.gov">zlib@quest.jpl.nasa.gov</a>)<br> Authors of the zlib library<a NAME="zlib library71"> </a>. Used for on-the-fly compression and decompression routines, <p> <a href="http://www.cdrom.com/pub/infozip/zlib/">http://www.cdrom.com/pub/infozip/zlib/</a>. <p><br> <p> Thomas Gellekum<a NAME="Gellekum, Thomas71"> </a> (<a href="mailto:tg@ihf.rwth-aachen.de">tg@ihf.rwth-aachen.de</a>)<br> Changes and updates for compiling on FreeBSD<a NAME="FreeBSD71"> </a>. <p><br> <p> Jeff Goeke-Smith<a NAME="Goeke-Smith, Jeff71"> </a> (<a href="mailto:jgoeke@voyager.net">jgoeke@voyager.net</a>)<br> Contributed our first autopilot<a NAME="autopilot71"> </a> (Heading Hold). Better autoconf check for external timezone/daylight variables. <p><br> <p> Michael I. Gold<a NAME="Gold, Michael, I.71"> </a> (<a href="mailto:gold@puck.asd.sgi.com">gold@puck.asd.sgi.com</a>)<br> Patiently answered questions on OpenGL<a NAME="OpenGL71"> </a>. <p><br> <p> Charlie Hotchkiss<a NAME="Hotchkiss, Charlie71"> </a> (<a href="mailto:chotchkiss@namg.us.anritsu.com">chotchkiss@namg.us.anritsu.com</a>)<br> Worked on improving and enhancing the HUD<a NAME="HUD71"> </a> code. Lots of code style tips and code tweaks... <p><br> <p> Bruce Jackson<a NAME="Jackson, Bruce71"> </a> (NASA) (<a href="mailto:e.b.jackson@larc.nasa.gov">e.b.jackson@larc.nasa.gov</a>) <p> <a href="http://agcbwww.larc.nasa.gov/People/ebj.html">http://agcbwww.larc.nasa.gov/People/ebj.html</a> <p> Developed the LaRCsim<a NAME="LaRCsim71"> </a> code under funding by NASA which we use to provide the flight model. Bruce has patiently answered many, many questions. <p><br> <p> Tom Knienieder<a NAME="Knienieder, Tom71"> </a> (<a href="mailto:knienieder@ms.netwing.at">knienieder@ms.netwing.at</a>)<br> Ported Steve Bakers's audio library<a NAME="audio library71"> </a> to Win32. <p><br> <p> Reto Koradi<a NAME="Koradi, Reto71"> </a> (<a href="mailto:kor@mol.biol.ethz.ch">kor@mol.biol.ethz.ch</a>) <p> <a href="\web{http://www.mol.biol.ethz.ch/~kor}"><a href="http://www.mol.biol.ethz.ch/\~{}kor">http://www.mol.biol.ethz.ch/~kor</a></a> <p> Helped with setting up fog effects<a NAME="fog effects71"> </a>. <p><br> <p> Bob Kuehne<a NAME="Kuehne, Bob71"> </a> (<a href="mailto:rpk@sgi.com">rpk@sgi.com</a>)<br> Redid the Makefile system so it is simpler and more robust. <p><br> <p> Vasily Lewis<a NAME="Lewis, Vasily71"> </a> (<a href="mailto:vlewis@woodsoup.org">vlewis@woodsoup.org</a>) <p> <a href="http://www.woodsoup.org">http://www.woodsoup.org</a> <p> Provided computing resources and services so that the Flight Gear project could have real home. This includes web services, ftp services, shell accounts, email lists, dns services, etc. <p><br> <p> Eric Mitchell<a NAME="Mitchell, Eric71"> </a> (<a href="mailto:mitchell@mars.ark.com">mitchell@mars.ark.com</a>)<br> Contributed some topnotch scenery textures<a NAME="textures71"> </a>. <p><br> <p> Anders Morken<a NAME="Morken, Anders71"> </a> (<a href="mailto:amrken@online.no">amrken@online.no</a>)<br> Maintains the European mirror of the <i>FlightGear </i>web pages. <p><br> <p> Alan Murta<a NAME="Murta, Alan71"> </a> (<a href="mailto:amurta@cs.man.ac.uk">amurta@cs.man.ac.uk</a>) <p> <a href="http://www.cs.man.ac.uk/aig/staff/alan/software/">http://www.cs.man.ac.uk/aig/staff/alan/software/</a> <p> Created the Generic Polygon Clipping library. <p><br> <p> Curt Olson<a NAME="Olson, Curt71"> </a> (<a href="mailto:curt@flightgear.org">curt@flightgear.org</a>)<br> Primary organization of the project. First implementation and modifications based on LaRCsim<a NAME="LaRCsim71"> </a>. Besides putting together all the pieces provided by others mainly concentrating on the scenery engine<a NAME="scenery engine71"> </a> as well as the graphics stuff. <p><br> <p> Friedemann Reinhard<a NAME="Reinhard, Friedemann71"> </a> (<a href="mailto:mpt218@faupt212.physik.uni-erlangen.de">mpt218@faupt212.physik.uni-erlangen.de</a>)<br> Development of textured instrument panel<a NAME="panel71"> </a>. <p><br> <p> Petter Reinholdtsen<a NAME="Reinholdtsen, Petter71"> </a> (<a href="mailto:pere@games.no">pere@games.no</a>)<br> Incorporated the Gnu automake/autoconf system (with libtool). This should streamline and standardize the build process for all UNIX-like platforms. It should have little effect on IDE type environments since they don't use the UNIX make system. <p><br> <p> William Riley<a NAME="Riley, William71"> </a> (<a href="mailto:riley@technologist.com">riley@technologist.com</a>)<br> Contributed code to add ''brakes''. <p><br> <p> Paul Schlyter<a NAME="Schlyter, Paul71"> </a> (<a href="mailto:pausch@saaf.se">pausch@saaf.se</a>)<br> Provided Durk Talsma with all the information he needed to write the astro code. <p><br> <p> Chris Schoeneman<a NAME="Schoenemann, Chris71"> </a> (<a href="mailto:crs@millpond.engr.sgi.com">crs@millpond.engr.sgi.com</a>)<br> Contributed ideas on audio support. <p><br> <p> Jonathan R Shewchuk<a NAME="Shewchuk, Jonathan71"> </a> (<a href="mailto:Jonathan\_R\_Shewchuk@ux4.sp.cs.cmu.edu">Jonathan_R_Shewchuk@ux4.sp.cs.cmu.edu</a>)<br> Author of the Triangle<a NAME="triangle program71"> </a> program. Triangle is used to calculate the Delauney triangulation of our irregular terrain. <p><br> <p> Gordan Sikic<a NAME="Sikic, Gordan71"> </a> (<a href="mailto:gsikic@public.srce.hr">gsikic@public.srce.hr</a>)<br> Contributed a Cherokee flight model<a NAME="Cherokee flight model71"> </a> for LaRCsim<a NAME="LaRCsim71"> </a>. Currently is not working and needs to be debugged. Use configure <tt>--with-flight-model=cherokee</tt> to build the cherokee instead of the Navion<a NAME="Navion71"> </a>. <p><br> <p> Michael Smith<a NAME="Smith, Michael71"> </a> (<a href="mailto:msmith99@flash.net">msmith99@flash.net</a>)<br> Contributed cockpit graphics, 3d models, logos, and other images. Project Bonanza <p> <a href="http://members.xoom.com/ConceptSim/index.html">http://members.xoom.com/ConceptSim/index.html</a>. <p><br> <p> U. S. Geological Survey<a NAME="U.\,S. Geological Survey71"> </a> <p> <a href="http://edcwww.cr.usgs.gov/doc/edchome/ndcdb/ndcdb.html">http://edcwww.cr.usgs.gov/doc/edchome/ndcdb/ndcdb.html</a> <p> Provided geographic data used by this project. <p><br> <p> Durk Talsma<a NAME="Talsma, Durk71"> </a> (<a href="mailto:pn\_talsma@macmail.psy.uva.nl">pn_talsma@macmail.psy.uva.nl</a>)<br> Accurate Sun, Moon, and Planets. Sun changes color based on position in sky. Moon has correct phase and blends well into the sky. Planets are correctly positioned and have proper magnitude. <p><br> <p> Gary R. Van Sickle<a NAME="van Sickle, Gary R.71"> </a> (<a href="mailto:tiberius@braemarinc.com">tiberius@braemarinc.com</a>)<br> Contributed some initial GameGLUT<a NAME="GameGLUT71"> </a> support and other fixes. <p><br> <p> Norman Vine<a NAME="Vine, Norman71"> </a> (<a href="mailto:nhv@laserplot.com">nhv@laserplot.com</a>)<br> Many performance optimizations throughout the code. Many contributions and much advice for the scenery generation section. Lots of Windows related contributions. <p><br> <p> Carmelo Volpe<a NAME="Volpe, Carmelo71"> </a> (<a href="mailto:carmelo.volpe@csb.ki.se">carmelo.volpe@csb.ki.se</a>)<br> Porting <i>FlightGear </i>to the Metro Works<a NAME="Metro Works71"> </a> development environment (PC/Mac). <p><br> <p> Robert Allan Zeh<a NAME="Zeh, Allan71"> </a> (<a href="mailto:raz@cmg.FCNBD.COM">raz@cmg.FCNBD.COM</a>)<br> Helped tremendously in figuring out the Cygnus<a NAME="Cygnus71"> </a> Win32 compiler and how to link with .dll's. Without him the first run-able Win32 version of <i>FlightGear </i>would have been impossible. <p> <H2><A NAME="tth_sEc7.2"> 7.2</A> What remains to be done</H2> At first: If you read (and, maybe, followed) this guide until this point you may probably agree that <i>FlightGear </i> , even in its present state, is not at all for the birds. It is already a flight simulator which has a flight model, a plane, terrain scenery, texturing and simple controls. <p> Despite, <i>FlightGear </i>needs - and gets - further development. Except internal tweakings, there are several fields where <i>FlightGear </i>needs basics improvement and development. <p> A first direction is adding airports<a NAME="airports72"> </a>, streets, rivers and all that bringing the Scenery to real life. <p> Second, the panel<a NAME="panel72"> </a> (being disabled by default at present) needs further improvement including more working gauges. <p> Besides, there should be support for adding more planes<a NAME="planes72"> </a> and for implementing corresponding flight models differing from the basic Navion<a NAME="Navion72"> </a>. <p> Another major task is further implementation of the menu system<a NAME="menu system72"> </a>, which at its present state basically does nothing. <p> Another direction concerns audio support<a NAME="audio support72"> </a>. While the audio library itself is essentially complete there is a need for more sounds to play and for code to drive it. <p> There are already people working in all of these directions. But if you're a programmer and think you can contribute, you are invited to do so. <p> <H3>Achnowledgements</H3> Obviously this document could not have been written without all those contributors mentioned above making <i>FlightGear </i>a reality. <p> Beyond this we would like to say special thanks to Curt Olson,<a NAME="Olson, Curt72"> </a> whose numerous scattered Readmes, Thanks, Webpages, and personal eMails were of special help to us and were freely exploited in the making of this booklet. <p> Further, we would like to thank Kai Troester<a NAME="Troester, Kai72"> </a> for donating the solution of some of his compile problems to our Chapter <A href="#missed">8</A>. <p> In addition, we would like to thank Steve Baker<a NAME="Baker, Steve72"> </a> for a careful reading and for numerous hints on the first draft of this guide. <p> In addition we gained from hints given to Newcomers on the Mailing lists, notably from those given by Norman Vine <a NAME="Vine, Norman72"> </a>, to name only one. <p> <H1><A NAME="tth_chAp8"> Chapter 8 </A><br>Missed approach: If anything refuses to work<A NAME="missed"> </A></H1> We tried to sort problems<a NAME="problems80"> </a> according to operating system to a certain extent , but if you encounter a problem it may be a wise idea to look beyond ''your'' operating system - just in case. <p> <H2><A NAME="tth_sEc8.1"> 8.1</A> General problems</H2> <UL> <p> <li><i>FlightGear </i>runs SOOO slow<br> If the HUD<a NAME="HUD81"> </a> indicates you are getting something like 1 fps (frame per second) or below you typically don't have working hardware OpenGL<a NAME="OpenGL81"> </a> support. There may be several reasons for this. First, there may be no OpenGL hardware drivers available for older cards. In this case it is highly recommended to get a new board. <p> Second, check if your drivers are properly installed. Several cards need additional OpenGL support drivers besides the ''native'' windows ones. For more detail check chapter <A href="#opengl">2</A>. <p> Third, check if your hardware driver is called <tt>opengl32.dll</tt> or just merely <tt>opengl.dll</tt>. By the default compilation, binaries are linked against <tt>open</tt> <tt>gl32.dll</tt>. If you require the non-32 version, consider rebuilding <i>FlightGear </i>with the libraries <tt>opengl32.dll</tt>, <tt>glut32.dll</tt>, and <tt>glu32.dll</tt> replaced by their non-32 counterparts. For more details check chapter <A href="#building">3</A>. <p> If you installed the pre-compiled binaries <tt>runfgfs.bat</tt> invokes <tt>fgfs.exe</tt> while <tt>runfgfs.sgi.bat</tt> invokes <tt>fgfs.sgi.exe</tt> with the first ones being linked against the 32-versions. <p> Usually, hardware accelerated drivers use the 32-libraries. <p> <li>The menu items do not work<br> No wonder - they are not implemented yet. <p> </UL> <H2><A NAME="tth_sEc8.2"> 8.2</A> Potential problems under Linux</H2> <p> Since we don't have access to all possible flavors of Linux distributions, here are some thoughts on possible causes of problems. (This section includes contributions by Kai Troester <a href="mailto:Kai.Troester@rz.tu-ilmenau.de">Kai.Troester@rz.tu-ilmenau.de</a>.) <p> <UL> <li>Wrong library versions<br> This is a rather common cause of grief especially when you prefer to install the libraries needed by <i>FlightGear </i>by hand. Be sure that especially the Mesa library contains support for the 3DFX board<a NAME="3DFX board82"> </a> and that Glide<a NAME="Glide82"> </a> libraries are installed and can be found. If a <tt>ldd `which fgfs`</tt> complains about missing libraries you are in trouble. <p> <li>Missing permissions<a NAME="permissions82"> </a><br> <i>FlightGear </i>needs to be setuid root in order to be capable of accessing the accelerator board. Be sure to issue a <p> <tt>chown root.root /usr/local/bin/fgfs ;</tt><br> <tt>chmod 4755 /usr/local/bin/fgfs</tt> <p> to give the <i>FlightGear </i>binary the proper rights. There is development of a device named <tt>/dev/3dfx</tt> underway, so this probably being remedied in the near future. <p> <li>Non-default install options<br> <i>FlightGear </i>will display a lot of diagnostics when being started up. If it complains about bad looking or missing files, check that you installed them in the way they are supposed to be, i.e. latest version and proper location. The canonical location <i>FlightGear </i> wants its data files under <tt>/usr/local/lib</tt>. Be sure to grab the latest versions of everything that might be needed! <p> <li>Compile problems<br> Check as far as you can, as a last resort (and a great information source, too) there are mailing lists for which information can be gotten at <p> <a href="http://www.flightgear.org/mail.html">http://www.flightgear.org/mail.html</a>. <p> This will give you direct contact to the developers. <p> <li>Configure could not find Mesa and Glut though they are installed <p> If the configure script could not find your Mesa and Glut libraries you should add the Mesa library-path (i.e. <tt>/usr/local/Mesa</tt>) to the EXTRA_DIRS variable in the file configure.in (i.e. <tt>EXTRA_DIRS=''/usr/local/usr/</tt> <tt>X11R6/usr/local/Mesa''</tt>). After this you have to run autoconf. (Please read README.autoconf for running autoconf ) <p> <li>SuSE Distribution <UL> <p> <li> If you have a SuSE distribution use the egcs compiler instead of the compiler delivered with SuSE. Grab it at <p> <a href="http://egcs.cygnus.com">http://egcs.cygnus.com</a> <p> <li> SuSE 6.0 users should also use the Glide, Mesa and Glut Libraries delivered with the distribution <li> A known problem of Flight Gear until version Version 0.57 with SuSE concerns <tt>acconfig.h</tt>. If 'make' stops and reports an error in relation with acconfig.h insert the following lines to <tt>/usr/share/autoconf/</tt> <tt>acconfig.h</tt>: <p> <tt>/* needed to compile fgfs properly*/</tt><br> <tt>#undef FG_NDEBUG</tt><br> <tt>#undef PACKAGE</tt><br> <tt>#undef VERSION</tt><br> <tt>#undef WIN32a</tt> <p> (a solution for this problem is coming soon ) </UL> <p> Additionally there are two versions of the GNU C compiler around: egcs and gcc (the classic one). gcc seems to have its own notion of some C++ constructs, so updating to egcs won't hurt and maybe help to compile the program. <p> </UL> <H2><A NAME="tth_sEc8.3"> 8.3</A> Potential problems under Windows95/NT</H2> <p> <UL> <li>The executable refuses to run.<br> You may have tried to start the executable directly either by double-clicking <tt>fgfs.exe</tt> in Windows explorer or by invoking it in a MS-DOS shell. Double-clicking via explorer does never work (except you set the environment variable <tt>FG_ROOT</tt> in the autoexec.bat or otherwise). Rather double-click <tt>runfgfs.bat</tt> or <tt>runfgfs-sgi.bat</tt> For more detail, check chapter <A href="#takeoff">5</A>. <p> Another potential problem might be you did not download the most recent versions of scenery and textures required by <i>FlightGear </i>, or you did not load any scenery or texture at all. Have a close look at this, as the scenery/texture format is still under development and may change frequently. For more detail, check chapter <A href="#prefligh">4</A>. <p> A further potential source of trouble are so-called mini-OpenGL<a NAME="mini-OpenGL83"> </a> drivers provided by some manufacturers. In this case, <i>FlightGear </i>'s typically hangs while opening the graphics window. In this case, either replace the mini-OpenGL<a NAME="mini-OpenGL83"> </a> driver by a full OpenGL driver or or in case such is not available install software OpenGL support (see section <A href="#softrend">2.5</A>). <p> <li><i>FlightGear </i>ignores the command line parameters.<br> There is a problem with passing command line options containing a ''='' to windows batch files. Instead, include the options into <tt>runfgfs.bat</tt>. <p> <li>While compiling with the Cygnus Compiler <tt>Configure</tt> complains not to find <tt>glu32.dll</tt>. <p> Make sure you change to the Main FlightGear directory, e. g. with <p> <tt>cd //D/FlightGear-X.XX</tt> <p> before running <tt>Configure</tt> and <tt>Make</tt>. <p> <li>I am unable to build <i>FlightGear </i>under MSVC<a NAME="MSVC83"> </a>/MS DevStudio<a NAME="MS DevStudio83"> </a><br> By default, <i>FlightGear </i>is bild with GNU C++, i. e. the Cygnus<a NAME="Cygnus83"> </a> compiler for Win32. For hints or Makefiles required for MSVC for MSC DevStudio have a look into <p> <a href="http://www.flightgear.org/Downloads/Source">http://www.flightgear.org/Downloads/Source</a>. <p> </UL><p> <font size="-2"> <a name="tth_sEcindex"></a> <H2> Index (showing section)</H2> <DL compact> <dt></dt><dd> <i>FlightGear </i>Flight School, <a href="#\FlightGear Flight School14">1-4</a> <dt></dt><dd> <i>FlightGear </i>Programmer's Guide, <a href="#\FlightGear Programmer's Guide30">3-0</a> <dt></dt><dd> <i>FlightGear </i>Scenery Design Guide, <a href="#\FlightGear Scenery Design Guide14">1-4</a> <dt></dt><dd> <i>FlightGear </i>Website, <a href="#\FlightGear Website12">1-2</a> <dt></dt><dd> <i>FlightGear </i>documentation, <a href="#\FlightGear documentation14">1-4</a> <dt></dt><dd> <i>FlightGear </i>home page, <a href="#\FlightGear home page14">1-4</a> <dt></dt><dd> 3DFX, <a href="#3DFX21">2-1</a>, <a href="#3DFX24">2-4</a> <dt></dt><dd> 3DFX board, <a href="#3DFX board82">8-2</a> <dt></dt><dd> 3DFX chip, <a href="#3DFX chip24">2-4</a> <dt></dt><dd> 3DXF, <a href="#3DXF24">2-4</a> <p> <dt></dt><dd> <dt></dt><dd> Adler, Mark, <a href="#Adler, Mark71">7-1</a> <dt></dt><dd> aileron, <a href="#aileron62">6-2</a> <dt></dt><dd> aileron indicator, <a href="#aileron indicator62">6-2</a> <dt></dt><dd> airport code, <a href="#airport code53">5-3</a> <dt></dt><dd> airports, <a href="#airports72">7-2</a> <dt></dt><dd> Alonzo, Raul, <a href="#Alonzo, Raul71">7-1</a> <dt></dt><dd> America, Michele, <a href="#America, Michele12">1-2</a>, <a href="#America, Michele71">7-1</a> <dt></dt><dd> angle of attack, <a href="#angle of attack62">6-2</a> <dt></dt><dd> AOA, <a href="#AOA62">6-2</a> <dt></dt><dd> astronomy code, <a href="#astronomy code12">1-2</a> <dt></dt><dd> audio library, <a href="#audio library71">7-1</a> <dt></dt><dd> audio support, <a href="#audio support12">1-2</a>, <a href="#audio support72">7-2</a> <dt></dt><dd> autopilot, <a href="#autopilot12">1-2</a>, <a href="#autopilot61">6-1</a>, <a href="#autopilot71">7-1</a> <dt></dt><dd> autopilot controls, <a href="#autopilot controls61">6-1</a> <p> <dt></dt><dd> <dt></dt><dd> Baker, Steve, <a href="#Baker, Steve12">1-2</a>, <a href="#Baker, Steve71">7-1</a> <dt></dt><dd> Basler, Michael, <a href="#Basler, Michael71">7-1</a> <dt></dt><dd> Berndt, John, S., <a href="#Berndt, John, S.71">7-1</a> <dt></dt><dd> binaries, <a href="#binaries31">3-1</a>, <a href="#binaries32">3-2</a>, <a href="#binaries41">4-1</a> <dt></dt><dd> installation, <a href="#binaries+installation41">4-1</a> <dt></dt><dd> binaries, pre-compiled, <a href="#binaries, pre-compiled30">3-0</a> <dt></dt><dd> Bleisch, Paul, <a href="#Bleisch, Paul71">7-1</a> <dt></dt><dd> Brennan, Jim, <a href="#Brennan, Jim71">7-1</a> <dt></dt><dd> Bright, Bernie, <a href="#Bright, Bernie71">7-1</a> <dt></dt><dd> BSD UNIX, <a href="#BSD UNIX11">1-1</a> <dt></dt><dd> Buckel, Bernhard H., <a href="#Buckel, Bernhard H.71">7-1</a> <dt></dt><dd> Buckle, Gene, <a href="#Buckle, Gene71">7-1</a> <dt></dt><dd> build tree, <a href="#build tree32">3-2</a> <p> <dt></dt><dd> <dt></dt><dd> Cessna, <a href="#Cessna62">6-2</a> <dt></dt><dd> Chauveau, Didier, <a href="#Chauveau, Didier71">7-1</a> <dt></dt><dd> Cherokee flight model, <a href="#Cherokee flight model71">7-1</a> <dt></dt><dd> climb/sink rate, <a href="#climb/sink rate62">6-2</a> <dt></dt><dd> cockpit, <a href="#cockpit53">5-3</a> <dt></dt><dd> command line options, <a href="#command line options53">5-3</a> <dt></dt><dd> compiler, <a href="#compiler13">1-3</a> <dt></dt><dd> compiling, <a href="#compiling30">3-0</a> <dt></dt><dd> Linux, <a href="#compiling+Linux31">3-1</a> <dt></dt><dd> Windows 98/NT, <a href="#compiling+Windows 98/NT32">3-2</a> <dt></dt><dd> configure, <a href="#configure31">3-1</a>, <a href="#configure32">3-2</a> <dt></dt><dd> Creative Graphics Blaster, <a href="#Creative Graphics Blaster23">2-3</a> <dt></dt><dd> Cygnus, <a href="#Cygnus13">1-3</a>, <a href="#Cygnus32">3-2</a>, <a href="#Cygnus71">7-1</a>, <a href="#Cygnus83">8-3</a> <dt></dt><dd> Cygnus Win32 port of GNU C, <a href="#Cygnus Win32 port of GNU C32">3-2</a> <p> <dt></dt><dd> <dt></dt><dd> Diamond Stealth II, <a href="#Diamond Stealth II22">2-2</a> <dt></dt><dd> Diamond Viper 550, <a href="#Diamond Viper 55023">2-3</a> <dt></dt><dd> documentation, <a href="#documentation11">1-1</a> <dt></dt><dd> DOS, <a href="#DOS11">1-1</a>, <a href="#DOS12">1-2</a> <dt></dt><dd> Doue, Jean-Francois, <a href="#Doue, Jean-Francois71">7-1</a> <p> <dt></dt><dd> <dt></dt><dd> EGCS, <a href="#EGCS32">3-2</a> <dt></dt><dd> elevation, <a href="#elevation62">6-2</a> <dt></dt><dd> elevation indicator, <a href="#elevation indicator62">6-2</a> <dt></dt><dd> environment variable, <a href="#environment variable21">2-1</a> <dt></dt><dd> Evans, Francine, <a href="#Evans, Francine71">7-1</a> <dt></dt><dd> Everitt, Oscar, <a href="#Everitt, Oscar71">7-1</a> <p> <dt></dt><dd> <dt></dt><dd> field of view, <a href="#field of view53">5-3</a>, <a href="#field of view62">6-2</a> <dt></dt><dd> Flight simulator <dt></dt><dd> civilian, <a href="#Flight simulator+civilian11">1-1</a> <dt></dt><dd> free, <a href="#Flight simulator+free12">1-2</a> <dt></dt><dd> multi-platform, <a href="#Flight simulator+multi-platform11">1-1</a> <dt></dt><dd> open, <a href="#Flight simulator+open11">1-1</a> <dt></dt><dd> user-extensible, <a href="#Flight simulator+user-extensible11">1-1</a> <dt></dt><dd> user-supported, <a href="#Flight simulator+user-supported11">1-1</a> <dt></dt><dd> Flight Unlimited II, <a href="#Flight Unlimited II11">1-1</a> <dt></dt><dd> fog, <a href="#fog53">5-3</a> <dt></dt><dd> fog effects, <a href="#fog effects71">7-1</a> <dt></dt><dd> FOV, <a href="#FOV62">6-2</a> <dt></dt><dd> frame rate, <a href="#frame rate12">1-2</a>, <a href="#frame rate13">1-3</a>, <a href="#frame rate62">6-2</a> <dt></dt><dd> FreeBSD, <a href="#FreeBSD71">7-1</a> <dt></dt><dd> FS98, <a href="#FS9811">1-1</a>, <a href="#FS9871">7-1</a> <dt></dt><dd> fullscreen display, <a href="#fullscreen display53">5-3</a> <p> <dt></dt><dd> <dt></dt><dd> Gailly, Jean-loup, <a href="#Gailly, Jean-loup71">7-1</a> <dt></dt><dd> GameGLUT, <a href="#GameGLUT71">7-1</a> <dt></dt><dd> Gellekum, Thomas, <a href="#Gellekum, Thomas71">7-1</a> <dt></dt><dd> GLIDE, <a href="#GLIDE21">2-1</a> <dt></dt><dd> Glide, <a href="#Glide82">8-2</a> <dt></dt><dd> GLUT, <a href="#GLUT21">2-1</a>, <a href="#GLUT71">7-1</a> <dt></dt><dd> GNU C++, <a href="#GNU C++13">1-3</a> <dt></dt><dd> Gnu Public License, <a href="#Gnu Public License11">1-1</a> <dt></dt><dd> Goeke-Smith, Jeff, <a href="#Goeke-Smith, Jeff12">1-2</a>, <a href="#Goeke-Smith, Jeff71">7-1</a> <dt></dt><dd> Gold, Michael, I., <a href="#Gold, Michael, I.71">7-1</a> <dt></dt><dd> graphics drivers, <a href="#graphics drivers20">2-0</a> <dt></dt><dd> graphics library, <a href="#graphics library20">2-0</a> <dt></dt><dd> graphics routines, <a href="#graphics routines12">1-2</a> <p> <dt></dt><dd> <dt></dt><dd> haze, <a href="#haze53">5-3</a> <dt></dt><dd> head up display, <a href="#head up display12">1-2</a>, <a href="#head up display62">6-2</a> <dt></dt><dd> heading, <a href="#heading62">6-2</a> <dt></dt><dd> height, <a href="#height62">6-2</a> <dt></dt><dd> history, <a href="#history12">1-2</a> <dt></dt><dd> Hotchkiss, Charlie, <a href="#Hotchkiss, Charlie12">1-2</a>, <a href="#Hotchkiss, Charlie71">7-1</a> <dt></dt><dd> HUD, <a href="#HUD12">1-2</a>, <a href="#HUD53">5-3</a>, <a href="#HUD60">6-0</a>, <a href="#HUD62">6-2</a>, <a href="#HUD71">7-1</a>, <a href="#HUD81">8-1</a> <p> <dt></dt><dd> <dt></dt><dd> initial heading, <a href="#initial heading53">5-3</a> <dt></dt><dd> initial pitch angle, <a href="#initial pitch angle53">5-3</a> <dt></dt><dd> initial roll angle, <a href="#initial roll angle53">5-3</a> <dt></dt><dd> install tree, <a href="#install tree32">3-2</a> <dt></dt><dd> instrument panel, <a href="#instrument panel53">5-3</a> <p> <dt></dt><dd> <dt></dt><dd> Jackson, Bruce, <a href="#Jackson, Bruce12">1-2</a>, <a href="#Jackson, Bruce71">7-1</a> <dt></dt><dd> joystick, <a href="#joystick13">1-3</a>, <a href="#joystick61">6-1</a> <p> <dt></dt><dd> <dt></dt><dd> keyboard commands, <a href="#keyboard commands61">6-1</a> <dt></dt><dd> keystrokes, <a href="#keystrokes60">6-0</a> <dt></dt><dd> Knienieder, Tom, <a href="#Knienieder, Tom12">1-2</a>, <a href="#Knienieder, Tom71">7-1</a> <dt></dt><dd> Koradi, Reto, <a href="#Koradi, Reto71">7-1</a> <dt></dt><dd> Korpela, Eric, <a href="#Korpela, Eric12">1-2</a> <dt></dt><dd> Kuehne, Bob, <a href="#Kuehne, Bob71">7-1</a> <p> <dt></dt><dd> <dt></dt><dd> LaRCsim, <a href="#LaRCsim12">1-2</a>, <a href="#LaRCsim71">7-1</a> <dt></dt><dd> Lewis, Vasily, <a href="#Lewis, Vasily71">7-1</a> <dt></dt><dd> Linux, <a href="#Linux11">1-1</a>, <a href="#Linux12">1-2</a>, <a href="#Linux13">1-3</a>, <a href="#Linux21">2-1</a>, <a href="#Linux30">3-0</a>, <a href="#Linux31">3-1</a>, <a href="#Linux41">4-1</a>, <a href="#Linux42">4-2</a> <dt></dt><dd> Looking Glass, <a href="#Looking Glass11">1-1</a> <dt></dt><dd> loop-through-cable, <a href="#loop-through-cable21">2-1</a> <p> <dt></dt><dd> <dt></dt><dd> MacIntosh, <a href="#MacIntosh11">1-1</a> <dt></dt><dd> mailing lists, <a href="#mailing lists71">7-1</a> <dt></dt><dd> menu system, <a href="#menu system12">1-2</a> <dt></dt><dd> MESA, <a href="#MESA21">2-1</a> <dt></dt><dd> Metro Works, <a href="#Metro Works71">7-1</a> <dt></dt><dd> Microsoft, <a href="#Microsoft11">1-1</a> <dt></dt><dd> military components, <a href="#military components11">1-1</a> <dt></dt><dd> mini-OpenGL, <a href="#mini-OpenGL22">2-2</a>, <a href="#mini-OpenGL83">8-3</a> <dt></dt><dd> Mitchell, Eric, <a href="#Mitchell, Eric12">1-2</a>, <a href="#Mitchell, Eric71">7-1</a> <dt></dt><dd> Morken, Anders, <a href="#Morken, Anders71">7-1</a> <dt></dt><dd> MS DevStudio, <a href="#MS DevStudio83">8-3</a> <dt></dt><dd> MS Visual C5, <a href="#MS Visual C532">3-2</a> <dt></dt><dd> MSVC, <a href="#MSVC13">1-3</a>, <a href="#MSVC71">7-1</a>, <a href="#MSVC83">8-3</a> <dt></dt><dd> Murr, David, <a href="#Murr, David12">1-2</a> <dt></dt><dd> Murta, Alan, <a href="#Murta, Alan71">7-1</a> <p> <dt></dt><dd> <dt></dt><dd> Navion, <a href="#Navion12">1-2</a>, <a href="#Navion61">6-1</a>, <a href="#Navion62">6-2</a>, <a href="#Navion71">7-1</a>, <a href="#Navion72">7-2</a> <dt></dt><dd> number of triangles, <a href="#number of triangles62">6-2</a> <dt></dt><dd> NumLock, <a href="#NumLock61">6-1</a> <p> <dt></dt><dd> <dt></dt><dd> Olson, Curt, <a href="#Olson, Curt12">1-2</a>, <a href="#Olson, Curt42">4-2</a>, <a href="#Olson, Curt71">7-1</a>, <a href="#Olson, Curt72">7-2</a> <dt></dt><dd> OpenGL, <a href="#OpenGL12">1-2</a>, <a href="#OpenGL13">1-3</a>, <a href="#OpenGL14">1-4</a>, <a href="#OpenGL20">2-0</a>, <a href="#OpenGL22">2-2</a>, <a href="#OpenGL25">2-5</a>, <a href="#OpenGL30">3-0</a>, <a href="#OpenGL52">5-2</a>, <a href="#OpenGL71">7-1</a>, <a href="#OpenGL81">8-1</a> <dt></dt><dd> drivers, <a href="#OpenGL+drivers13">1-3</a> <dt></dt><dd> software rendering, <a href="#OpenGL+software rendering25">2-5</a> <dt></dt><dd> Operating Systems, <a href="#Operating Systems11">1-1</a> <dt></dt><dd> orientation, <a href="#orientation53">5-3</a> <dt></dt><dd> OS/2, <a href="#OS/211">1-1</a>, <a href="#OS/212">1-2</a> <p> <dt></dt><dd> <dt></dt><dd> panel, <a href="#panel12">1-2</a>, <a href="#panel62">6-2</a>, <a href="#panel71">7-1</a>, <a href="#panel72">7-2</a> <dt></dt><dd> panel code, <a href="#panel code12">1-2</a> <dt></dt><dd> permissions, <a href="#permissions82">8-2</a> <dt></dt><dd> pitch indicator, <a href="#pitch indicator62">6-2</a> <dt></dt><dd> planes, <a href="#planes72">7-2</a> <dt></dt><dd> problems, <a href="#problems80">8-0</a> <dt></dt><dd> programmers, <a href="#programmers71">7-1</a> <dt></dt><dd> proposal, <a href="#proposal12">1-2</a> <dt></dt><dd> PUI, <a href="#PUI12">1-2</a>, <a href="#PUI71">7-1</a> <p> <dt></dt><dd> <dt></dt><dd> Reinhard, Friedemann, <a href="#Reinhard, Friedemann12">1-2</a>, <a href="#Reinhard, Friedemann71">7-1</a> <dt></dt><dd> Reinholdtsen, Petter, <a href="#Reinholdtsen, Petter71">7-1</a> <dt></dt><dd> rendering options, <a href="#rendering options53">5-3</a> <dt></dt><dd> Rendition chipset, <a href="#Rendition chipset22">2-2</a> <dt></dt><dd> Riley, William, <a href="#Riley, William71">7-1</a> <dt></dt><dd> RIVA TNT chipset, <a href="#RIVA TNT chipset23">2-3</a> <dt></dt><dd> roll, <a href="#roll62">6-2</a> <dt></dt><dd> rudder indicator, <a href="#rudder indicator62">6-2</a> <p> <dt></dt><dd> <dt></dt><dd> scenery, <a href="#scenery12">1-2</a>, <a href="#scenery32">3-2</a>, <a href="#scenery42">4-2</a> <dt></dt><dd> Schlyter, Paul, <a href="#Schlyter, Paul71">7-1</a> <dt></dt><dd> Schoenemann, Chris, <a href="#Schoenemann, Chris71">7-1</a> <dt></dt><dd> SGI IRIX, <a href="#SGI IRIX11">1-1</a> <dt></dt><dd> Shewchuk, Jonathan, <a href="#Shewchuk, Jonathan71">7-1</a> <dt></dt><dd> sideslip, <a href="#sideslip62">6-2</a> <dt></dt><dd> Sikic, Gordan, <a href="#Sikic, Gordan71">7-1</a> <dt></dt><dd> Smith, Michael, <a href="#Smith, Michael71">7-1</a> <dt></dt><dd> software rendering, <a href="#software rendering32">3-2</a> <dt></dt><dd> sound, <a href="#sound42">4-2</a> <dt></dt><dd> sound card, <a href="#sound card13">1-3</a> <dt></dt><dd> sound effects, <a href="#sound effects13">1-3</a> <dt></dt><dd> source code, <a href="#source code11">1-1</a> <dt></dt><dd> speed, <a href="#speed62">6-2</a> <dt></dt><dd> Sun-OS, <a href="#Sun-OS12">1-2</a> <dt></dt><dd> SunOS, <a href="#SunOS11">1-1</a> <dt></dt><dd> Support files, <a href="#Support files42">4-2</a> <dt></dt><dd> system requirements, <a href="#system requirements13">1-3</a> <p> <dt></dt><dd> <dt></dt><dd> Talsma, Durk, <a href="#Talsma, Durk12">1-2</a>, <a href="#Talsma, Durk71">7-1</a> <dt></dt><dd> terrain, <a href="#terrain53">5-3</a> <dt></dt><dd> texture, <a href="#texture42">4-2</a> <dt></dt><dd> textures, <a href="#textures12">1-2</a>, <a href="#textures32">3-2</a>, <a href="#textures71">7-1</a> <dt></dt><dd> throttle, <a href="#throttle62">6-2</a> <dt></dt><dd> Torvalds, Linus, <a href="#Torvalds, Linus11">1-1</a> <dt></dt><dd> triangle program, <a href="#triangle program71">7-1</a> <dt></dt><dd> Troester, Kai, <a href="#Troester, Kai72">7-2</a> <dt></dt><dd> turn indicator, <a href="#turn indicator62">6-2</a> <p> <dt></dt><dd> <dt></dt><dd> U. S. Geological Survey, <a href="#U.\,S. Geological Survey12">1-2</a>, <a href="#U.\,S. Geological Survey71">7-1</a> <dt></dt><dd> UNIX, <a href="#UNIX12">1-2</a>, <a href="#UNIX13">1-3</a>, <a href="#UNIX30">3-0</a>, <a href="#UNIX42">4-2</a> <dt></dt><dd> USA Scenery files, <a href="#USA Scenery files42">4-2</a> <p> <dt></dt><dd> <dt></dt><dd> van Sickle, Gary R., <a href="#van Sickle, Gary R.71">7-1</a> <dt></dt><dd> vertical speed, <a href="#vertical speed62">6-2</a> <dt></dt><dd> video card, <a href="#video card20">2-0</a>, <a href="#video card32">3-2</a> <dt></dt><dd> view directions, <a href="#view directions61">6-1</a> <dt></dt><dd> view frustrum culling, <a href="#view frustrum culling12">1-2</a> <dt></dt><dd> Vine, Norman, <a href="#Vine, Norman12">1-2</a>, <a href="#Vine, Norman71">7-1</a>, <a href="#Vine, Norman72">7-2</a> <dt></dt><dd> Volpe, Carmelo, <a href="#Volpe, Carmelo71">7-1</a> <dt></dt><dd> Voodoo, <a href="#Voodoo21">2-1</a> <p> <dt></dt><dd> <dt></dt><dd> Win32 libraries, <a href="#Win32 libraries32">3-2</a> <dt></dt><dd> Windows 95/98, <a href="#Windows 95/9811">1-1</a> <dt></dt><dd> Windows 95/NT, <a href="#Windows 95/NT12">1-2</a> <dt></dt><dd> Windows 98, <a href="#Windows 9813">1-3</a> <dt></dt><dd> Windows 98/NT, <a href="#Windows 98/NT13">1-3</a>, <a href="#Windows 98/NT22">2-2</a>, <a href="#Windows 98/NT23">2-3</a>, <a href="#Windows 98/NT24">2-4</a>, <a href="#Windows 98/NT25">2-5</a>, <a href="#Windows 98/NT30">3-0</a>, <a href="#Windows 98/NT32">3-2</a>, <a href="#Windows 98/NT41">4-1</a>, <a href="#Windows 98/NT42">4-2</a>, <a href="#Windows 98/NT52">5-2</a> <dt></dt><dd> Windows drivers, <a href="#Windows drivers22">2-2</a> <dt></dt><dd> Windows NT, <a href="#Windows NT11">1-1</a>, <a href="#Windows NT13">1-3</a> <dt></dt><dd> workstation, <a href="#workstation12">1-2</a>, <a href="#workstation13">1-3</a> <p> <dt></dt><dd> <dt></dt><dd> yoke, <a href="#yoke13">1-3</a>, <a href="#yoke61">6-1</a> <p> <dt></dt><dd> <dt></dt><dd> Zeh, Allan, <a href="#Zeh, Allan71">7-1</a> <dt></dt><dd> zlib library, <a href="#zlib library71">7-1</a> <dt></dt><dd> zoom, <a href="#zoom62">6-2</a> <p> </DL> </font> <p><hr><small>File translated from T<sub><font size="-1">E</font></sub>X by <a href="http://hutchinson.belmont.ma.us/tth/">T<sub><font size="-1">T</font></sub>H</a>, version 1.57.</small> </HTML>