top of page

Controllers and retro sims part 9: Native controller support with virtual controllers, the why, if, which and how

  • 8 hours ago
  • 10 min read

Thrustmaster Warthog throttle

Previous articles have covered an introductory overview of the vJoy/Joystick Gremlin/HidHide combo solution for virtual controllers in Controllers and retro sims part 6: vJoy & Joystick Gremlin. This was followed by an article covering some simple hypothetical examples, as an aid to understanding in Controllers and retro sims part 7: More vJoy, Joystick Gremlin & HidHide. Finally the virtual controller models used by  vJoy/Joystick Gremlin/HidHide and Thrustmaster TARGET were examined as a more detailed overview in Controllers and retro sims part 8: vJoy/Joystick Gremlin/HidHide & TARGET, looking further.


Hopefully this has provided suitable background as to how vJoy/Joystick Gremlin/HidHide creates and manages virtual controllers and you can apply this understanding to the sim of your choice.


However, some later sims do not require a virtual controller and allow a particular device and axis to be configured in the sim itself. This level cf configuration is what I call native controller support. Surely with this level of configuration a virtual controller is unnecessary?


This article covers the 'advanced' topic of why, if and how to use a virtual controller in these sims which, at first glance, seem not to need one. This article covers the general topic, discussing the concepts rather than providing detailed instructions.


Definitions


Before starting the discussion it's useful to define some terms...


Physical controllers


The actual real world device that sits on your desk. This may be a joystick, a joystick with throttle or rudder control (or other axis), a single device HOTAS, a multi-device HOTAS and associated controllers like rudder pedals or Multi Function Display (MFD) controllers forming a multi-device flight control combo.


Logical controllers


If physical controllers are what you see on your desk, then logical controllers are the view of the device you see in Windows. The number of logical devices will match the number of separate physical devices (each plugging into your pc).


If it's a single joystick or single device HOTAS then you'll see a single logical device in WIndows. If it a multi-device HOTAS, like a Thrustmaster Warthog stick and throttle, then you'll see a joystick device and a throttle logical device in Windows. If you have multi-device flight controls, like a Warthog stick & throttle, with rudder pedals and MFDs, then you'll see the Warthog stick, Warthog throttle, rudder pedals and each MFD as a separate logical devices in Windows.


Logical devices in Windows
An example of logical devices. MFDs: 1st and 2nd devices top row, rudder pedals: 7th device top row, Warthog joystick & throttle: 6th & 7th devices bottom row.

Examples


Some useful examples of physical devices and corresponding logical devices.


Joystick with throttle


Thrustmaster T.Flight Stick X

The Thrustmaster T.Flight Stick X is an example of such a device featuring a joystick with an additional built in 3rd axis.


As expected this is a single physical device and a single logical device in Windows.



Single device HOTAS


The single device HOTAS normally has two components a stick and throttle component, however, one usually plugs into the other (usually with some proprietary connector or cable) and a single USB cable runs to the PC. This can be seen in the Thrustmaster T.Flight Stick X image below.


This makes it a single device HOTAS, despite have separate stick and throttle components. In Windows this will be seen a single logical device. Some examples below:



Multi-device HOTAS


Thrustmaster Warthog HOTAS

The Thrustmaster Warthog is an example of a multi-device HOTAS with both the stick and throttle being separate independent devices, each plugging into a pc via USB.


In Windows the stick is one logical device and the throttle a different logical device.


Multi-device flight controls


With each of the above examples we could add additional devices to make it a multi-device flight controls combo. For example we could add a separate rudder pedals physical device connecting to our pc via USB which would create an additional logical device in Windows.


We could add a pair of MFDs each of which are a separate physical device and each connecting to a pc via USB. This would create two additional logical MFD devices in Windows.



A Thrustmaster Warthog stick and throttle coupled with rudder pedals and a pair of MFDs would give us a total of five physical and logical devices! Swap the Warthog for a single device Saitek X45 HOTAS and there are now four physical and logical devices.


Virtual controller


The virtual controller is a software created logical device that replaces one or more (and often all) logical devices created from physical devices. Virtual in that there is no physical device that corresponds to the virtual controller. The virtual controller will be configured with the axes, hats and buttons it needs.


