TSH v4 Functionality Improvements

This section of the TSH Manual details all of the improvements TSH v4 makes to Jane's F-18 functionality. Use the links on the right to navigate to the topic of your choice.

No CD required

With TSH v4 there is no requirement for the Jane's F-18 CD to be in the drive.

Official 1.01F Patch

The contents of the 1.01F Patch are included in TSH v4. There is no need to apply the patch separately.

Controlling Screen Resolutions

Clicking on the resolution drop down box in the TSH Manager presents a choice of 15 resolutions in various aspect ratios, as well as two other choices: Res. in Game and same as desktop. Selecting Res. in Game will use the resolution chosen in-game in OPTIONS > Graphics > Driver (available resolutions will be 1024x768, 1280x960, and 1600x1200). Selecting any of the 15 resolutions will force the selected resolution in-game, regardless of the choice made in OPTIONS > Graphics > Driver. Selecting same as desktop will force the desktop resolution in-game, regardless of the choice made in OPTIONS > Graphics > Driver.

Ensure your monitor and video card both support any resolution forced by TSH v4! If you are not sure, test resolutions on the desktop first to avoid problems. Team Super Hornet is not responsible for any damage to your computer hardware that may result from using TSH v4.

For resolutions exceeding 1024x768, the desktop must be at equal or greater resolution than game resolution to prevent Jane's F-18 from minimizing to the desktop while in flight.

The following resolutions may be forced in-game:

  • 640x480
  • 800x600
  • 1024x768
  • 1152x864
  • 1280x768
  • 1280x720
  • 1280x960
  • 1280x1024
  • 1360x768
  • 1400x1050
  • 1600x900
  • 1600x1024
  • 1600x1200
  • 1920x480
  • 1920x1200
  • 2048x1536

Selecting Screen Resolutions in the TSH Manager


Master-Mode-Specific Key Mappings


When the Activate MultiKeyConfig box in the TSH Manager is checked, a different custom keyboard setup will be used for each Master Mode. When this feature is enabled, the mapping named mk0 is active in NAV mode, mk1 is active in AA mode, and mk2 is active in AG mode. In the example on the right, three different commands are mapped to the same keyboard key, viewed in the file f18keys.ini. In this example, if MultiKeyConfig is enabled and the zero key is mapped to a joystick button using joystick programming software, the same joystick button will toggle the ILS in NAV mode, fire the cannon in Air-to-Air mode, and cycle the A-G Armament program in Air-to-Ground mode. For non-programmable joysticks, MultiKeyConfig can still be used with the 16 joystick buttons (or 32 if a second controller is enabled) available for in-game programming. MultiKeyConfig can give 3-mode joystick capability in Jane's F/A-18 that would not otherwise exist in an inexpensive joystick or in an independent joystick and throttle (3-mode capability is already included in the programming software of high-end game controllers such as a Cougar HOTAS or a CH HOTAS). For users with the German version of Jane's F/A-18, Master-Mode-specific key mappings pertain to the F18keysg.ini file.

Selecting Master-Mode-specific Keymappings in the TSH Manager


Using Buttons On A Second Controller

Without modification, Jane's F-18 accepts controller 1 DirectX buttons inputs from 16 buttons and a 4-way hat switch. These are mapped in-game to the Joy1 B1, Joy1 B2, etc. slots. By checking Activate Buttons on 2nd controller in the TSH Manager, commands mapped to the Joy2 slots will function when the second controller's buttons 1 through 16, plus hat, are pushed.

Activating Joystick 2 buttons in the TSH Manager


Note that if commands are mapped to joystick 2 buttons but Activate Buttons on 2nd controller is not checked in the TSH Manager, Joystick 1's DirectX button presses will also activate the commands mapped to Joystick 2.

Mapping Joystick 2 buttons in the Custom Keyboard mapper


New Analogue Axis Controls

TSH v4 allows for analogue control of the following aircraft functions:

  • TDC slew Left/Right
  • TDC slew Up/Down
  • Radar antenna elevation
  • FLIR contrast
  • FLIR brightness

Axis assignments on this page are in the form A#, where A is one of six DirectX axis identifiers (X, Y, Z, R, U, V) and # is the number of the controller (e.g., Z3 is the designation for the Z axis on the third controller). TSHv4 includes support for a maximum of 6 analogue axes per controller.

Axis names generally follow the conventions below:

  • X - Stick left/right
  • Y - Stick up/down
  • Z - Throttle
  • R - Rudder
  • U and V - rotaries or sliders

The following table shows how all Jane's F/A-18 analogue axes may be assigned:

Function Assignable Axes
X1 Y1 Z1 R1 U1 V1 X2 Y2 Z2 R2 U2 V2 X3 Y3 Z3 R3 U3 V3
TDC Slew Left/Right            
TDC Slew Up/Down            
Radar Antenna Elevation                    
FLIR Contrast                    
FLIR Brightness                    

Assigning Axes

To assign functions to controller axes, use the dropdown boxes.

Assigning a different throttle axis in the TSH Manager


Assigning a different rudder axis in the TSH Manager


