Profile photo of Killer

Sep 302012

Background: In computing, DirectInput forms a part of the DirectX library, a Microsoft API for collecting input from a computer user, via input devices such as the mouse, keyboard, joystick or other game controllers. It also provides a system for action mapping, which allows the user to assign specific actions within a game to the buttons and axes of the input devices. Additionally it handles force-feedback (input/output) devices.

DirectInput provides benefits over normal Win32 input events:

  • they enable an application to retrieve data from input devices even when the application is in the background
  • they provide full support for any type of input device, as well as for force feedback
  • through action mapping, applications can retrieve input data without needing to know what kind of device generated that input


(Adapted from Dunc_DX BMS Keyfile, version 1.0, 2011-08-17)

Whilst this article refers to the Cougar, much of it can be applied to any HOTAS with comparable capabilities.  For this exercise we are going to configure the HOTAS with full functionality and provide a secondary layer of functions using DirectX shifting.  As I do not have rudder pedals, this article will demonstrate how to achieve rudder control using the large antenna elevation dial on the throttle, as well as the ability to control TrackIR and Teamspeak along with VAC (Voice Activated Commands).  We will also be using an improved version of the default key file, which provides a more structured and easy to find navigate layout in the Falcon UI.

This article assumes that you already know how to setup your TM Hotas Cougar in general (i.e. performing manual/automatic calibration, load and compile Foxy profiles and how to load keyfiles in Falcon BMS). It only covers necessary steps to get the provided files up and running.
This profile uses the new BMS DirectX shifting feature to avoid any emulated keyboard input whenever possible. All files have explanatory comments inside, so feel free to check out the
KEY, TMJ and TMM files for further information.

This profile consists of the following components:

BMS_DirectX.tmm                                                    // Foxy profile files
BMS_DirectX.tmj                                                      // Foxy profile files
BMS_DirectX.key                                                      // BMS Falcon keyfile