In an earlier article, Controllers and retro sims part 8: vJoy/Joystick Gremlin/HidHide & TARGET, looking further, vJoy (as part of vJoy/Joystick Gremlin/HidHide) and TARGET were the apps responsible for creating virtual controllers.


Auto assigned controller support


Auto assigned controller support is a name I've given to DOS and earlier Windows based sims that will automatically assign the device and axes to use. These sims were created at a time where there were no multi-device HOTAS products, only sticks with various numbers of axes and single device HOTAS.


This would mean the sim would have to identify the single device and assign (probably a maximum of four) axes. This would happen automatically and was, for the most part, very successful with a few hints. This is why these sims often ask if you have a throttle or rudder pedals.


Fast forward to present times and we have multi-device HOTAS, rudder pedals with toe brakes and MFD's. These earlier sims will make a guess at which device and axis should be assigned to an axis in-game but can easily get things very wrong.


This is one of the major use cases for vJ/JG/HH and TARGET. To combine all your devices into a single virtual device configured with the axes your sim is expecting. You have to combine all of your devices, as only combining some of them (e.g. stick and throttle) while omitting others (e,g, rudder pedals) means the sim can still choose between the virtual device (configured as stick and throttle) and the rudder pedals, and it may choose the rudder pedals!


Native controller support


As touched on briefly some sims (created in a pc ecosystem of multi-device HOTAS which may be combined with additional controls) do not try and automatically configure a device and axes. Instead they have what I call native controller support.


With native controller support, the sim natively supports multiple logical devices, it is the players responsibility to choose the logical device and axis to be used for a particular 'in-game' axis. This is normally done through some in-game controller configuration menu. With this mechanism there is no risk of an device axis being auto misassigned, only manually misassigned by the player!


Below are examples of various games with native controller support.



Advanced native controller support


A very few sims have taken this a step further and provide what I call advanced native controller support, providing the sort of facilities normally found in HOTAS profiling software like Joystick Gremlin or TARGET.


Falcon BMS Device Setup Guide
Falcon BMS Device Setup Guide, 147 pages long!

In these sims, some or all of: dead zones, saturation points and axis response curves can be configured in the sim itself or supporting utility. These are normally the higher end sims, some examples of which as listed below (links go to some controller setup guides):



The why?


So given we have a sim with native controller support, why would we want to introduce a virtual controller? There are really only two general reasons, they are:


  • Corrective

  • Enhancement


Corrective


None of us is getting any younger and the same is true of our controllers. As time passes and with extended use we may find very minor issues begin to occur.


Maybe the weight of the stick means it doesn't quite sit at the neutral centre position and is off by a tiny increment. Maybe the rudder pedals have a minor jitter at the centre position.


These very minor issues may not justify replacement but instead require the cost effective solution of applying minor corrections through profiling software.


Enhancement


With native controller support we are reliant on the facilities the sim provides. They may initially seem comprehensive enough, but what if we wish to introduce more commands from buttons presses or chain multiple commands to a single button press (and the sim does not allow us to)?


Maybe we would like to introduce a refuelling mode so switching mode allows us to use a different set of axis response curves with larger physical/logical axis movement translating to smaller axis movement in the sim.


