Welcome to FlyRC. Written by Ron Carr using Mix Power C, Borland Tourbo C. Starting the program: flyrc : starts the program with a choice of planes presented Controls: ( effective after the 3 second fly by ) i : initilize after a crash j,k,l : selects control as joystick,keys or radio on LPT esc or q : quit 1-9 : number keys control engine power arrow keys : control the plane home,end,del page down : move the observer location relative to the plane More keys are described in the update notes at the bottom of this file. If a joystick is detected, it will be enabled at program startup. If not detected, it will not work even if manually enabled with the 'j' key. The joystick should be on the standard game port. Files: 'plane'.par controls the flight characteristics. You can edit these files if you want the planes to fly differently. 'plane'.dat defines how the planes look. backgnd.dat defines the clouds in the background fly.exe is the executable flyrc.exe front end menu and radio interface detection code readme.txt this file technote.txt has some information about how the program works. design.txt describes how the planes are designed Edit History: Version 1.0 - Initial Release Version 1.1 Removed some shaking from the clouds, consistant handling of the hline endpoints. Wrote hline and copyline in assembly, didn't gain all that much speed. Added documentation file design.txt. Version 1.2 Bug fix - The erase lines would grow in length if the plane stayed in one place too long causing blank lines to appear. If you ever have a tough problem to debug, try datalogging. Version 1.3 The wing, that was the design example, was developed into the vtail plane. Its flight characteristics are a simple copy of the bipe's with more power. Fixed a problem with negative drag that would appear if the plane was stalled and starting going backwards. Added a projected runway and removed the circular runway. This didn't work exactly as I expected, but it looks pretty good. Made minor changes to the planes. Fixed non initialized doubles that caused eratic operation when floating point hardware was present. ( Turbo C returned 'Not a Number' trap ). Version 1.4 Added a choice of planes when the program starts, making the program more friendly to Windows users. Note that the clouds seem to shake if I run this program from Win95. I recommend that users boot to Win95 fake DOS if they have this problem. Removed the files plane.par and plane.dat as they are no longer needed. Included the sources in the release as there have been some requests for them - converting to Turbo C should be fairly simple - just reinstate hline() and copyline() in C rather than assembler. Added keyboard rate to parameters. Anyone flying with the keys can now vary the response they get with each keystroke. Changed the flight model which required changing and adding parameters to the .par files. Landing the plane is now somewhat realistic and stalls look much better. Added the forground colors to the .par files - can now have planes of different colors. ( Use egapal.exe to select your color hex values ). Included egapal in the release files. Altered the shape and colors of the planes. Acknowledge that Guard Dog has a problem with Mix Power C. ( sources are now included, so you Guard Dog users can compile your own executable - woof ) Version 1.4a Fixed a problem with the auto init after 5 seconds feature - the keyvalue was not cleared and the init would happen instantly after a crash once the key was used. Version 1.4b Increased the number of points and poly's to 200. Version 1.5 Changed traceline routine to check for single points left after a poly is traced. Poly's with more that 3 or 4 points seemed to produce these single points much more often than a simple poly. There is room for improvement in this routine. Pushing the limit of 64k data segment - can't increase the size of the frontline array. Version 1.6 Re-wrote traceline and other front.c routines to solve the single point problem. Code is cleaner with new algorithms. Increased the size of the frontline array as much as possible by changing some 'int's' to 'char's'. We now have Klemm2 courtesy of Wilfried Fedtke. Version 1.7 Developed a new algorithm for drawing the forground objects. Now the entire offscreen memory is used to draw ( previous one line ). This presented some interesting challeges as there are 339 rows of offscreen memory and 480 rows that are onscreen. The frontline array is no longer an issue and the data segment problems are gone for now. A sukhoi was added, designed by Eric Middeldorp. Changed compilers to Borland Turbo C. Front end code from Wilfried used. Start the program as FLYRC. Version 1.7a Fixup for shadows in forground. Changed points in a poly to 30 for the lazy bee shadows. Version 1.8 Forced the front end to run when not using debug flag. Made alot of changes in the point projection code. The effects are the same, just trying some new algorithms. ( No longer have a rotating co-ordinate system, although the rotating co-ordinates worked fine. ) The viewpoint can now be changed using the Home,End,Delete,PageDown keys to move towards, away, left and right respectively. The runway now is truely projected and clipped to the view. Version 1.9 Control via an RC transmitter. Added txtest for a parallel port cable interface testing tool. See the file radio.txt for some documentation. Added radio.cfg configuration file to define how the channels correspond to the controls. It seems there are a number of configurations in use world- wide. Added throttle control and basic rudder control for the Radio interface. Added controls for interface selection: k-keys, j-joystick, l-radio on LPT. On startup, the radio interface is defaulted if found. We have a new plane design from Danie Marais, although I slowed the ailerons and increased the elevator from what he provided. Design is a Great Planes Easy Sport. Version 1.9a Added Keyboard rudder control with the ',' and '.' keys. Version 1.9b Erik sent a new plane design, a nice looking Pitts Special. Added channel reversing via the radio.cfg file. Also one has the ability to vary the total control throw via this file( much like the radio ATV feature). Version 1.9c Added rudder and throttle control to the joystick interface. These are defaulted to off. The 't' key will toggle the throttle control on, off and reversed. The 'r' key will toggle the rudder from on, off, and reversed. These controls are defaulted to off to prevent abnormal operation with a 2 axis stick. These features not well tested as I don't have a 4 axis joystick. Version 1.9d Added debug mode to txtest program to help with interface debug. See Radio.txt for description. Version 1.9e Some work on Intro to allow more than 10 planes. New plane Windstar sent by Chris B. Put Chris in the credits. Version 2.000 Have a new plane, Lajban designed by Rasmus Geidnert. Removed the fly by as this seems to cause confusion. Merged the intro and main code into one executable. The program now returns to offer another choice of planes to fly. Added rudder speed parameter to .par files to seperate the rudder speed from the elevator speed. The rudder control code has been improved somewhat. Added an item to the par files to simulate 3 channel setup with rudder instead of aileron as the primary control for roll. Added a parameter for rudder to roll coupling. Changed some of the plane designs to use the new 3 channel setup. Added a dihedral parameter that offers self correction in roll. Made some changes to txtest. Added some trim parameters to radio.cfg. Version 2.1 Most of this version is from Rasmus, plus a new Corsair design from Milos. Rasmus has sent 3dviewer.exe, a wireframe viewer to help in designing planes. And he has sent many new plane designs. Also some new keyboard commands were added. Had some requests for individual speed control for the 3 axis. F1 F2 increase/decrease the aileron rate, F3 F4 increase/ decrease the elevator rate, F5 F6 increase/decrease the rudder rate. f and s keys still increase/decrease all three. Version 2.2 Added a chase view, just for fun, and it is toggled with the 'c' key. The runway is not projected correctly when using this mode. I am not surprised and probably will not try to fix this up as the backgound projection is fairly complicated ( due to non-page flip graphics ). Eric Ohmit sent a Zagi design, thanks Eric. Version 2.2a New init screen from Rasmus was merged with existing code. Expanded the on screen keyboard help to include some of the new commands. Fixed a problem with chase mode causing an input device switch. Version 2.2b New Delta plane design from Dean Flavell, thanks Dean. Fixed an error with the way gtrim was used in a calculation. Version 2.2c Fixed a problem with the holdoff( o'scope type holdoff ) in txtest. Adjusted some of the plane parameters more to my liking, hope you like the changes. Version 2.2d Graham Collins sent in an interface design for a JR XP652. It's in the file XP652.pdf. Frank Kelly sent in designs for high and low wing snappers. Thanks Graham and Frank. Version 2.2e Two new plane designs from Fernando Lopez Lago, Zagi2 and Pibros. Thanks Fernando. Version 2.3 Changed the slowfly parameters back to the original and made a copy called slowfly1 that has the parameters that I have liked. A real slowflyer wrote to say that the original parameters were more realistic for that type of plane. Added a config file joy.cfg. This can be used to reassign the joystick channels much the same way as radio.cfg does for the radio. You can use this to set up 4 axis joysticks as a mode 1 setup. Also, two new key commands were added; 'a' - to reverse the joystick ailerons, and 'e' - to reverse the elevator. Added a requested zoom feature. Fixed a variable that was not initialized if one started the program and then quit without flying.