FSXControls
Preface
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.
Prerequisites
- 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. I’m not sure
whether it works on SP1 or Acceleration.
- .NET 1.1 & .NET 2.0 with latest patches. 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 permissions to FSX installation folder & all its subfolders.
Technologies used
- 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.
Installation
- 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. a. Choose Tools-> Configure runtime modules.
- Install EQmodule. c. 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.
- That’s it! You can skip any step and perform any action later & any number of
times.
Features & hints
FSXControls.exe
- 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).
- “Configure runtime modules“ displays dialog for install/uninstall runtime
modules (see above the Installation section of the document) and configuring
parameters of the modules.
- “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©
- 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.
- Attention! FSXControls may crash on some payware protected gauge modules.
Just start FSXControl again! The program puts such modules to the blacklist &
next time skips them. Th common rule is “one “bad” gauge module – one crash or
unexpected dialog box”.
- 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 module from the blacklist. Exit FSX, Start FSXControls & look at the
result. Often it helps.
- Hint: 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 rather challenging!!!)
EQgauges.dll
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)
- 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.dll
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 “Configure runtime
modules“ 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 common 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.
Post Scriptum
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 & my software! Remember – you are the best beta tester of the worst
freeware! Pilots never cry.
If yIf you discovered a bug you may report to me on
fsxcontrols@mail.ru. Please read
the file BugReport\README.TXT how to report effectively.
Sorry, but I can’t help on installation & compatibility issues. Please, NO
wish lists or feature requests. I just share 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.