Controllers and retro sims part 8: vJoy/ Joystick Gremlin/HidHide & TARGET, looking further
- 19 hours ago
- 4 min read

A further look into the vJoy/Joystick Gremlin/HidHide model as an aid to understanding their function and how they fit together to provide a complete solution. The Thrustmaster TARGET software will also be compared and contrasted.
There are some excellent tutorials and articles out there that give an overview of Joystick Gremlin and provide detailed in-depth instructions about advanced capabilities and functions. The same is of vJoy and to a lesser extent HidHide. However this article will be looking further and taking an overview of the solution they provide and how each component app contributes to the solution.
By looking further into these 'solution models' it is hoped that this will help built a mental model of how the components fit together and provide a solid understanding, which should help in configuring your hardware for your sim of choice.
It's recommended to take a quick look at previous articles, Controllers and retro sims part 6: vJoy & Joystick Gremlin and Controllers and retro sims part 7: More vJoy, Joystick Gremlin & HidHide. For brevity we'll use the following abbreviations vJoy (vJ), Joystick Gremlin (JG) and HidHide (HH). TARGET is the acronym for Thrustmaster Advanced pRogramming Graphical EdiTor.
The vJoy/Joystick Gremlin/HidHide model

In the vj/JG/HH model, there are 3 major components HidHide providing a device firewall, vJoy providing a virtual controller device and Joystick Gremlin tying the solution together, reading data from Windows devices through the firewall, remapping the device data using the profile and sending it on to vJoy.
Hiding devices
HidHide is the component restricting access to the physical/Windows device(s). It does this through the creation of a 'device firewall'. HidHide specifies the devices hidden by the device firewall. Applications (e.g App X) or games (e.g. Game Y) are not allowed through the firewall so have no idea the Windows device (or associated physical devices exist), only those apps specifically configured in HidHide will be allowed through, in this case Joystick Gremlin.
Virtual device
vJoy is the component configuring and creating the virtual device (usually a virtual joystick or HOTAS, but could be any controller). The virtual controller is the only 'controller' device that will communicate with the sim.
Profiling
Joystick Gremlin reads data from Windows devices through the firewall as HidHide is configured to allow the hidden devices to be accessed by JG. Physical/Windows controller data is read by JG, adjusted/remapped as defined in the JG profile and sent to vJoy.
Joystick Gremlin is also communicating with the sim. This allows the JG profile to map controller buttons to keyboard (or mouse) commands so when the controller button is pressed the appropriate keyboard command is sent to the sim.
The Thrustmaster TARGET model

In the TARGET model a single TARGET app provides the three components of the solution. Both the TARGET app and TARGET Script Editor provide these components.
The TARGET app provides a simpler (but still quite advanced) GUI based profiling app, while the TARGET Script Editor provides a IDE like interface for fully programmatic profile configuration, allowing very advanced features to be implemented. As TARGET is a proprietary product it only supports Thrustmaster devices.
Since both apps provide the same solution components we'll use TARGET to refer to either the TARGET app or TARGET Script Editor, both are interchangeable in this discussion.
Hiding devices
TARGET takes a different approach to restricting access to the Windows device. When a profile is run the Thrustmaster Windows device is disabled, effectively disappearing from the list of accessible devices available to apps or games.
Virtual Devices
TARGET provides a complete suite of virtual devices. Like vJoy it provides a virtual controller but also provides a virtual keyboard and mouse. When a profile is running only these devices communicate with the sim.
Profiling
Again the profiling component ties everything together reading controller, mouse and keyboard data, remapping it as required by the profiles and sending it to the virtual devices (which in turn send it to the sim).
Due to the proprietary nature of the TARGET apps, it's not known whether TARGET is able to read Thrustmaster controller data from the disabled Windows device or directly from the physical Thrustmaster device. However the exact details of how it is done isn't important, just that the controller data can be read.
In the following screenshot we see the TARGET profile running window, within it you see the physical devices (numbered 1 - 5) that are hidden and creation of the virtual devices in the bottom lines.

Common components
Despite these two virtual controller solutions taking two different approaches we can see a great deal of commonality between them with both solutions providing:
A device hiding mechanism. vJ/JG/HH uses HidHide to create a device firewall. The TARGET mechanism disables the Thrustmaster device while still allowing the Thrustmaster TARGET software to get data from the device. As HidHide does not have access to proprietary information and works across devices from any vendor, the device firewall provides the mechanism to keep devices active but hidden from sims.
Virtual controller creation. vJ/JG/HH uses vJoy to create a virtual controller that the sim will use. TARGET creates a set of virtual devices: controller, mouse and keyboard, that are used by the sim.
Profiling. Both vJ/JG/HH use profiling apps with JG being a single profiling app for both simple or complex profiles while Thrustmaster uses the TARGET GUI based app for simpler profiles and the Script Editor to program more complex profiles.
Finally...
Hopefully the models presented help clarify the understanding of how vJ/JG/HH work together, and by comparing with a different solution, helps clarify the role of each component and their place in the vJ/JG/HH framework.
Good hunting!

Comments