FSXControls is a set of three program modules:
GUI multifunction application (FSXControls.exe);
Chart viewer and airport info gauge (EQgauges.dll) ;
Control input handling "GhostMouse" and dynamic camera "FlexyCamera" module (EQmodule.dll).
This set is provided for free for NON commercial use for all MS Flight Simulator X funs. Of cause, this set is designed primarily for advanced FS pilots, but it can be used by everyone who wants to enhance one’s simulator experience. The programs are easy to use but require a bit of FSX knowledge & experience for understanding. Sorry, this is just a result of my hobby & I can’t provide comprehensive manual or full support for the software. The program will be enhanced but it’ll be always in beta stage. No risk – no fun :-)
The following is a short installation instruction, the list of program feature & some hints for non obvious features.
FSXControls.exe is for owners of advanced controller system with a lot of programmable buttons (home cockpits, joystick set, CHProducts' MFCpanel etc).
ChartViewer.dll is for virtual pilots who prefer to fly with paper charts but not with artificial moving map. Real world pilots do not have moving map except GNS, but extensively use paper charts.
EQModule.dll (GhostMouse driver) is for owners of advanced payware addon aircrafts. Unfortunately addon aircrafts mostly lack of feature that maps keyboard or joystick input to the advanced aircraft control. EQModule.dll do also many other neat tricks.
EQModule.dll (FlexyCamera system) is the camera control system that provides the almost unlimited number of smooth and ease controlling cameras.
GhostMouse is the Easter Egg of the program. I’m proud to share it among MSFS enthusiast community.
The programs were developed using MS Visual Studio 2010 Express edition. Great thanks for Microsoft for this free amazing development platform. I really enjoyed the process.
Windows XP SP3 or Windows 7 (x32 or x64). It should work on Vista too but I have not tested that.
Properly installed MS FSX SP2 or FSX Acceleration with SimConnect. (FSX SP1 is not supported from version 1.2.1 of FSXControls). "Properly installed" means that FSX was installed by the native installer. FSXControls relies on registry information and installed SimConnect runtime shipped with FSX.
.NET 4.0 with latest service packs. Get it from Microsoft.com.
Properly installed latest version of DirectX 9c.
Full access (read, write, create) permissions to FSX installation folder & all its subfolders.The best way to escape the security problems is installing FSX to folder other than "Program Files". (I always install MSFS into D:\FSX folder.) If something goes wrong try to run FSXcontrols.exe with "Run as administrator" option.
Installation became simpler in v3.0. Please read carefully!
Put FSXControls.exe wherever you want. I place it on the desktop.
Put EQgauges.dll to the \Gauges subfolder of the main FSX folder.
Put EQmodule.dll to the \Modules subfolder of the main FSX folder.
Run FSXControls.exe.
Choose Tools-> Setup runtime modules.
Press Uninstall button if you have previous version of FSXcontrols.
Optionally assign the shortcut for toggling ChartViewer and Camera control panels.
Press Install button.
Scan scenery files in order to create airport database for ChartViewer.
Close Setup dialog.
Go to GhostMouse tab and press "Save" button (diskette icon at the top left corner of the window)
Start FSX. You will be asked (for EQgauges.dll & EQmodule.dll) if you want to run software from unverified publisher. Reply 'Run" then "Yes" for each one.
That’s it! You can skip any step and perform any action later & any number of times. Don't hesitate to experiment!
Breaking changes:
Port to .NET4.0.
New configuration and navigation files format. Please carefully follow ALL steps of installation for seamless migration process.
Restricted functionality for FSX RTM or FSX SP1 (only available: ChartViewer & native FSX shortcut editing).
FlexyCamera axes remap for Airframe camera (spherical coordinates) was replaced bySpot Plane camera.
Common:
Tested under both FSX SP2 and FSX Acceleration Pack.
FSXcontrols:
No more managed DirectX & SimConnect libraries required.
More simple & robust installation.
Dramatically rebuilt GUI with many new tools and simplified and unified operations.
Unified common shortcut control configuration window (FSX + GhostMouse).
XML gauge semiautomatic scripting support.
"Button up" event support for GhostMouse shortcuts.
Link to FSX via SimConnect with powerful command & variables spy tool.
Automated aircraft group creation
Makes a versioning backup (one per day) for critical configuration files.
FlexyCamera.
Correct camera 3D navigation.
Camera configuration gauge for control all important camera settings during flight
Spot plane camera.
ChartViewer:
Rebuilt plates catalog for more simple & flexible image tree structure.
Fast paging image in the folder.
Plate pages orientation support.
FSXcontrols:
Simplified installation.
Significantly rebuilt GUI with many new tools and simplified and unified operations.
Aircraft filter for GhostMouse assignments.
Tool for sending commands to FSX to discover meaning of commands & testing them.
Per section edit aircraft.cfg & panel.cfg files.
Makes a backup copy (.bak) when saving configuration files.
FlexyCamera - the new powerful system for camera creation and controlling.
Three types of cameras: Cockpit, Airframe and Free roaming.
Almost unlimited number of cameras;
Global FSX and aircraft dependent cameras;
Common controlling schema for default FSX and FlexyCamera cameras that simplify using and decrease the number of assigned buttons & keyboard shortcuts;
Fully setting up from FSX, no external program required.
ChartViewer:
Chart fast find and load via index image (image with customized clickable zones).
New zoom behavior for charts.
Plates catalog with fast ICAO look up feature (requires proper name and location of IAP images).
New menu with better look and behaviour.
ChartViewer saves its window size and position.
Asynchronous image and navigation data loading decreasing simulator freezing periods.
GhostMouse:
GhostMouse configuration is loaded in flight without need for FSX restart;
Optional script for event. Script is any expression for FSX XML gauges (see FSX SDK);
Catching FSX internal events in addition to input event;
Fine grain aircraft filter for pseudo gauge commands.
ChartViewer:
Fixed: error loading images just after start & on switch over between full screen and windowed FSX modes.
FSXcontrols GUI:
Rebuilt one windowed GUI;
Cameras group operations;
Controlling aircraft variants visibility;
GhostMouse:
Pseudo gauges;
Press/Click/Hold input differentiated;
Aircraft categories run time filter;
Option to take gauge background from panel or file;
Improved engine taking care with simultaneously pressed joystick buttons;
Autotrim feature;
ChartViewer:
New plate mode;
New NAVaids mode;
More handy most recent used list;
Drawing on the map: route and ruler;
Many small but neat features for convenience;
Some fixed bugs and many new ones :)
The main window comprises 3 tabs (workspaces) & Tools menu with some useful utilities.
The Aircraft tab display list of all available aircrafts and provides tools for editing configuration files.
You get a simple way to hide or show any aircraft or aircraft variation from the Aircraft dialog of FSX. Hint: context menus provides some group operations.
You can edit aircraft.cfg & panel.cfg files on per section basis.
You can edit most important FSX configuration files (see topmost tree element "Flight Simulator X")
You can create, copy, rename and delete whole section using tree node context menu.
The “FSX native cameras” tab is for:
Please note, that this tab controls native FSX cameras only but NOT the FlexyCamera ones! Since V3.0 this tab is hidden by default for prevent confusing with FlexyCamera. Check "FSX native camera tab" in Tools menu to make it visible.
Setting up FSX’s global Cameras.cfg & camera views for particular aircrafts. You can assign up to 10 shortcuts (FSX limitation).
Please note that particular aircraft camera shortcuts override ones of global FSX cameras.
Hints: Use mouse wheel in the Cameras list on the left to select shortcut number.
Context menus provide a tool for copying all or some camera shortcut settings from one plane to others. Tip: multiple items selection on the right panel is available.
Important! Do not forget to set up input commands for VIEW_CAMERA_SELECT_0… VIEW_CAMERA_SELECT_9 (see the "FSX controls" tab) to assign quick camera shortcuts. All settings on this tab sre useless without that.
You can do one click creation of "Right seat view" for aircrafts that have no predefined one. Of cause this is available for assimetric (left or right) pilot seat aircrafts only.
You can change initial view point in aircraft.cfg for any aircraft.
You can unify the angular speed of virtual cockpit cameras rotation for all aircraft (What's it? See Camera definition id FSX SDK... or just try it).
Tools menu is the set of useful utilities:
"Chart index editor" invokes editor for mark up index images (see below).
"Reset DirectInput". If you experience any problem setting up joystick shortcut use this menu instead of restarting FSXcontrols.
"Manage input devices" invokes dialog for repairing FSX control configuration file. This dialog automate some action you should do with XML configuration file after Windows severe maintanence, joystick driver changes config migration and other things. You can delete any section of file, clear obsoleted sections, copy GUID for joystick sections. All changes are made in memory so you must save FSX control configuration to persist them. Please do NOT use this dialog if you don't understand what exactly you do! For advanced users only!
“Generate CH .cmc file” – creates command list file for CHProducts’ CH Manager. You can use this file for simplify programming of the great CHProducts controllers (See CH Manager documentation). You must recreate .cmc file each time you change Standard.xml. You can optimize this process if you understand well what happens inside ;)
“Options runtime modules“ displays dialog for configuring parameters EQmodule & ChartViewer gauge (see below in EQmodule.dll & EQgauges.dll sections).
“Setup runtime modules“ displays dialog for install/uninstall run time modules (see above the Installation section of the document).
EQModule is a runtime driver for FSX. It currently implements several features: GhostMouse driver, FlexyCamera and miscellenious advanced runtime features. EQmodule.dll is not compatible with FSX RTM and FSX SP1.
EQModule acts as GhostMouse technology FSX runtime driver.
GhostMouse is fully configurable via GhostMouse window of FSXControls.
The module reads whole configuration during initialization process i.e. on FSX startup. But all setting made on the GhostMouse tab of FSXcontrols read every time you display any dialog in FSX. So you can just press Esc twice to load and activate new GhostMouse configuration! Dynamic loading does not apply to other FSXcontrols settings including ones from options dialog.
Thrust reverser control simulates throttle lever back moving beyond the physical zero position to perform analog control of reverse thrust. The process from pilot point of view is the following:
Fully retard throttle lever on joystick.
Activate thrust reverser mode using assigned button or keyboard shortcut (see below)
Advance throttle lever. The thrust reverser power will be controlled by throttle lever.
Retard throttle lever.
Deactivate reverser or it deactivates automatically (see below).
You can assign key/button to the command in the GhostMouse tab (EQmodule/<IMC> pseudo gauge) and configure thrust reverser control using the options dialog. The settings are the following:
“Null zone” is zone width for throttle axes in %. Then throttle lever is in this zone you are able to turn on/off thrust reverser mode. Set non null value especially for cheap joysticks. Experiment with it. I use value 1% with CH ProThrottle.
“Reverser auto off” turns on/off auto deactivation of reverser mode then throttle lever is retarded back after applying thrust reverser.
Tip: The most convenient way is to assign "activate reverse" to joystick button press and "deactivate reverse" to the SAME button release. So you get configuration in that you must hold the assigned button while moving off the joystick throttle out of null zone, but after reverse activated you can release button - reverser will be active until full throttle retard. The reason for assign deactivate command is prevent accidental reverse activation by clicking the button.
Kneeboard advanced control allow you to skip unused kneeboard tabs. The setting for advanced kneeboard controls are:
Command for Show/Hide, Next page, Previous page assigned in the GhostMouse tab (EQmodule/<IMC> pseudo gauge).
See Option dialog for marking pages to be selected by Next page & Previous page commands.
Real world time set feature is for automatic setting FSX ZULU time to the current real world time. The ZULU time is calculated using Windows time zone settings for your computer. You have three options:
Set ZULU time every time you load FSX flight (may interfere with FSX missions).
Set ZULU time once on FSX startup (recommended).
Do nothing.
The wind smoothing feature is the analogue of one you can find in registered version of a brilliant FSUIPC. Note that the wind smoothing is active only in flight, not while user's aircraft is on the ground. You can set some parameters of wind smoothing engine:
Wind smoothing activation thresholds (by speed & direction)
Wind speed smoothed change rate (knots per second).
Wind direction smoothed change rate (degrees per second).
Note: Algorithm automatically decreases value of wind direction smoothing parameters as wind becomes stronger.
Aircraft autotrim feature provides commands for simultaneous trimming all control surfaces (elevator, ailerons and rudder). To autotrim first stabilize aircraft then press "AutoTrim" key/button. Till now you can release joystick - the aircraft will remember new neutral control position. This feature extremely useful flighing helicopters. Untrim command smoothly untrim aircraft to the default zeroes. Upon landing the aircraft is untrimed immediately. Please note that this feature does NOT actually control aircrft's trimmer surfaces but only joystick axes! For setting up autotrim feature use:
GhostMouse tab (EQmodule/<IMC> pseudo gauge) for assign key/button to the commands.
Options dialog for setting rate of untrimming.
Please note that GhostMouse window in FSXControls is just a configuration facility for Eqmodule.dll FSX driver. So it must be properly installed. It's NOT necessary to keep running FSXcontrol while flying in FSX !
GhostMouse is unavailable under FSX RTM and FSX SP1.
GhostMouse is a sophisticated mechanism for simulate mouse button actions on currently invisible (but loaded) gauges. It perfectly works on the most gauges of 3d party freeware & payware aircrafts.
Using the "Ghost Mouse" tab of FSXcontrols you can configure both FSX native command and GhostMouse command in one place.
The main navigation tool of this workspace is the command tree on the left of the window.
There is important drop down aircraft list at the center of main toolbar. All active commands and gauges are displayed for selected aircraft (.air file) or aircraft group only!
Please note! You should first select aircraft or aircraft group in the drop down list on the main toolbar in order to see right set of gauges and assignments in the command tree.
Next left to the command tree is command attribute panel. All available attributes of assignment including input device shortcut are displayed on this panel. You can edit attribute of assignment. Two most important attributes are:
"Key/button" box is for entering and disply input device shortcut. It's not the edit box! To enter shortcut just click the box end press desired key combination or joystick button.
"FSX native command" check box. If checked the shortcut is configured via FSX's"standard.xml" file. If unchecked the shortcut is GhostMouse shortcut.
The Aircraft type and group box with flags that control to which kind of aircraft command should apply. You may specify group of aircraft to which command is applied OR category of the aircraft. There is new behavior of aircraft groups in V4.0:
It's possible specify for shortcut group or aircraft category not both(!). That filters are mutually exclusive now.
There is virtually no limit for number of aircraft groups.
If one or several shortcuts are created for single .air file it doesn't require explicit group creation.
Group editor is now modeless and provides automatic grouping of the similar .air files. Auto created group names starts with '~'.
You can delete any group or change their name via group tree context menu.
As alternative for input shortcut you can specify a FSX internal event as a trigger event. Be careful - avoid event loops (i.e. event A triggers event B and event B triggers internally in FSX event A). Note: triggering GhostMouse "clicks" by FSX events is disabled because of internal event loop occurs in most practical situations!
The way of handling input event.
Hold - command executes if you hold button for the specified interval (See Options dialog).
Click - command executes if you press & release key/button in the specified interval.
Once or Repeated - command executes immediately when key/button is pressed and optionally periodically repeats while key/button hold.
Keyboard autorepeat - command executes immediately and periodically repeats. This option available for keyboard shortcuts only.
Release - command executes on key or button release. Please be sure that due to internal FSX keyboard handler algorithm it could work unstable for complex keyboard shortcuts. So please carefully test.The is no any problem with joystick button.
Please note that NOT ALL listed action is mutually exclusive, i.e. some can be safely used together in one configuration! You can assign the same input to any number of gauges. The settings will be active for the actually loaded gauges only.
Repeat period for joystick input is similar to the one used in standard.xml. The command repeats with period of N*1/18sec. The additional initial delay can be set up in the Options dialog.
“Right button acceleration” checkbox activates the special feature: after 10 times of the emulated left mouse click the driver sends the right mouse clicks at the half of repeat frequency (this extremely useful for dial controls of some payware products such as Flight1 ATR-72 & DigitalAviation Cheyenne).
Script combo box is for specifying script to be run on event. Script displayed/edited in the script manager tab. (See "GhostMouse ans Scripting" below.)
Right side of workspace contains 3 tabs:
"Key button usages"show summary of assigned shortcuts for all discrete commands.
To use it just position mouse cursor over the shortcut list and press keyboard or joystick button you are interesting in. All assignments for the corresponding input device will be displayed and pressed command will be selected.
Tip: the table is clickable! Click to any cell display corresponding element in command tree on the left.
Tip: moving mouse cursor over the table shows tooltip with comprehensive assignment information.
"Script Manager" is the script editor. (See Use Case section below).
"FSX spy" is the interface for monitoring FSX event and internal variables. It's advanced experimental facility. Its rather straightforward in use but you should clearly understand FSX internals to make it helpful. I don't provide documentation for this pane but just two tips:
To peek event for monitoring just select event in the event tree.
Make sure that connection with FSX successfully established ("FSX link" button on the main toolbar).
For native FSX command the following features and limitations are applicable:
You can map any keyboard, joystick or mouse button to any FSX command. This is actually GUI editor for FSX's input configuration file "standard.xml".
You can NOT program axes input! The axis setup dialog is well done by Microsoft in FSX. Use FSX control configuration dialog for that task.
You can set repeat counter (for joystick only - its FSX limitation) and/or command parameter to any value. Don’t hesitate. Explore it! It’s very interesting. FSX internal engine is much more powerful & sophisticated then FSX setup dialog & official MS documentation.
Mouse icon appeared next to the command text box is for entering mouse button input.
The "Filter" button with checkable items is for filtering content of command tree. Not all FSX commands are shown by default!
XML gauges are not supported directly by Ghost Mouse but FSXcontrols allow to create input event scripts that can do the same things that XML gauge do. From V4.0 this scenario was simplified and require minimum or no knowledge on FSX script language. (See Use Case section below).
There are a couple "pseudo gauges" in the command tree of the list. They are marked "<IMC>". IMC is InterModule Communication interface for sending commands to EQmodule.dll and EQgauges.dll.
GhostMouse works well in virtual cockpit, but in complex 2D panel system it may be necessary to load manually all panels with gauges to control & press Esc key twice. I prefer to fly in VC & have no problem at all.
GhostMouse controls take precedence over standard FSX and FlexyCameras commands.Then any shortcut is selected in the command tree the small panel at the lower left corner of the window shows the list of conflicted and overridden commands. The command masked by command with higher priority is shown in strikeout font.
You can select “Null” mouse button to setup “just eating” action for the specified control input. It conditionally (based on the aircraft loaded) masks the input from FSX.
FSXControls may skip some payware protected gauge modules. The program puts such modules to the blacklist.
You can try to dump modules from blacklist in order to make them available for FSXcontrols. To do this just start FSX & load any aircraft that uses the gauge module from the blacklist. Exit FSX, Start FSXControls & look at the result. Often it helps.
You can also force to dump any “good” module putting it to blacklist. Sometimes it helps to extract invisible gauge backgrounds. To control blacklist use the context menu on gauge module nodes of the tree. (Sorry! This feature is a little bit challenge but there is no another way to do this job.)
If the gauge displayed without background image you can try to display it on the panel background or just use custom image. See context menu of the gauge tree.
Script is any expression that can be used in XML gauges. You can read expression description in the section "Expression Evaluation" on the page "Creating XML Gauges" of FSX SDK. Please note that scripting is actually a programming, so use scripts if you completely understand what you do!!! Unfortunately there are neither script debug no syntax check facilities in FSX.
Script runs several times then GhostMouse event is detected. Script runs one time for event beginning (i.e.button pressed), each event autorepeat - button hold (if repeating is set for corresponding Ghostmouse event) & optionally on event end (i.e. button released).
Note: captured FSX event generates "press" and "release" events as in case of user input event!
Script runs on release event only in case then it read variable named "GM.event" i.e. script contains lexeme "(L:GM.event)" or "(L:GM.event,type)" (case insensitive).
There are two GhostMouse variables available in the scripts:
(L:GM.event) has value 1 on initial "press" event; 2,3,4... on the subsequent autorepeat events; 0 on event "release".
(L:GM.result) initially "0". If you set it to "-1" (i.e. script like "-1 (>L:GM.result)") the action set to GhostMouse event is skipped. This is a way for conditional performing GhostMouse "clicks". (Values other than 0 and -1 are reserved for the future development).
Good news for V4.0. You can assign shortcut scripts without creation or editing them. The script is automatically dig from XML gauges or aircraft model file and one thing you should do is assign shortcut to it. (See Use Case section below)
This section contains typical use cases for creation different types of assignments.
Native FSX command.
Dll (C gauge) mouse box command.
XML gauge box command
Aircraft model (3D cockpit hot spot) command. Important note. If you can't find some hotspot in the list - it's not a bug. This means that hotspot mapped to standard FSX command, but not to script. In this case you don't need to use this scenario but just assing shortcut to appropriate FSX command (globally or for particular aircraft or aircraft group).
Custom script.
Most of the actions in the use cases above are optional or require just verification of proper defaults. This is especially true for batch assignment and modifying existing assignments.
FSX camera system is rather powerful but camera control feature is uncompleted and poor. FlexyCamera tries to fill this gap.
FlexyCamera is unavailable under FSX RTM and FSX SP1.
FlexyCamera creates virtual sub-cameras based on three FSX cameras. You can find that base cameras in Custom submenu of FSX view menu. So there are four types of cameras:
Cockpit - the most important for pilot camera connected to virtual cockpit.
Airframe - external camera connected to player's aircraft. Spherical coordinate control was removed in V4.0 due to conceptual complexity and confusing control. The feature was superseded by Spot Plane camera.
Roaming or World - free moving camera not connected to the aircraft.
Spot Plane camera - three coordinates (heading, pitch, distance) external camera pointing to the center of user's aircraft.
Each camera is either "global" or "local".
Global camera available for each aircraft. I recommend to create at least one cockpit global camera and optionally mark it as start up camera.
Local camera set is independent for each aircraft (more precisely - for group of aircraft shared common "aircraft.cfg" file).
Local camera always take precedence over global one in case of conflicting settings.
Roaming cameras are always global.
The FlexyCamera system performs the following sequence of actions on each flight or aircraft loading.
If there is no cockpit camera exists the default local cockpit camera is created automatically. It is located at the aircraft's eye point position looking straight ahead.
If there is no airframe camera exists the default local airframe camera is created automatically. It is located left-ahead and slightly above the aircraft.
All saved roaming cameras that located at the distance more than 30 nautical miles from the current aircraft position are permanently deleted. This is a sort of garbage collection procedure.
If there is no roaming camera of particular type exists the corresponding global camera is created automatically.
FlexyCamera catches standard FSX camera control commands for most of actions. If the current camera is one of FSX cameras these commands have standard FSX meanings. The most important ones are:
Keys (Shift+) A & S for cycling between cameras. If the current camera is FlexyCamera one S switch between camera types, A between camera of the same type.
FSX command for moving and panning cameras control.
FlexyCamera do NOT catch the following commands providing the ability to switch back to FSX standard cameras.
EVENT_VIEW_CAMERA_SELECT_0 ... EVENT_VIEW_CAMERA_SELECT_9,
EVENT_VIEW_PREVIOUS_TOGGLE,
EVENT_VIEW_COCKPIT_FORWARD,
EVENT_VIEW_VIRTUAL_COCKPIT_FORWARD.
All FlexyCamera settings accessible via FSX menu "Addons->FlexyCamera".
"Save camera position" command save current position, direction and zoom of camera that will be used in the command EVENT_PAN_RESET and EVENT_EYEPOINT_RESET and in next flights. I highly recommend to make shortcuts for these two extremely useful commands!
"Reset to forward view" rotate current camera so that it look straight forward along the flight (or horizontally to North for roaming camera).
"Camera settings" dialog is for creating deleting and managing cameras.
"Preferences" dialog is for configuring global FlexyCamera system settings.
Alternatively in V4.0 there is a camera control gauge that provides non flight interrupted access to almost all camera settings (except axis and POV configuration). I highly recommend use this new gauge & assign shortcut to popup the panel with this gauge during install process or via appropriate EQgauge gauge command in the command tree of FSXcontrols.
You can assign shortcut button or key combination for each camera. This key/button overrides FSX assignment but is overridden by the same combination if it specified for any active GhostMouse command. This priority sequence can not be changed.
If two camera of the same type both have flag "Smooth transition" the transition on switching between them will be smooth. Otherwise jump transition takes place. This behavior is like one of FSX standard cameras.
If flag "Startup camera" is set for any camera this camera will be activated on aircraft load.
There are two additional options for cockpit cameras:
"Limit 180 degrees" - limit camera heading to +/-180 degree from forward view.
"Head simulation" - try to simulate nonzero neck length of pilot presuming that camera attach to real pilot head.
Camera control is smooth similar to FSX's MouseLook mode. You can modify initial speed, maximum speed and latency (inertia) for cameras. Parameters for movement are separate for each camera type but parameters for rotation is common for all FlexyCameras.
You can assign any joystick (not keyboard) button as manual accelerate switch. While holding this button camera movement and rotation accelerate (or decelerate). The actual effect depends on "Acceleration" setting for respective camera type. I recommend to use deceleration for camera rotation and for cockpit cameras movement if you use POVs for camera control.
There is alias system you can use to have one local camera set shared among any number of aircraft (aircraft.cfg files). You should create camera set for on aircraft and make a link to it from others. You can do any changes to the local camera set while flying any aircraft in the group. The changes will affect cameras of all linked aircrafts.
There are several methods to control active camera direction, position and zoom.
The first way is just direct shortcut assignment to any FSX standard camera control commands. This method is useful if you use special hardware controller or want to control camera bank angle.
The second way is very convenient but you should have at least 3 POV control switches. Each of available POV can be assigned to one of action set (or leave it alone):
(1) Camera rotation control (heading and pitch);
(2) Camera movement control (along view axis and left/right);
(3) Zoom control and vertical camera movement.
The best way of control is assigning joystick axes to control cameras in 7 logical camera control axes. You can assign any joystick axes to the logical control axes. Joystick axes control movement of camera but not the absolute position i.e. implements speed type control.
You can reverse axis direction (on per axis basis).
You can specify null zone and nonlinear response curve for all axes (one common setting for all axes).
Any methods mentioned above may be combined and be used simultaneously.
While any FSX standard camera (not FlexyCamera) is active POV maps as standard POV in FSX. This joystick axes camera controls automatically maps to the appropriate FSX's camera control events. So you do NOT need to have separate shortcuts for FlexyCamera and standard FSX camera control.
The following table shows meanings of camera controls. The names of logical axes are taken from the Preferences dialog.
If you have less than 3 available POVs or less than 6 axes you can use any joystick buttons as modifiers (keyboard shortcuts is not allowed!).
Modifier 1 while holding exchanges meaning of (1) and (2) POVs (or corresponding axes).
Modifier 2 forces any POVs (or corresponding axes) to act as (3) POV action set.
In V4.0 there is flexible advanced method of configuring axes remap, controlling by the mentioned modifiers. You can set it up via Camera Preferences dialog (Axes remap edit box). Sorry it a bit UNIX like interface for now :(. Here is the rules for configuration string:
String is case insensitive.
Each word, separated by space set up remap for one axis.
The first letter of each word defines axis to remap, the second - axes remap than Modifier 1 button pressed, the third - axes remap than Modifier 2 button pressed, the forth - axes remap than Modifier 1 + Modifier 2 buttons pressed.
The letter and corresponding axis:
You can assign shortcuts for all camera menu items and some other controls via GhostMouse tab of FSXcontrols program (see available commands of EQmodule.dll).
EQgauges.dll is the gauge with the following features:
Large map image viewer (Map mode). Personally I use it as a chart viewer for a large images. Viewer maintains most recent viewed file list (MRFL). The MRFL list stores image file name, viewing parameters, position & route. Viewer also has “go to previous viewed image” feature - just click on MRFL item of menu out of arrow. There are two zoom modes.
Full size mode allows fast zoom in the range 50% - 200%. The current zoom is shown at the upper right corner of the gauge (except 100% zoom).
Preview mode has one of 4 predefined zooms:
Fit all image ("Fit" label);
Fit image on width or height ("2/2" label);
150% size of "2/2" zoom ("2/3" label);
200% size of "2/2" zoom ("2/4" label).
Mouse controls for the gauge in Map mode:
Map area
Left drag – scroll
Right click – switch between full size and preview zoom modes.
Middle click – browse file system for images (and return back from it without loading new image).
Mouse wheel – smart scrolling. Try it yourself and see Options dialog for settings.
Menu area
Left click on menu item – select gauge mode.
Right click on menu item – open previously viewed image of the same mode.
Any click on down arrow next to menu item's – open browsing submenu with MRFL.
Header area (right from main menu)
Mouse wheel – set new zoom level (see zoom indication box at the upper right corner).
Right click – set 100% zoom for full size mode or cycle over preview modes.
Left click – switch between Map & Plate modes.
MRFL drop down list
Left click – load image.
Right click – pin/unpin map to prevent removal from the list.
Middle click – remove map from the list.
Bottom area with arrow mouse cursor
Left drag – move gauge over screen.
Bottom area border with "resize" mouse cursor
Left drag – resize gauge.
Index image display (Idx mode). If you create one or more indexed images (see below) you can RIGHT click highlighted quadrangle to immediate load appropriate chart.
Small map image viewer (IAP mode). I use it as approach plates viewer. It's similar to the Map mode but:
Two zoom modes are available only: full size & fit to window.
The maximum size of image to show is 2Mpixel.
Since V4.0 you can rotate image by click left or right mouse button over the top part of the gauge right of ChartViewer menu. The orientation of the image is persisted between flights.
Plate catalog mode (Dir mode) gives a convenient way to look up available plates (IAP, SID, STAR etc) and immediate load selected plate. In order to use this mode you should properly name and organize you plate collection (see below). Search algorithm was changed in V4.0 and now first looks for FOLDERs that begins from the search string and lists all founds. Next it looks for FOLDERs which name contains the search string and lists them. Folders without image files are not listed.
There is new tool in V4.0 ("<>" menu) for fast load next/previous image from the folder of the currently displayed image. Use left and right mouse buttons to enumerate images in both directions.
Airport info screen (Apt mode) contains list of airport with ATIS/AWOS/ASOS and/or ILS/LOC in range (default = 60NM).
White lines are the airports with weather observation. You can left or right click them to load weather frequency to COM1 or COM2. The first click sets up standby frequency. The second click swaps active & standby frequencies.The fird click activates corresponding COM radio.
Grey lines are the airports without weather observation but with ILS/LOC.
Green lines are the ILS/LOC. The first left click sets up standby NAV1 frequency. The second click swaps active & standby frequencies. The third click sets up OBI1/HSI to the ILS course. The right button does the same things for NAV2.
Middle click (or any click below the list) exits info screen.
NAVaids info screen (NAV mode) contains list of VAR, DME and NDB facilities in their active range plus constant extra range (See Options dialog). The facilities is color coded by type & reachabilities.
For VOR or DME you can left or right click them to load weather frequency to NAV1 or NAV2 radio. The first click sets up standby frequency. The second click swaps active & standby frequencies.The third click turn on/off aural monitoring of the NAV radio. (Actually the algorithm is a bit more complex but more convinient.)
For NDB you can left or right click them to load weather frequency to ADF1 or ADF2 radio. The first click sets up frequency. The second click turn on/off aural monitoring of the ADF radio.
There are two drawing tools available in the MAP mode:
Route drawing is a polyline tool. You create and edit the route by mouse clicking while holding Shift key. Left click adds desired points to the route. Right click deletes the last point of the route. Middle click clears the whole route. There is one route of no more than 15 legs per map file. The route is persistent between sessions. Color, opacity and width of route line can be customized in the Option dialog of FSXcontrols.
Ruler tool is a one segmented line temporary marker. Ruler is created and cleared by left click while holding Ctrl key. The shown dimension (inches/mm) is based on image horizontal resolution taken from the image file (if specified) or from display (monitor) system parameters otherwise.
There are some commands for EQgauges available for assigning to key/button. See EQgauges/<IMC> pseudo gauge in GhostMouse tab.
Important note: image viewing is memory hungry operation so prepare you maps as a .gif or .tiff file with 8bpp. NEVER use .jpeg! The ChartViewer optimized for 8bpp images!
You can configure all parameters of the gauge using the "Chart Viewer" tab of FSXcontrols Options dialog.
The following rules are not mandatory. It's just a best practice based on principles that were taken into account while program developed.
The gauge is able to show relatively large images in this mode (I successfully use 6500x5000 8bpp US sectionals), scroll & scale it. ChartVieiwer is optimized for this format.
If you have out of memory problem in FSX experiment with chart image size. Try to make them little smaller and set zoom more than 100% in chart viewer. This especially helpful if you use high resolution monitor with very small pixel physical size (less than 0.25 mm).
Put all charts into one folder tree. Specify the root of that tree in the box "Root chart folder" in Options dialog of FSXcontrols.
Creating indexed images for chart sets. The index image is any image no more that 0.5Mpix in size (limit was increased in V4.0). You mark up it by creating any number of quadrangle regions over it using Index image editor window of FSXcontrols. There is chart image file corresponding each created region.There are some important thing you should follow.
Index image file name must begin with "@".
Index must be in folder that is one of (at any nesting level) subfolders of chart root folder.
It's convenient to use the scheme of chart covering for continent which you can cut from any sectional or IFR chart.
There can be more than one index per one folder.
Quadrangle can overlap or nest each over. The program implement algorithm that allow to easy select each of quadrangle.For instance you can have both sectionals and TACs on one index image.
The rules for preparing plate (IAP, SID, STAR etc) was changed in V4.0 and now are simple and clear.
Put all plates into one folder tree. Specify the root of that tree in the box "Root approach plates folder" in Options dialog of FSXcontrols.
Create any suitable structure of the folder tree (i.e. by regions or countries).
Any folder in the tree that contains images (not counting images in subfolders!) is subject for name search in ChartViewer. I recommend name it as airport/city name prefixed by ICAO code. So it's just a recommendation :).
If you are interested in obtaining possible patches of the program please visit FSXControls project page.
If you discover a bug please report to eqsoft.mail@gmail.com. (email was changed since fsxcontrols v2.0). I can't check email frequently, so please expect reply delay.
I can’t effectively help on OS & FSX version compatibility problems because I have no resources to reproduce them. My current platform is Windows7 x64 + FSX Acceleration Pack.
Best regards.
Eugene Motorny (aka gm193)
St.-Petersburg, Russia.