New Version!
Frederf’s TARGET Profile
Falcon BMS 4.35
30 DEC 2020
Main Features
Throttle controller only. Joystick device is treated as separate controller.
Included key file
Button numbers mirror closely non-TARGET controller
Extensive comments showing device binds, functions, button ID numbers, callbacks, and needed BMS file edits
DirectX assignments (exception instrument lights on ‘i’ and ‘o’)
Realistic layout
Cutoff function for two engine aircraft
Virtual axes by button press
Landing gear handle
Common priority functions hands on
Switches
Cursor and enable on slew control with custom axis curve and inversion, no need to invert Y axis in setup. Adjust curve as desired.
Uncage, Mic switch press
Roll AP switch, AP Engage button, inc/dec based on length of press
Landing Gear Handle, Friction Slider easy to activate heads up, won’t command gear down if air start and left in bad position
Speed brake switch as himself
MO/DGFT uses self-cancel to economize on DirectX buttons
Interior and cockpit lights, pinky switch intelligently uses short throws of switch to adjust panel lights and long throws to gradually inc/dec the flood knob
Slap switch, LTB there when you need it
AR door, fuel switch left, moved from keyboard to handy switch this version
EMCON, fuel switch right, easy silencing when joining the tanker
Probe heat, moved to engine operate switch left, shared with MPO on the ignition spring loaded position
CAT I/III, moved to engine operate switch right, shared with E-jettison. Shed stores and end up CAT I in one motion
Master Arm, APU on
Horn silence right where the label says
AVTR, flap switch off, auto, and on in an easy to find switch
Master lights, still EAC
AP Pitch, still on the three-position switch, has a 250ms delay because my AP switch flickers revert to simple logic if desired
Throttle cutoff for both engines just works without enabling and configuring analog “red line”
COM-IFF, coolie hat, POV2 is enabled to handle this needed control
Axes
FOV, on the mic switch forward-aft at your thumb
Both throttle axes
Antenna elevation, china hat
Range knob, on the mic switch up-down
(.TMC comments are aligned in TARGET script editor for clearer reading)
include "target.tmh"
int main()
{
//TARGET CONFIGURATION
Configure(&Joystick, MODE_EXCLUDED); //Joystick Excluded
SetKBRate(100, 50); //PULSE, DELAY
SetKBLayout(KB_ENG); //English
if(Init(&EventHandle)) return 1;
/* TARGET SCRIPT FOR FALCON BMS 4.35, BMS - Duck v10.tmc */
//CONTROLLERS
//Controller
//Keyboard
//**Joystick - HOTAS Warthog** 00-31
//Thrustmaster Combined 32-63
//CH PRO PEDALS USB 64-95
//AB/Idle Green Line 90%
/*Current Keyfile BMS - DUCK v18
Mapping Function ## Callback 0x42
Joystick - HOTAS Warthog
DX1 TG1 Trigger (1/2) 0 SimTriggerFirstDetent
DX2 S2 Weapon Release 1 SimPickle
DX3 S3 Pinky Switch 2 SimPinkySwitch
DX4 S4 AP Override 3 SimAPOverride
DX5 S1 NWS Missile Step AAR 4 SimMissileStep
DX6 TG2 Trigger (2/2) 5 SimTriggerSecondDetent
DX7 H2U TMS Up 6 SimTMSUp
DX8 H2R TMS Right 7 SimTMSRight
DX9 H2D TMS Down 8 SimTMSDown
DX10 H2L TMS Left 9 SimTMSLeft
DX11 H3U DMS Forward 10 SimDMSUp
DX12 H3R DMS Right 11 SimDMSRight
DX13 H3D DMS Down 12 SimDMSDown
DX14 H3L DMS Left 13 SimDMSLeft
DX15 H4U CMS Up 14 SimCMSUp
DX16 H4R CMS Right 15 SimCMSRight
DX17 H4D CMS Down 16 SimCMSDown
DX18 H4L CMS Left 17 SimCMSLeft
DX19 H4P Not Used 18
DX20-32 Not Used 19-31
POVU H1U Trim Nose Up POV2 0 AFElevatorTrimUp
POVR H1R Trim Aileron Right POV2 2 AFAileronTrimRight
POVD H1D Trim Nose Down POV2 4 AFElevatorTrimDown
POVL H1L Trim Aileron Left POV2 6 AFAileronTrimLeft
Thrustmaser Combined*/
MapKey(&Throttle, SC, DX1); //Cursor Enable 32 SimCursorEnable
MapKey(&Throttle, MSP, DX2); //Uncage 33 SimToggleMissileCage
//DX3 RDRNRM Landing Light 34 SimLandingLightUp SimLandingLightMid
//DX4 APENG AP Roll (Dec) 35 SimLeftAPDec
//DX5 FC INCR Landing Gear Up 36 AFGearUp
//DX6 FC DECR Landing Gear Down 37 AFGearDown
KeyAxis(&Throttle, THR_FC,0, AXMAP2(3,DX5,0,PULSE+DX6));
MapKey(&Throttle, SPDF, DX7); //Speedbrake In 38 AFBrakesIn
MapKey(&Throttle, SPDB, DX8); //Speedbrake Out 39 AFBrakesOut
MapKey(&Throttle, BSF, DX9); //Missile Override 40 SimSelectMRMOverrdie
MapKey(&Throttle, BSB, DX10); //DGFT 41 SimSelectSRMOverrdie
//DX11 CHF 42
//DX12 CHB 43
//DX13 PSF Interior Light CW 44 SimInteriorLightCW SimInstrumentLightCW
//DX14 PSB Interior Light CCW 45 SimInteriorLightCCW SimInstrumentLightCCW
MapKey(&Throttle, LTB, DX15); //Slap Switch 46 SimSlapSwitch
MapKey(&Throttle, EFLNORM, DX16); //Air Refueling 47 SimFuelDoorClose SimFuelDoorOpen
MapKey(&Throttle, EFRNORM, DX17); //EMCON 48 SimRFNorm SimRFQuiet
MapKey(&Throttle, EOLMOTOR, DX18); //Probe Heat 49 SimProbeHeatOff SimProbeHeatOn
MapKey(&Throttle, EORMOTOR, DX19); //CAT I/III 50 SimCATIII SimCATI
MapKey(&Throttle, APUON, DX20); //Master Arm On 51 SimArmMasterArm SimSafeMasterArm
MapKey(&Throttle, LDGH, DX21); //Horn Silence 52 SimSilenceHorn
MapKey(&Throttle, FLAPU, DX22); //AVTR On/Auto 53 SimAVTRSwitchOn SimAVTRSwitchAuto
MapKey(&Throttle, FLAPD, DX23); //AVTR Off/Auto 54 SimAVTRSwitchOff SimAVTRSwitchAuto
MapKey(&Throttle, EACON, DX24); //Master Lights 55 SimExtlMasterNorm SimExtlMasterOff
//Taxi Light 56 SimLandingLightDown SimLandingLightMid
MapKey(&Throttle, RDRNRM, SEQ(DX25,DX3));
//AP Roll 57 SimLeftAPInc
MapKey(&Throttle, APENG, TEMPO(DX26,DX4,500));
//AP Pitch Up/Mid 58 SimRightAPUp SimRightAPMid
MapKey(&Throttle, APPAT, TEMPO(0,DX27,250));
//AP Pitch Down/Mid 59 SimRightAPDown SimRightAPMid
MapKey(&Throttle, APALT, TEMPO(0,DX28,250));
MapKey(&Throttle, IDLERON, DX29); //Throttle Cutoff Right 60 SimThrottleIdleDetentRight
MapKey(&Throttle, IDLELON, DX30); //Throttle Cutoff Left 61 SimThrottleIdleDetentLeft
MapKey(&Throttle, EOLIGN, DX31); //Master Pitch Override 62 SimMPO
MapKey(&Throttle, EORIGN, DX32); //Emergency-Jettison 63 SimEmergencyJettison
MapKey(&Throttle, CSU, DXHATUP); //COMM-IFF UHF POV2 0 SimTransmitCom1
MapKey(&Throttle, CSR, DXHATRIGHT); //COMM-IFF IN POV2 2 SimCommsSwitchRight
MapKey(&Throttle, CSD, DXHATDOWN); //COMM-IFF VHF POV2 4 SimTransmitCom2
MapKey(&Throttle, CSL, DXHATLEFT); //COMM-IFF OUT POV2 6 SimCommsSwitchLeft
//ADVANCED OPTIONS
//VIEW CONTROL
//Field of View X Rotation - Thrustmaser Combined
MapKey(&Throttle, MSR, AXIS(DX_XROT_AXIS,-250,10) );
MapKey(&Throttle, MSL, AXIS(DX_XROT_AXIS, 250,10) );
//FLIGHT CONTROL
//Rudder Axis Z Axis - CH PRO PEDALS USB (Dead Zone Small)
//Throttle Axis Throttle - Thrustmaster Combined
MapAxis(&Throttle, THR_LEFT, DX_THROTTLE_AXIS);
//Right Engine Throttle Axis Z Axis - Thrustmaster Combined
MapAxis(&Throttle, THR_RIGHT, DX_Z_AXIS);
//Pitch Axis Y Axis - Joystick - HOTAS Warthog (Dead Zone Small)
//Roll Axis X Axis - Joystick - HOTAS Warthog (Dead Zone Small)
//AVIONICS CONTROL
//Radar Antenna Elevation Z Rotation - Thrustmaster Combined (Dead Zone None)
MapKey(&Throttle, CHF, AXIS(DX_ZROT_AXIS, 60,10) );
MapKey(&Throttle, CHB, AXIS(DX_ZROT_AXIS,-60,10) );
//Cursor X X Axis - Thrustmaser Combined (Dead Zone None)
MapAxis(&Throttle, SCX, DX_X_AXIS);
//Cursor Y Y Axis - Thrustmaser Combined (Dead Zone None)
MapAxis(&Throttle, SCY, DX_Y_AXIS);
//Range Knob Y Rotation - Thrustmaser Combined (Dead Zone None)
MapKey(&Throttle, MSU, AXIS(DX_YROT_AXIS,-200,10) );
MapKey(&Throttle, MSD, AXIS(DX_YROT_AXIS, 200,10) );
//ADDITIONAL CODE
//Custom Curve for left and right throttle
SetCustomCurve(&Throttle, THR_LEFT, LIST(0,0, 65,90, 75,90, 100,100));
SetCustomCurve(&Throttle, THR_RIGHT, LIST(0,0, 65,90, 75,90, 100,100));
//Custom Curve for cursor X and Y
SetCustomCurve(&Throttle, SCX, LIST(0,0, 10,40, 35,50, 65,50, 90,60, 100,100));
SetCustomCurve(&Throttle, SCY, LIST(0,100, 10,60, 35,50, 65,50, 90,40, 100,0));
//Cockpit Lighting & Backlight Control
MapKey(&Throttle, PSF, TEMPO(
PULSE+'i',
REXEC(0,333,"ActKey(PULSE+KEYON+DX13);"),
500
));
MapKey(&Throttle, PSM, PULSE+LED(&Throttle, LED_INTENSITY, 0));
MapKey(&Throttle, PSB, TEMPO(
PULSE+'o',
REXEC(1,333,"ActKey(PULSE+KEYON+DX14);"),
500
));
//Slider Axis (Not Used)
MapAxis(&Throttle, THR_FC, DX_SLIDER_AXIS);
/*
\User\Config\FALCON BMS.CFG
set g_bHotasDgftSelfCancel 1
set g_bUseAnalogIdleCutoff 0
set g_nNumOfPOVs 2
set g_nPOV1DeviceID 2
set g_nPOV1ID 0
set g_nPOV2DeviceID 3
set g_nPOV2ID 0
*/
/*
\User\Config\DeviceSorting.txt
{0402044F-0000-0000-0000-504944564944} "Joystick - HOTAS Warthog"
{FFFF044F-0000-0000-0000-504944564944} "Thrustmaster Combined"
{00F2068E-0000-0000-0000-504944564944} "CH PRO PEDALS USB "
*/
}
int EventHandle(int type, alias o, int x){ DefaultMapping(&o, x); }