Finally, here it is! FSXControls is a set of three program modules:
GUI multifunction application (FSXControls.exe);
Chart viewer and airport info gauge (EQgauges.dll) ;
Control input handling module (EQmodule.dll) implementing technology that I named GhostMouse.
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 use by everybody 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 control of the aircrafts.
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 Express edition. Great thanks for Microsoft for this free amazing development platform. I really enjoyed the process.
Windows XP SP2 or SP3. (It should work on Vista too but I have not tested that extensively).
Properly (!) installed MS FSX SP2 with SimConnect. (FSX SP1 is supported from version 1.2.1 of FSXControls, but no any user's report for now). I’m not sure whether it will work on FSX Acceleration Pack. "Properly" means that FSX was installed by the native installer. FSXControls relies on registry information and installed SimConnect runtime shipped with FSX.
.NET 2.0 with latest service pack. Get it from Microsoft.com.
Properly installed latest version of DirectX 9c. (DirectX 10 on Vista) The program relies on managed DX libraries.
Full access (read, write, create) permissions to FSX installation folder & all its subfolders.
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.
Install EQmodule.
Install ChartViewer (the synonym of EQgauges.dll). You can use any unique number for “Panel ID” but remember it!!!
Scan scenery files in order to create airport database for ChartViewer.
Close Setup dialog.
Assign any key and/or button to PANEL_ID_* command using “Panel ID” value from step above as the Command Parameter. Correspondence of PanelID to the command parameter value is extremely critical !!! For your convinience just after installation of ChartViewer the PANEL_ID_TOGGLE command will be selected in the command tree of the main program window and Panel ID will be substituted to command parameter.
Save configuration (diskette icon on toolbar).
Start FSX. You will be asked (for EQgauges.dll & EQmodule.dll) if you want to run software from unverified publisher. Reply 'Run" then "Yes".
That’s it! You can skip any step and perform any action later & any number of times.
The main window is just a GUI editor for Standard.xml file of FSX.
You can map any keyboard, joystick or mouse button еще any FSX command (except new Acceleration command. Simply I don’t have it).
You can set repeat counter (for joystick only) 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.
You can NOT program axes input! The axis setup dialog well done by Microsoft in FSX. Use standard FSX setup for that task.
Lower right corner box is an interactive input controller use list. Just click it the press any key or joystick button. Hint: try right click & double click – they are useful shortcuts.
Filter menu controls the content of command tree.
The box next to Filter menu is search box. You can enter here any substring of FSX command name. Press “Enter” to start search and to move to the next found item.
GhostMouse menu shows up the window for configure custom control based on gauges’ mouse rectangular. (See GhostMouse window description below).
Tools menu is the set of useful utilities:
“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 ;)
“Quick camera shortcuts” displays the “FSX quick view” window (see below).
“Setup runtime modules“ displays dialog for install/uninstall runtime modules (see above the Installation section of the document)
“Options runtime modules“ displays dialog for configuring parameters EQmodule & ChartViewer gauge (see below in EQmodule.dll & EQgauges.dll sections).
“FSX quick view” window is for setting up some aspects of FSX view & camera system.
Setting up FSX’s global Cameras.cfg & camera views for particular aircrafts. You can assign up to 10 shortcuts (0-9) for any cameras.
Aircraft camera shortcuts override global FSX cameras!
Hints: Try mouse wheel & double click in the “Camera select shortcut” list.
Important! You should set up input commands VIEW_CAMERA_SELECT_0… VIEW_CAMERA_SELECT_9 (see main program window) to be able to use camera shortcuts.
For advanced simmers only! You can change initial view point in aircraft.cfg for any aircraft.
For advanced simmers only! You can unify the angular speed of virtual cockpit view rotation for all aircraft (see Camera definition id FSX SDK... or just try it). I use the default values of FSXControls.
GhostMouse is a sophisticated feature for simulate mouse button actions on currently invisible gauges. It perfectly works on the most of gauges of 3d party freeware & payware aircrafts.
The GhostMouse window in FSXControls is just a configuration facility for Eqmodule.dll FSX driver. So, please install it before use.
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 twice. I prefer to fly in VC & have no problem at all.
XML gauges are not supported. In most cases you can control them by using standard FSX commands.
Left panel of the window is the tree of three levels: Gauge modules, Gauges, Programmed mouse actions. The tree contains exclusively modules & gauges with custom control possibly inaccessible by standard FSX commands.
The upper right corner is the gauge view. You can see gauge’s background bitmap & clickable mouse boxes. Choose mouse box by clicking it. Hint: use left, right or middle mouse buttons are accepted.
The lower right corner contains:
The information box with the available gauge recognized mouse button actions for the selected mouse rectangular.
Box for enter keyboard or joystick input & select desired emulated mouse button action.
Box with optional parameters
Repeat counter for joystick input (similar to the ones used in standard.xml). The command repeats with frequency of 18/N Hz. The additional initial delay can be set up in EQmodule.cfg file.
“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).
A bunch of self descriptive buttons
Poped up in lover left corner “duplicated command information list”. Explore it yourself.
You can assign the same input to any number of gauges. The settings will be active for the actually loaded gauges only! If more than one gauge accepted the same input are loaded the gauge with higher priority will get input (See above “duplicated command information list”).
GhostMouse control take precedence over standard FSX commands! The standard FSX command activated by the selected control input is displayed in the status line at the bottom of the window.
You can press small “Null” button to setup “just eating” action for the specified control input if the gauge loaded. It conditionally (based on the aircraft loaded gauges) masks 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 control input programming. 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. Sometime it helps to extract invisible gauge backgrounds. To control blacklist use the context menu on gauge module nodes of the tree. (Beware! This feature is a little bit challenging.)
EQgauges.dll is the gauge with two main features: image viewer & airport info screen.
Image viewer. Personally I use it as a chart viewer. The gauge is able to show relatively large images (I successfully use 6500x5000 8bpp US sectionals), scroll & scale it. Viewer maintains history list of 9 images storing image name & viewing parameters. Viewer also has “go to previous viewed image” feature.
Image area controls:
Left drag – scroll
Right click – zoom/unzoom (or change to new zoom level).
Middle click – browse file system for images (& back from it without loading new image).
Wheel – setup new zoom level (see yellow box at the upper left corner)
Header area controls:
Click “Info” box opens nearest weather station & ILS/LOC facility viewer (see below).
Click filename at center opens the browse for images dialog.
Image history pool (circles on the right). Blue circle – previous image. Green circles – up to 9 image history slots.
Left click – load image from slot.
Right click – update slot by the current viewed image.
Right click between slots (then small arrow appears) – insert new slot & save current image to it.
Middle click green – clear (remove) slot.
Middle click blue – clear all slots.
Footer area controls: a. None! Use this area to move & resize panel.
Airport info screen 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 currently set frequency goes to backup.
Grey lines are the airports without weather observation but with ILS/LOC.
Green lines are the ILS/LOC. The first left click set up NAV1 frequency. The second click set up OBI1 to the ILS course. The right button does the same things for NAV2.
Middle click (or any click below the list) exits info screen.
Hint: image viewing is memory hungry operation so prepare you maps as a .gif file with 8bpp. The ChartViewer optimized for them!
You can configure parameters of the gauge using the “Configure runtime modules“ dialog. The settings are the following:
“Default chart directory” is the path to your favorite default folder for browsing images.
“Airport info range” sets the range (radius) for selecting airport to display on the info page.
EQModule currently implements two features: GhostMouse driver & thrust reverser control.
EQModule acts as GhostMouse technology FSX runtime driver.
GhostMouse is fully configurable via GhostMouse window of FSXControls (see above).
The module reads configuration only once during initialization process i.e. on FSX startup. So if you made any changes to GhostMouse, please close & restart FSX.
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 configure thrust reverser control using the “Runtime modules options“ dialog. The settings are the following:
“Activate command” is a control input for activation thrust reverser mode. You can assign any key combination or joystick button.
“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.
“Deactivate” is a control input for deactivation thrust reverser mode. It can be empty if you use the same switch to activate & deactivate the mode or use AutoOff mode.
“Reverser auto off” turns on/off auto deactivation of reverser mode then throttle lever is retarded back after applying thrust reverser.
The only setting for GhostMouse is:
“Additional first repeat delay” is the number of tick added to the first interval between repeat joystick commands then you hold button.
The setting for advanced kneeboard controls are:
Three boxes for Show/Hide, Next page, Previous page command assignments.
Listbox for marking pages to be selected by Next page & Previous page commands.
Real world time set feature is for automatic setting FSX ZULU time. Th 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.
Set ZULU time once on FSX startup (recomended).
Do nothing.
The new experimental wind smoothing feature is the analogue of ones you can find in registered version of brilliant FSUIPC. Note that the wind smoothing is active only at flight, not while user's aircraft is on the ground. You can set the following parameters of wind smoothing engine:
Maximum wind speed (strength) change rate (knots per second).
Maximum wind direction continuous change rate (degrees per second).
Maximum initial (just after the period of stable wind) wind direction change (degrees).
Now after reading the so looong four pages poor English “manual” and hours of discovery & hacking process you successfully set up all what you want. Enjoy or damn me & the program! Remember – you are the best beta tester of the worst freeware! Pilots never cry ;-)
If you are interested in obtaining intermediate nonstable version of the programm please visit FSXControls project page.
If you discovered a bug please report to fsxcontrols@mail.ru. Please read the file BugReport\README.TXT how to report effectively.
Sorry, but I can’t help on OS & FSX version compatibility issues because I have no resources to reproduce the issues.
Please, NO wish lists or feature requests. I've just shared my homemade tool & hope that it will be usable & useful for someone else.
If you like the software you can help me by creating true manual for it.
Best regards.
Eugene Motorny (aka gm193)
St.-Petersburg, Russia.