YS FLIGHT SIMULATION
If you are using Windows XP Service Pack 2, and would like to use the network mode, please read this page, too.
(*)Please also refer to the YSFLIGHT2000 support page. YSFLIGHT2000 support page is linked from
This program is a flight simulator. You can fly an airplane in your PC. In this simulator, you can:
You can choose your airplane from more than 30 modern airplanes. Like other flight simulators, you can change viewpoint while flying. You can watch your airplane from outside, from the opponent airplane's view, missile view, etc. When you are watching from the outside, you'll see the motion of the landing gear and rotation of propeller if you are flying a propeller airplane.
Following environment is required.
If you are using Windows XP Service Pack 2, and would like to use the network mode, please read this page, too.
Following devices are recommended but not required.
(* Linux version does not have dialog boxes and GUI features. You need to modify configuration files directly when you want to change settings.)
You can launch a program from choosing an item from:
You can choose one of the following. If you keep SHIFT key pressed down while starting the program, the program always start in normal window mode (not full screen mode). See "Option Dialog" for more details.
If you are not sure which executables to use, please try both and use whichever you feel comfortable. (Most of the recent graphics cards are equipped with OpenGL accelerator, though).
Please move to the directory in which you extracted files, and type:
"% " here is showing a prompt. So, you really need to type only "ysflight" If the program doesn't start, please also try:
It will work if . (current directory) is not included in path.
Please also read the command parameters section. There's no Non-OpenGL version for Linux.
Choose File->Exit to terminate the program.
OK. Let's fly before going into boring explanations. The following steps will take you to the airfield. (In Linux, please start the program by typing ysflight -flyyfs fly_f22.yfs , instead of steps 1 to 5. Case sensitive.)
Now, you are ready to fly. I don't explain the details of the flight dynamics here. I hope you know how to fly an airplane :-) So, press TAB key to turn on afterburner. It's F-22. You'll experience incredible acceleration. After getting 120kt, slowly pull the stick back (move mouse down). If you pull the stick too much before getting enough airspeed, your airplane's tail will hit the ground and you'll lose your airplane. So, please make sure you have enough airspeed, then pull the stick slowly. Then, the airplane will take you to the air. Have fun! You can read about detailed control in "How to control?" section.
I designed this program so that you can enjoy if you have a PC that are faster than Pentium 500MHz. But, you'll have to turn off some features or lower the resolution to run this program on relatively slower PCs.
First, if you chose OpenGL version, it will not run on relatively slower PCs. So, please choose standard version. (See Launching the program)
Your choice of the field will affect the speed. Most air fields have many facilities, hangars and other ground objects. If your PC is not very fast, the program cannot take care of those ground objects quickly. However, the field "SMALL_MAP" does not have many ground objects. If you want to fly a dogfight or an endurance mode, you may not care much about the ground. In such cases, choosing "SMALL_MAP" will be better in terms of the program speed. In contrast, a map "TOHOKU", which is available after 20010718 version, is heavy. You need at least a PenIII450MHz and a fast graphics card to play TOHOKU map without stress.
If you still feel slow, you can go to Configuration Dialog and turn off some features. Choose Option->Config and press "Draw Fast" button. Settings will automatically be customized for relatively slower PCs. You can turn off some more features to speed up, but I do not recommend. (For the detail, see Configuration Dialog)
If still you feel slow after turning off features, you can lower the resolution. Then, go to Option Dialog and choose lower resolution.
If you are running this program under Windows NT, you'll feel some short stopping while flying. Typically, when you change throttle setting, fire a gun, stop firing a gun etc... In such case, go to Option Dialog and turn off sound. This Windows NT's stopping is caused by WAV playing function.
In the Configuration Dialog, you can configure graphics features and simulation features. Each setting means:
Mid Air Collision
Can Land Anywhere
Rudder Auto Coordination
Always show HUD
Do not Use Instrument Panel
Always Draw Player Name
Draw Virtual Joystick
F8 Camera Delay
Do not show an airplane on radar if it is below XXXX
Draw Shadow of Dead Airplane
Draw Coarse Weapon
Solid Cloud / Flat Cloud
Draw Light in Daylight
You can choose a type of smoke from: towel, solid, circle and noodle. Towel smoke looks like a lo---ng towel. Solid smoke is most similar to actual smoke. But solid smoke takes more time to draw than other types. Noodle smoke looks like a lo---ng noodle. It can be drawn quickly, but does not look nice.
If you choose circle smoke, the smoke is drawn as a sequence of circles. it cannot be drawn very fast, also does not look good. So I don't recommend it. I just experimentally implemented this feature.
Remain ?? seconds, means as it is.
Draw every ?? steps specifies the resolution of the smoke. If you specify smaller number, the resolution becomes better, but the drawing will be slower. By default, smoke is drawn every 4 steps.
Transparent Object (OpenGL only)
Transparent Smoke (OpenGL only)
Transparent Vapor (OpenGL only)
Reduce Peep Hole Made by Transparent Polygons (OpenGL
Use Display List for Drawing Cloud
Without display lists, the program transfers all polygons every time a scene is drawn. If the object is static and does not move, the program ends up with sending exactly the same information each time, and it creates considerable transaction of data between CPU and the graphics card. Instead of sending the same data many times, the program can transfer a chunk of data to the graphics card only once and later tell the graphics card to draw the chunk of data already stored in the graphics card's memory. By doing this, the program only needs to tell the graphics card the identification number of the chunk of data to draw the same thing. For example, if a missile model consists of 1000 polygons, the program needs to send 1000 polygons to the graphics card for each frame if it does not use display lists. If that many polygons are stored in the graphics card's memory, the program only needs to send one integer number to the graphics card to draw the object. It'll save time for drawing graphics significantly.
Use Display List for Drawing Weapons
Use Display List for Drawing Explosions
Use Ground Texture
Use Runway Light Texture
In Option Dialog, you can change the resolution (full-screen or normal window) and sound on/off. Option "Remember Window Position and Size" is effective only when the screen mode is "Normal Window" mode. If this option is on, the program remembers position and size of the window when the window is closed, and restores the same position and size when it starts for the next time.
If you change a screen mode in OpenGL version, you may encounter some problems due to incompatibilities of video card drivers. If you cannot start up OpenGL version after changing the resolution, try one of following three options.
(1) Start YSFLIGHT with pressing SHIFT key down. The program will always start in normal window mode if you do so. Then, go to Option Dialog and set the screen mode back to normal window.
(2) If option (1) doesn't work, choose "YSFLIGHT - RESET SETTING" from "Start Menu" -> "Programs" -> "YS FLIGHT SIMULATION SYSTEM 2000." This will initialize all the settings.
(3) If option (2) doesn't work, start the Non-OpenGL version and go to Option Dialog to set the screen mode back to normal window.
(4) If none of the above two options works, re-install YSFLIGHT.
If all three options fails, you should suspect problems of your video card driver or something other than YSFLIGHT.
can change functionalities assigned to joystick, mouse, and
keyboard. To change assignments, please choose:
In the dialog, choose a functionality in list boxes, and click "Change" button to change the assignment. For example, if you want to assign Axis 3 of Joystick 2 to throttle, click "Throttle" in "Joystick/Mouse Axes" box, and click "Change" button located right of "Joystick/Mouse Axes." Then, choose Joystick 2 Axis 3, (check "Reverse" if necessary) and click "OK."
You can also save your assignment to a file by clicking "Save" button, and you can load your assignment when you re-install YSFLIGHT, or upgrade to a newer version. However, if you load the assignment configured by an older version, no key or button is assigned to a new features added in a newer version. If you upgrade YSFLIGHT to a newer version, and if you load your key assignment, please assign new features to appropriate keys or buttons manually.
If you need to reset the assignment back to the default assignment, click "Default" button.
There are the following four types of flights in this simulator.
In free flight, there are no other airplanes than your airplane. You can just practice flying. Follow the steps below.
You can fly an air combat mission. Follow the steps below.
Since 2000/07/03 release version, you can fly an instant dogfight. In this mode, if you kill opponent airplanes, new opponent airplane will be generated and will attack on you.
The dogfight is limited to 15 minutes. No opponent airplane will be generated after this time period. If you survive 15 minutes of the air combat and if you kill the remaining enemies after this time period, you'll have chance to land to the base alive.
To play Instant Dogfight, choose "Simulation"->"Fly Endurance Mode".
In an intercept mission, you take off with your wingman (wingmen), and intercept attackers. To play an intercept mission, choose "Simulation" -> "Intercept Mission."
In a close air support mission, you need to destroy enemy tanks attacking your base. To play a close air support mission, choose "Simulation" -> "Close Air Support Mission."
To configure Day/Night, Fog, and Wind, select "Simulation" -> "Set Environment" after creating flight or dogfight, before selecting "Simulation" -> "Fly." Or, you can choose default environment in Config Dialog. (Configuration by "Simulation" -> "Set Environment" overrides the configuration of Config Dialog.)
You can re-try the previous mission by choosing "Simulation" -> "Retry Previous Mission"
You may want to printout the key assignments. So, I prepared independent page for it.
You CAN use a keyboard to control elevator and aileron, if you really want. Please see Changing Key/Mouse/Joystick Assignent to change settings.
I didn't believe my eyes when I realized that I forgot to write the explanation of HUD two years after I released this flight simulator. So, now I add the explanation below (2001/12/02)
(1) Ammuition. >><< indicates the ammunition
is selected, and ready to launch by trigger 1.
After 2000/07/03 version, the way to control weapon system changed from the previous version. You have to choose a weapon by 2 key or trigger 2 of the joystick, and fire it by 1 key, SPACE key or trigger 1 of the joystick.
There are four types of weapons (and smoke) as follows.
Available weapons depend on the airplane.
Press 'I' key to turn on ILS. Next figure shows ILS indicator on the HUD.
Similarly, a vertical line with "LOC" indicates the ideal horizontal path. This horizontal guidance is called "localizer". The LOC line indicates the relative deviation of the horizontal path with respect to the current position of the airplane. If the line is left of the center of the HUD, you have to turn left. If the line is right of the center of the HUD, you have to turn right.
In summary, both lines shows the direction to which you should go. For example, if you see the line above, you should climb up, or if you see the line left, you should turn left.
When you lost your position, you can use VOR to find out your position. To use VOR, press L key (in the standard key assignment) and choose a VOR station. You'll see the indicator as shown below.
You can turn bearing by 7 key and 8 key (in the standard key assignment).
VOR tells the following. Let's say your airplane heading is equal to the direction that bearing is showing. Then, the course deviation indicator tells which side of your airplane (left or right) the VOR station is located. If the indication beside the bearing shows [FROM], the station is behind you, or if it shows [TO], the station is in front of you.
It's a bit confusing, isn't it? Here's a more easy way to use VOR. Just turn the bearing until the course deviation indicator comes to the center and the indication beside the bearing becomes [TO]. Then, if you fly to the direction that the bearing is pointing, you'll reach above the VOR station.
Or, turn the the bearing until the course deviation indicator comes to the center and the indication beside the bearing becomes [FROM]. Then, the bearing indicates the direction of your airplane from the VOR station.
Also RADAR equipment is available for air combat and anti-ground attack. You can turn on the RADAR or change the RADAR range by 3 key or trigger 3 of the joystick. The RADAR range cycles through OFF -> 5 miles -> 10 miles -> 50 miles -> (repeat).
The RADAR has three modes as Anti-Air, Anti-Ground and Bombing. The mode changes automatically when you change the wapon of choice.
In Anti-Air mode, X marks show the ground objects and square marks show airplanes. White marks are friendly objects and Green marks are hostile objects. A small tip of line attached to the square show the flying directions of the airplane.
Anti-Ground mode is almost same as the Anti-Air mode, but it shows more objects in front of the airplane than ones behind the airplane.
In Bombing mode, the circle on the radar shows the estimated impact point of the bomb. If you are flying B-2 or Tu-144, you can carpet bomb referring to the circle and the cross mark.
CAUTION: If you are using Windows XP Service Pack 2, you need to unblock YSFLIGHT from Windows Firewall. Please follow this link for more information.
Since 20001125 release version, YSFLIGHT2000 features network play. More than one player can fly a same airspace and fight against each other. Or you can cooperatively attack heavily defended ground target. If your PCs are connected to a high speed (10Mbps or faster) connection, you may be able to fly a formation of 6 airplanes and perform an aerobatic flight. I haven't tested how many players are practically possible, but theoretically, the program must accept 17 players at maximum.
Since 20021205 release version, you can play Endurance Mode and Intercept Mission over the network. You can cooperatively attack against computer airplanes or defend your base with your friend. To start the endurance mode, press E key in the server menu. To start the Intercept mission, press B key in the server menu. If you want to terminate the Endurande mode or the Intercept mission, press T key. (Pressing T key does not delete already flying computer airplanes. You have to take care of them anyway.)
In the network play, you may get damage even when you don't see any bullets or missiles striking your airplane. In such a case, your opponent's airplane is seeing his bullet or missile striking your airplane. It is because there is always some delay in transmitting position information. This problem can be moderated if I write a smart code that expect future path of the airplane, however, instead of making my code smart, I made a rule of the network play as follows.
In summary, if you really see your airplane being hit, or your opponent sees his weapon striking your airplane, you get damage.
Consequently, even you think that your opponent's bullets are strayed from your airplane, say 20m behind you, you shouldn't stop your maneuver to avoid opponent's attack. If you are flying at 200m/s, and if the network delay is 0.1 second, you'll see your opponent's bullets strayed 20m behind you when your opponent is seeing his bullets striking directly your airplane. And, this is a game to play happily. Don't begin fist fight screaming "Hey, your bullet didn't hit me! You did something unfair!". Your opponent is not unfair. It is a nature of network play.
If you want to fly with a friend who is apart from you, you may want to chat with your friend while flying, though, YSFLIGHT2000 itself does not transmit texts for chatting. In such a case, you can open an external chatting program beside YSFLIGHT2000's window. However, while you are chatting with your friend, you cannot control your airplane. In order not to crash your airplane while chatting, you can use auto-pilot. If you press BS (backspace) key, your airplane will fly a holding pattern until you press BS key once more.
But, I don't recommend to use voice chat and YSFLIGHT2000 at the same time. Experiments showed that Windows may freeze if you try to use voice chatting program and YSFLIGHT2000 at the same time. You can avoid this problem by turning off YSFLIGHT2000's sound effects. However, even if you successfully start YSFLIGHT2000, practically you cannot fly with your friend over network because the network-load of voice transmission eats bandwidth up and YSFLIGHT2000 cannot transmit airplane's position, state etc.
To play over the network, one player needs one computer. And, one computer must work as a server. The other computers must connect to the server as clients. The figure on the right shows an schematic image of the network connection. A player in front of the computer can join the flight either when a computer is working as a server or when a computer is connected to the server.
To begin a server, choose Network menu -> Server and type your name. To access to a server as a client, choose Network menu -> Client, and type your name and the network hostname of the server.
The server address is shown under the server menu as follows. So, you can tell it to your friend by phone or chat program or in whatever way you have.
However, when your PC is sharing an IP address with another PC(s) (eg. when a PC is connected via dial-up router), or when your PC has more than one network connection (eg. dial-up connection + LAN card), this address may not be valid. In such a case, please ask your network administrator for the correct address. (Please do not ask me about the host address. It depends on your PC's environment, and I am not your tech support. I'm suffering from overwhelming E-Mail of this kind of question. I'll ignore them all.)
Now you are ready to join the flight. If you press 'J' key, you can go for a flight instantly. Or, before going, you can change
your airplane, start position and your IFF code (IFF : Identify Friend or Foe system). Key strokes are explained in the following table.
To choose an airplane or a start position, use arrow keys, UP arrow and DOWN arrow. If you press UP or DOWN key with SHIFT key, choice moves faster. Press SPACE key to decide. (You can press ESC key or ENTER key to decide. ESC will not cancel your choice).
When flying with more than two players, be careful not to begin a flight at the same position, or you will end up with mid air collision as soon as you start a flight.
I am not assuming to use this network play feature between the PCs that are located in a remote places. I am assuming all PCs are in the same room and players have voice communications. So, the program itself doesn't have chatting capability. If you want to chat with your opponent while flying, please run another chatting program simultaneously.
You can configure network-play options by Network menu->Network Option. If you choose Network menu->Network Option, the following dialog pops up.The following table explains each item.
- Decimating a flight record
When you fly a very good flight, you may want to show your flight record to your friend by sending the flight record by E-Mail or by posting it on your Web site. However, a flight record file tends to be big, often too big to send by E-Mail or to store in your Web space that your internet service provider gave you. In such a case, you can 'decimate' your flight record to reduce the size of a flight record file.
CAUTION: These operations are not undoable. I recommend to save your raw flight record before decimation for backup.
There are two ways to decimate a flight record. One reduces the time precision, and the other reduces the space precision. To reduce the time precision, choose "Flight Record Utility"->"Set Time Precision" and specify the time step. Default time step is 0.05 second, thus the flight record is taken once every 0.05 second. By specifying larger number, you can reduce the size of a flight record.
To reduce the space precision, choose "Flight Record Utility"->"Set Space Precision" and specify the space precision in meters. The default space precision is 0.01, which means two digits after decimal point will be stored in the flight record file. By specifying larger number, you can reduce the size of a flight record.
- Editing a flight record
You can also chop off some portion of the flight record that is not very spectacular. To edit your flight record, choose "Flight Record Utility"->"Edit Flight Record." You will see a screen similar to "Replay Flight Record", but you will see a dialog as shown on the right. Meaning of each buttons and textboxes are as follows.
CAUTION: These operations are not undoable. I recommend to save your raw flight record before editing for backup.
Blue Impulse 3D Graphics SDK is designed for interactive
3D visualization programs. I developed it for my master's thesis research project. It runs in a acceptable speed
even in a relatively slow platforms. One advantage of the toolkit is cross-platform capability. Actually, if I re-compile
source code of this flight simulator in SGI or X-Window environment, it runs (Except dialog boxes and joystick
features. I just used #ifdef WIN32,#endif for those WIN32 depending part). Another advantage is scalability. If
you build a program in a relatively slower platform, you'll want to use flat-shaded version. But, you can get smooth
YS Geometric Calculation Library provides wide variety of 3D calculation features, including basic vector classes, matrix classes, shell classes, intersection/collision detection..... This library also has template classes like array, linked list etc.
Both toolkits are free and open source. Please visit the Web site.
But, it doesn't mean I'm going to open source codes of YSFLIGHT2000. I have no plan to open the source code of this flight simulator. Only source codes of toolkits are open.
Blue Impulse 3D Graphics SDK is a foundation toolkit of YSFLIGHT2000. But, it doesn't mean that you can easily modify existing airplane or create new airplane in YSFLIGHT2000. Blue Impulse 3D Graphics SDK is a general purpose 3D Graphics toolkit. But it is not dedicated to YSFLIGHT2000.
Comments are welcome. Send E-Mail to:
In both address, I can read E-Mail written in either Japanese or English.
There are several example missions. You can choose them from File->Load, then choose Simulation->Fly.
I write brief explanations of each mission.
After 20000226 version, anti air artillery and surface to air missiles are added. So, you may want to attack heavily defended ground targets. Each map has heavily guarded ground targets. Why are they within just 20 to 30 km of the airbase? Please don't ask me that question(^_^;) But, you can attack them. Some maps also has the start position "CLOSE BY THE GROUND TARGETS". If you choose it, you'll start flying several miles away from the ground targets. Otherwise, please takeoff and search the targets by yourself. They are heavily guarded by anti air artilaries and surface to air missiles. Attack them by your AGMs (anti ground missiles) and machine guns!
Please see also Close Air Support Mission.
The following command parameters (options) are available for both Windows and Linux versions.
-freeflight Airplane Field Position
-endurance Airplane Field NWingmen WingmenLvl UseMissile
-intercept Airplane Field Stealth Escort HeavyBomber Bomb NEnemy NWingmen
-client Username ServerHostName
Linux version does not have GUI dialogs for changing configurations. So, you need to manually modify configuration files. The explanations of the configuration files are found in document/configfiles.txt
If you screw up the configuration files, start the program with the following four options:
If you have any questions or comments, please give me an E-Mail! You can reach me by the following address.