In order for this profile to work, make sure that the axis mapping configuration within your TM Hotas Cougar CCP is setup like this (to ensure that we can use the microstick as analogue

HOTAS CCP Axis Setup

Copy the BMS_DirectX.tmm and BMS_DirectX.tmj files to your “…Foxy/files” folder, open foxy, load the files, compile and download to the Cougar. Please note that you will NOT see anything happen in the Foxy keytester if you press Cougar buttons, as this profile uses DirectX buttons nearly exclusively.

Open the Falcon BMS.cfg file which is located in your BMS User\Config folder with a text editor. Find the setting: set g_bHotasDgftSelfCancel. It’s set to 0 by default, please set it to 1. Additionally, verify that the setting set g_nHotasPinkyShiftMagnitude is set to 256 (default).

Copy the BMS_DirectX.key file to your BMS User\Config folder. Start Falcon BMS, go to the Setup Controllers screen, and make sure that Thrustmaster HOTAS Cougar is selected as main controller. Next, load the BMS_DirectX.key file, then go to the Advanced – Avionics Control section. Make sure that the axis are mapped as follows:

This concludes the mandatory part of the Dunc_DX profile setup. Please note that the BMS Setup Controllers screen is unable to display the DirectX shifted functionality, you will only be able to test/see the unshifted DirectX buttons. To test out the shifted DirectX buttons, you have to enter the sim and fly.

Check out the included PDFs for keyboard and joystick mappings.

Sep 302012

The following is an excerpt from the BMS-Manual.pdf (C:\Program Files\Falcon BMS 4.32\Docs\Falcon BMS Manuals) and is part of a series of documents intended to demistify the art of configuring your HOTAS and maximising the inherent functionality that BMS provides.

HOTAS F16 Overview

The following diagrams illustrate the typical F-16 HOTAS control grips and the various functions assigned to them. With the exception of the black-out switch (HOBO), all HOTAS functions are modeled and hard coded. Many of the functions are mode dependent, in that the function of a hat or button will appropriately vary depending on what master mode (AA, AG, NAV) or submode (CRM, ACM, TWS, RWS, BORE, DGFT, MSL,) or SOI Sensor Of Interest (TGP, HSD, FCR, HUD) is currently selected. Tap and hold functionality as appropriate is also hard coded and does not require any further programming.
The sections which follow illustrate the function of the various controls in AA and AG modes and provide the names of the key file callback names that are typically mapped to each switch position on the stick and throttle grips.

All of these functions are able to be applied to a Cougar HOTAS, however for other HOTAS your choices may be varied and limited to available hats and buttons, whereby it is strongly advised to adapt as many of the core functions as possible, particularly these 4 way hats: TMS (Target Management Switch); DMS (Display Management Switch); CMS (CounterMeasures Switch) and COMMS (Communications) and CURSOR CONTROL.

In the next article, HOTAS Programming with DirectX, we will look at how we can apply these functions to a HOTAS


HOTAS Sidestick Air to Air

HOTAS Throttle Air to Air

HOTAS Sidestick Air to Ground

HOTAS Throttle Air to Ground

May 302012

The ECM employment adds a new interesting tactical aid to our MP mission, that’s worthy to be explored by mission builders.

1.) Only EA-6B Prowler, EF-111A Raven and EF/A-18G Growler can be tasked as “ECM”
2.) The ECM-Flight must be in the SAME PACKAGE as the flight they have to protect
3.) Enroute and Action have to be set to “JAM”
4.) The ECM-Flight will start jamming on the TOS of its first steerpoint (JAM)
5.) As in Reallife, EA-6B Prowler, EF-111A Raven and EF/A-18G Growler can only jam ground radar and not the radar of airplanes.The jammer in the pit protects ECM plane against radar of enemy fighters and some SAM sides. To protect other flights you have to set the STP to JAM, otherwise it doesn’t work.
6.) In Falcon 4.0 Allied Force ECM flights can jam all kind of SAM sides in a RADIUS of 40 miles by 100%
7.) Significant is the position of the ECM-Plane and not its flightpath
8.) If the distance between the ECM-Flight and the protected flights is more than 40 miles, the ECM-Flight still protects itself against enemy SAM sides
9.) If the ECM-Flight will be shot down, the SAM sides are active again immediately
10.) The ECM-Flight will stop jamming on the TOS of its last steerpoint (JAM). It doesn’t matter if it could reach the waypoint, or not
11.) If you delete an ECM-Flight during mission-building, the protection of this package is gone, although there’s another ECM-Flight in the same package
12.) It doesn’t matter on which altitude the ECM is flying

Protection is effective against:
– AAA (Radar)
– SA-2
– SA-3
– SA-4
– SA-5
– SA-6
– SA-8
– SA-10
– SA-11
– SA-15
– SA-17
– SA-19

– Tracer fire
– AAA (Optical)
– SA-7
– SA-14
– SA-16
– Carrier Task Force

The ECM needs to be the first flight into the engagement zones of the offending FCRs so that their radars can be adequately jammed.
The FCRs would be able to track and engage the ECM escorted flight if it entered at the same time as the jammers. This is especially true for the SA10

Human-ECM can be used during multiplayer missions and they are more effective, provided they follow the above underlined rules, expecially being in the same package.

Human flown ECM flights can provide a great advantage depending on the type of aircraft available. For example:

EF-111A “Raven”
This aircraft can only JAM and does not possess weapons. The aircraft is fast and can bug out when necessary. The Raven must be well protected, otherwise, ECM jamming coverage can be compromised.

EA-6B “Prowler”
The Prowler is able to JAM and carry weapons such as the AGM-88C. Unfortunately, this aircraft is very susceptible to AA threats due to it’s lack of AA weapons. Make sure this flight is well protected. It is less maneuverable than the Raven and requires constant AA escort. However, since it can carry HARMs, it is a great choice for quickly clearing the map of long range SAM threats.

EF/A-18G “Growler”
Growlers can carry a more varied assortment of weapons including HARMs. This is a very capable aircraft that can carry AA weapons and engage BVR. With this capability, the aircraft can be utilized more freely than the others when available. Though not usually recommended, there is much to be gained from multitasking this aircraft when it is on route to an ECM patrol.