Assigning the TDC Left/Right axis in the TSH Manager


Assigning the TDC Up/Down axis in the TSH Manager


For TDC assignments, the Use TDC_KEY and DeadZone Axes checkboxes affect the in-game behavior. If Use TDC_KEY is checked, the selected axes will only control the TDC when the TDC_JOYSTICK keystroke (default /) is held down. If this option is used, the aircraft will not respond to joystick inputs while TDC_JOYSTICK is held. If Use TDC_KEY is unchecked, the selected axes will control TDC motion at all times (subject to the axis switcher, described on a following page).

If DeadZone Axes is checked, a deadzone will be applied to the axes used for TDC control. This deadzone is built into the TDC motion on the radar MDI, but is not normally present when controlling the FLIR. Checking DeadZone Axes is recommended; without it the FLIR can make uncommanded slews. The deadzone is customizable and can be changed from values between 0 (effectively no deadzone) and 5000 in 100-unit increments. The default value of 4000 usually works well.

TDC_KEY and TDC Deadzone in the TSH Manager


Assigning the Radar Antenna and FLIR axis in the TSH Manager


Radar antenna elevation, FLIR contrast, and FLIR brightness are always assigned to a single axis, although the direction of the antenna motion and the FLIR control can be reversed independently by checking the appropriate Reverse box. Whether the axis controls the radar antenna or the FLIR is governed by the logic below.

TSHv3 Radar/FLIR axis flowchart


Whether the axis controls the FLIR contrast or FLIR brightness depends on the CONT_BRT toggle. The original state of this toggle is set so that the axis controls the contrast. As seen below, a box will surround the LVL or BRT label to indicate which is currently active (enlarge the thumbnail to see animation).

Indication of FLIR Contrast or Brightness Control


Although full antenna range is probably the most realistic, TSH v4 offers the option of limiting the range by manually adding the line ANTEN_LIMIT=XX to F18addon.ini, where XX is a number from 1 to 100. For example, ANTEN_LIMIT=100 gives 100% antenna movement for 100% axis movement, while ANTEN_LIMIT=50 gives 50% antenna movement for 100% axis movement. This parameter exists because the extremes of the antenna elevation are not very useful (they scan very high or very low) and you may wish to eliminate them to gain finer control over the useful part of the antenna motion. If the line ANTEN_LIMIT=XX does not exist in F18addon.ini, full antenna range is used.

Effects of ANTEN_LIMIT parameter on maximum and minimum radar antenna elevations


Forcing USB IDs

By default axes X1 - V1 are read from USB ID1, axes X2 - V2 are read from USB ID2, axes X3 - V3 are read from USB ID3, etc. To identify which controllers are on which USB IDs, go to the Test Controller(s) tab of the TSH Manager, select the USB ID from the single dropdown box, and move axes on the controller. Repeat with a different USB ID selected until that controller's physical axes move the axis displays on-screen.

If you find your controllers to be "out of order" (a common example would be that the controller you wish to use for axes X2 - V2 is on ID3), check the Force USB ID in gameid_force box. Then, select the number of the actual ID in the dropdown under the ID that you want to force. For this example, the appropriate settings are shown in the image on the left. This will force controller 3's axes to be seen as coming from controller 2, and vice versa.

If you previously had to disconnect other controllers in order to get your joystick to be recognized in Jane's F/A-18, forcing IDs can eliminate this necessity. Simply identify the ID of your joystick, then select that number in the dropdown box under USB ID1. This will allow this controller's buttons and axes to be used as the primary controller in Jane's F-18 even if it is not recognized in Windows on ID1. It may also be necessary to select a controller as Windows' preferred legacy controller. To do this, go to Control Panel > Game Controllers > Advanced and select the desired controller.

If the above is confusing, remember that the single dropdown box has no effect in-game and is simply there for ID identification, while the three dropdown boxes at the bottom of the TSH Manager will force new USB IDs in-game if the Force USB ID in game box is checked.

The TSH v4 Axis Switcher

When to use the axis switcher

TSH v4 provides support for 7 analogue axis controls:

  1. 1. Pitch
  2. 2. Roll
  3. 3. Throttle
  4. 4. Rudder
  5. 5. TDC slew Left/Right
  6. 6. TDC slew Up/Down
  7. 7. Radar antenna elevation + FLIR contrast/brightness

Because of this, there may be more analogue functions that you want to use than there are physical axes on your controller(s). If this is the case, you may want to use the axis switcher.

Function IDs

TSH v4 assigns new analogue functions to an ID. The TDC is fixed at ID 00, while other functions can be assigned to IDs from 00 to 09. When a function's assigned ID is active, that function is active. When another ID is active, that function is inactive and accepts no analogue input. Please note these are function IDs and are independent from the controller IDs discussed previously.

By default, all analogue functions are on ID 00, and they are all active simultaneously. For example, assume that TDC Up/Down motion and radar antenna elevation + FLIR contrast/brightness are both assigned to axis V1. If the axis switcher is not used, moving V1 will move the TDC and the radar antenna or FLIR contrast/brightness at the same time. Most likely this is not desirable behavior; the axis switcher can be used to separate these functions.