This can even be useful in DOS sims, in F-117A Nighthawk Stealth Fighter 2.0, weapon deployment involves opening the bay doors (increasing Radar Cross Section (RCS), firing the weapon and closing the bay doors (reducing RCS). These commands could be chained together in a profile, to be accomplished with a single button press.


Again if the sim does not support these facilities it does not mean they are unavailable, just that we need to use additional profiling tools to provide them.


This is the last objective question covered, the rest of these questions are subjective in nature. You may feel the reasons are not justified or disagree with an approach. The important point is to discuss the options available, whether or not you agree/disagree are comfortable trying them out or would prefer not to is entirely personal preference, but just knowing what is achievable is important as well. The rest of this article is descriptive not prescriptive.


The if?


The next question to ask is: 'If a virtual controller is the right solution?'


Someone who spends a majority of their time flying in DCS or FS2024 (both with advanced native controller support) may have invested the time and energy to set these sims up specifically for their equipment. They may feel a virtual controller provides no added benefit given the work they have already done.


Alternatively someone who tries a wide range of sims from early DOS Falcon 3.0 to DCS may want to create virtual controllers for DOS and earlier Windows sims, continues to use them with native controller support sims and even with DCS. This may especially be true if a 'corrective' profile was created and is used as a basis for sim specific profiles.


The same virtual controller solution (be it vJ/JG/HH or TARGET) may also be preferred for native/advanced native controller support sims as the experience gained in using the profiling software may make it the more comfortable/easier/preferred choice and it also provides a single solution across multiple sims.


Some may prefer to use the physical/logical controller device with the native/advanced native controller support in some sims and use a virtual controller in others.


In short, it's a subjective question and one opinion is equally valid as another.


The which?


The next question to ask is: 'Which devices make a virtual controller?'


This may seem like an odd question, when using a virtual controller, as the prefered option may be to add all the devices to it. This is a useful approach for DOS and earlier Windows sims as then they can't accidentally auto assigned the wrong physical/logical controller as there is only a virtual controller available. This is what I describe as full device replacement.


I believe this is the approach taken by many when using vj/JG/HH or TARGET. It's also the approach I usually find myself using.


However taking the earlier example of the joystick from the corrective section above. We could simply replace the joystick device with a virtual device and employ a suitable dead zone. In this scenario a 'corrective' profile uses a virtual device to replace the physical/logical device. This what I describe as single device replacement.


This can be taken a step further, again using the example of the joystick and rudder pedals from the corrective section above. This time we create a virtual controller with joystick and rudder pedal axes and create a corrective profile, adding a suitable dead zone to the affected axes. In this scenario the virtual controller replaces some (but not all) physical/logical devices. This is what I describe as multi-device replacement.


This requires understanding the relationship between physical, logical and virtual controllers, as described in the definitions above.


The how?


The final question is: 'How do we use our virtual controller with native controller support?'


The answers as you may imagine are straightforward. With full device replacement we only configure the sim using the axes from the virtual controller.


With single device/multi-device replacement we configure the sim using the virtual controller axes (instead of the physical/logical device(s) and axes it replaces). For those physical/logical devices not replaced we continue to use those physical/logical device axes in the sim.


Many may prefer full device replacement as a simpler approach, but it is possible to mix physical/logical and virtual controllers with native controller support.


As an example the following is MiG Alley without a virtual controller, with single device replacement, multi-device replacement and full device replacement:



To HidHide or not to HidHide?


One point of note concerning sims with native controller support is that HidHide becomes an optional component. As native controller support allows a choice of device and axis to use in-game, the fact that the sim can see controllers we don't want it to use doesn't matter, they just aren't selected during controller configuration.


There is nothing wrong with continuing to use HidHide and you may wish to continue to do so if it's become part of your setup 'routine' or you use a batch file or script (which includes HidHide) to set things up. It also means there are less options to choose from when configuring axes.


Again this comes down to what you are most comfortable with or find easier.


And now for something completely different...


Or HidHide is for life and not just for flight sims. After a long day of configuring profiles and virtual controllers and maybe even some flying, you may wish to kick back and play a game.


Out comes the Xbox 360 controller, you plug it in and fire up your game and nothing. Your game of choice is now expecting you to use your joystick/throttle/rudder pedals! Do you have to forage under the desk, tracing USB cables and unplug them from the pc or USB hub only to have to plug them all back in again later?


An alternative solution with HidHide is to hide all of the flight controls behind the HidHide device firewall, leaving the Xbox controller as the only controller your game can see.


You may have the opposite problem in that the Xbox controller is left plugged in and it frequently gets picked up by sims. In this case you could hide the Xbox 360 controller behind the firewall (along with the physical/logical flight controls about to be replaced by a virtual controller), leaving only those devices your sim will use!


Finally...


As mentioned earlier there is no definitive right or wrong way to set up your kit and if it works for you, then it works! Hopefully this article has shown what might be achievable and provided something to think about.


Credit and thanks for this article go to:


  • The developers of vJoy, Joystick Gremlin and HidHide.

  • The developers at Thrustmaster for TARGET.


Good hunting!

Drop Me a Line, Let Me Know What You Think

Thanks for submitting!

© 2035 by Train of Thoughts. Powered and secured by Wix

bottom of page