The ECM flight seems to enjoy 100% protection. Similarly, once the ECM flight is established, the other flights of the package are able to enter the SA10’s threat ring without being engaged. Although the FCR sometimes tracked and fired on some aircraft, the missiles would go ballistic from launch.

The ECM flights will not be able to hinder the other side’s ability to vector fighters to the area.
IADS is affected but only when radar based acquisition is concerned. Optical and IR response remains active and, again, your relative position will most likely be known to them via AA radar of fighters, attack aircraft, ground units, etc.

Nov 172011


Touch Screen F16 Falcon Cockpit for iPad

The demo movie was recorded on a desktop in Firefox browser to demonstrate what the interface looks like and how it works.  The iPad actually does an even better job using the Safari browser.
Apologies for the advert, once its finished you may need to drag the movie timer back to the start to see the demo properly.


The “Safari” browser on the iPad connects to a simple website hosted by your desktop machine via a small server app.  Images used are the included 2D images in the Falcon installation which have been mapped with hotspots on the various panels, buttons and switches. Overlay images are used to enlarge certain areas of the 2D cockpit to make some panels larger and therefore easier to access and use.  To close an overlay touch anywhere off the overlay or touch the close icon, usually at the top right hand corner.

Touching any of the button/switch hotspots will send the appropriate keystroke from the ipad to your desktop box where falcon is installed.  Hotspots have also been created to launch things such as Red Dogs Interactive Map of Korea.

Obviously there are hundreds of keystrokes which could be mapped, but we have a perfectly excellent clickable cockpit now, whereas the aim here is to replace mouse clicks with screen touch instead.  This way you do not have to either take your hand off the joystick to use your mouse, or try and use your mouse left handed.

The iFalcon project is a work in progress and new features will continue to be added as I think of them.  Currently the following features are mapped (see image below)