In this case a typical solution would be to assign radar antenna elevation + FLIR contrast/brightness to ID 01, since TDC motion is always on ID 00 and cannot be changed. Assigning radar antenna elevation + FLIR contrast/brightness to ID 01 means that when ID 00 is active, V1 controls only the TDC, and when ID 01 is active, V1 controls only the radar antenna + FLIR contrast/brightness.

Since IDs 02 through 09 are also available, these can be used as IDs where axes control nothing at all; this can be useful to turn off axes entirely or for other uses with programmable joysticks. Additional analogue control might be added to these IDs in future TSH releases.

The ID is changed with three commands:

  • INC_AX: increment the ID by 1 until wraparound
  • DBL_AX: increment the ID by 2 until wraparound
  • TDC_AX: reset the ID to 00

Assigning IDs

Analogue functions are assigned to IDs by using the line ID_AXES= in the F18addon.ini file. This line is not controlled by the TSH Manager and must be added manually to make use of the axis switcher. The line takes the syntax ID_AXES=aa*bb*...ii*jj*. "aa" denotes the assigned ID of the radar antenna elevation + FLIR contrast/brightness, while "bb" through "jj" denote the assigned ID of blank functions. The following examples demonstrate this.


All functions will be active on ID 00. INC_AX, DBL_AX, and TDC_AX will have no effect in-game.


The TDC will be active on ID 00 and the radar antenna + FLIR contrast/brightness will be active on ID 01. At the start of a mission, the TDC will be active (ID=00). Pressing INC_AX (ID=01) disables TDC function and enables the radar antenna + FLIR contrast/brightness. Pressing INC_AX again or pressing TDC_AX (ID=00) disables the radar antenna + FLIR contrast/brightness and enables the TDC. DBL_AX will have no effect in-game.


The TDC will be active on ID 00 and the radar antenna + FLIR contrast/brightness will be active on ID 01. ID 02 will be available but will not contain any analogue functions. At the start of a mission, the TDC will be active (ID=00). Pressing INC_AX (ID=01) disables TDC function and enables the radar antenna + FLIR contrast/brightness. Pressing INC_AX again (ID=02) disables the radar antenna + FLIR contrast/brightness, turning off all TSH analogue axis controls. Pressing INC_AX a third time or pressing TDC_AX (ID=00) enables the TDC.


At the start of a mission, the TDC will be active (ID=00). Pressing DBL_AX (ID=02) disables the TDC, turning off all TSH analogue axis controls. Pressing INC_AX, DBL_AX, or TDX_AX (ID=00) enables the TDC.

Note that even if two functions are assigned to different physical axes, assigning them to different IDs will prevent them from being active simultaneously.

Naming IDs

Using axis switching, a busy pilot can quickly forget which ID is active. To prevent this, a 3-character identifier of the active ID is printed in the UFC. The identifiers are customizable and are controlled by the lines in F18addon.ini NAME_IDXX=AAA, where XX is the ID from 00 to 09 and AAA is any three characters. As an example, say TDC motion and radar antenna elevation + FLIR contrast/brightness are on two separate IDs (AXES_ID=01*). To distinguish between these IDs, the following lines could be added to F18addon.ini:


"A/F" would stand for "antenna + FLIR". These identifiers would appear on the UFC in CNI and MDI modes, always indicating the state of the function ID. Note the following:

  • Identifiers will appear in capital letters in-game even if they are entered lower case into F18addon.ini
  • Identifiers can be a maximum of three characters. Additional characters will be truncated and will not be printed in-game.
  • Non-standard ANSI characters may not display properly in-game. Please use for identifiers only characters generated through single and shift-chorded key presses in Notepad.

Screenshots of ID names in use can be seen below. Expand the thumbnails to see the animations.

UFC in CNI Mode, function ID cycled by pressing INC_AX


UFC in MDI Mode, function ID cycled by pressing INC_AX


Priority Control

Forcing F18.exe to run at Normal priority instead of the default of High can improve Jane's F/A-18 compatibility with controllers (such as the Saitek X-45 HOTAS and the Logitech G15 Gaming Keyboard) and voice communication programs (such as Ventrilo). BelowNormal priority can be used in other situations. Select the desired executable priority in the drop down box.

If you run F18.exe in Win98 compatibility mode, it will run at Normal priority regardless of the TSH Manager setting.

Controlling Executable Priority in the TSH Manager


Hiding The Cockpit Mouse Cursor

When using enhanced TrackIR, a visible mouse cursor can be confusing if it is not indicating the center of your viewpoint. For those who wish to potentially reduce this confusion, TSH v4 provides a timer that, when exceeded, will hide the mouse cursor (it is actually moved to the bottom right corner of the screen). After the cursor is hidden, the next movement of the mouse will snap it back to the center of the screen.

Mouse cursor hiding is controlled by the Hide Mouse Cursor after ____ seconds selection box. Options are available from 5 seconds to 60 seconds in 5-second increments. If a setting of 0 is used, the mouse cursor will not hide.

Controlling mouse cursor hiding in the TSH Manager