iFalcon Touch Screen Zones

  •  ICP (Overlay) with all buttons and switches mapped
  • MFD Left (Overlay) with all buttons and switches mapped
  • MFD Right (Overlay) with all buttons and switches mapped
  • RADIO Panel (Overlay) an enhanced version of the Radio Panel incorporating additional keystrokes for QWERTY Communications with a mini numpad.  Volume controls and a list of Frequencies are also available from this panel.  Its not authentic, but its convenient.
  • Laser Arm (Keystroke) Toggle
  • Master Arm (Keystroke) Toggle
  • AP left (Keystroke) Up and Down
  • AP right (Keystroke) Up and Down
  • Gear (Keystroke) Toggle
  • AVTR (Keystroke) Up and Down Off >Auto>On
  • Datacard (Overlay) Assumes a datacard resides in the correct location […iFalcon\Data\Docs\datacard.jpg]
  • Interactive Map (Overlay) Opens RedDogs Interactive Map of Korea
  • Chat (Overlay) Opens awesomeforce chat.  You may need to have already accessed the chat prior on the iPad.


  • Download the complete package here
  • Unzip the to a folder of your choosing (no installation required)
  • Make sure that both your desktop machine and the iPad are both members of the same LAN (Local Area Network) and that they are both connected to the internet.  Make a note of the LAN IP of both devices, desktop and iPad.
  • Launch the WebServer application (TouchDown Web Server Beta in the iFalcon folder you unzipped earlier
  • Make sure the profile page is “index.htm” and the IP address is the LAN IP of your desktop machine (typically 192.168.X.XX or 10.0.0.X)
  • In the Setttings menu “Allowed IP” of the WebServer app enter the LAN IP address of your iPad (you can usually find this in your routers attached devices list)
  • If you are running “TeamViewer” shut it down, it conflicts with WebServer app.
  • Click “Start Server”
  • How to Setup the Server
  • Start your iPad and navigate in Safari to the IP of your desktop Falcon computer
    eg or
    Yes just type the IP in the URL bar and hit enter

If all has gone according to plan your iPad should show a picture of a 2D cockpit with touchable hotspots just waiting for your smudges.


Touch the Left MFD and a larger MFD opens overlayed atop the cockpit.  Touch any of the 20 OSBs to send those keystroke commands to your desktop computer. Close the MFD by touching the close icon or simply touch anywhere off the MFD to close it  and return to the cockpit.
Try the same thing with the Right MFD, once again all 20 OSBs are mapped appropriately.
From the 2D cockpit, this time touch the ICP, a larger ICP overlay opens and all buttons, are once again touchmapped to send the appropriate keystrokes to your desktop computer. Close the ICP using either method mentioned above and return to the cockpit view.
Some of the more commonly used switches in the 2D pit are also touch mapped and include the following;
Laser Arm (Toggle)
Master Arm (Toggle)
Autopilot switches (both) Up and Down (requires two touches to move from down through middle to up and vice versa)
Gear (Toggle)

The keystrokes emulated here are based on the BMS.key keystrokes file.  If the keystrokes are incorrect for you then you are using an inferior keystrokes file and its time you “got with the program”.
Alternatively you can choose to stick with your keystrokes file which has served you so well this past decade and delve into the .htm files and edit them to emulate the keystrokes you use.
To do this you will need to edit the following files
iFalcon\data\Docs\cockpit.htm (This is the main cockpit view)
iFalcon\data\Docs\LMFD.htm (The Left MFD)
iFalcon\data\Docs\RMFD.htm (The Right MFD)
iFalcon\data\Docs\ICP.htm (The ICP panel)
In setting this up I discovered that the BMS.key file had no key assignment for  OSB 19 and 20 on either Left or Right MFD.
To fix this is a simple copy/paste job, however if you feel that this is beyond you, stop now and go adn watch TV instead.  No responsibility is accepeted for any damage inflicted by yourself on your files, your Falcon installation should you proceed.

To fix this open your BMS.key file in a simple text editor and find the lines

SimCBEOSB_19L 1041 0 0XFFFFFFFF 0 0 0 1 “LMFD OSB-19”
SimCBEOSB_20L 1040 0 0XFFFFFFFF 0 0 0 1 “LMFD OSB-20”

and replace them with

SimCBEOSB_19L 1041 0 0x49 6 0 0 1 “LMFD OSB-19”
SimCBEOSB_20L 1040 0 0x52 6 0 0 1 “LMFD OSB-20”

Similarly for the Right MFD find the lines

SimCBEOSB_19R 1061 0 0XFFFFFFFF 0 0 0 1 “RMFD OSB-19”
SimCBEOSB_20R 1060 0 0XFFFFFFFF 0 0 0 1 “RMFD OSB-20”

and replace them with

SimCBEOSB_19R 1061 0 0x49 5 0 0 1 “RMFD OSB-19”
SimCBEOSB_20R 1060 0 0x52 5 0 0 1 “RMFD OSB-20”

Your keyfile (which should be based on BMS.key) now has keystrokes for all 40 OSBs.

To edit a keystroke in the htm files you need to change the detail inside the () of  the line.
eg, I use an inverted NUMPAD to emulate the keys in the same layout as the pit ICP, but if you use NUMPAD 1 as ICP 1 then you may want to switch these around
So change this…
<area name=”A-CAL 9″ shape=”rect” coords=”206,264,252,310″ href=’function macro(“{NUMPAD3}”);’ target=”bottomFrame”>
<area name=”A-CAL 9″ shape=”rect” coords=”206,264,252,310″ href=’function macro(“{NUMPAD9}”);’ target=”bottomFrame”>

Make sure you dont mess with any other characters in the code or you will most likely break it.
You will need to do this for ICP 1,2,3,7,8,9

Single keystrokes shoud follow this syntax
<area name=”TOGGLE LANDING GEAR” shape=”rect” coords=”0,552,125,621″ href=’function macro(“g”);’ target=”bottomFrame” title=”TOGGLE LANDING GEAR” alt=”TOGGLE LANDING GEAR”>
Chorded keystrokes should follow this syntax
<area name=”WARN RESET” shape=”rect” coords=”278,369,311,398″ href=’function macro(“+^!w”);’ target=”bottomFrame”>

+   is Shift
^   is Ctrl
!     is Alt
w   is well its just w


Stay Tuned


Sep 212011
landing pattern

Landing Pattern

Whenever possible and practical we will endeavour to use the above landing pattern for the recovery of all airborne flights and packages. Study it, practice it and be prepared for it.