Virpil Configuration Software Guide: Mazex Edition (Unofficial)
Virpil Configuration Software Guide: Mazex Edition (Unofficial)
Version history
Version Date Change Description
0.1 2019-05-13 First draft
0.2 2019-06-06 Added chapter 4 and 5
0.3 2019-06-06 Fixed some grammar
0.4 2019-06-06 Updated 2.4.3 (typo in button numbers)
0.6.1 2019-10-05 Updated for v. 190913 of the software. Added encoders
0.6.2 2020-03-24 Error in 3.1.1 and 3.12 (button 53, not 33 for B1 mode 2).
TABLE OF CONTENTS
1 Introduction............................................................................................................................................4
1.1 Intended audience..........................................................................................................................4
1.2 Tools used........................................................................................................................................4
1.3 References.......................................................................................................................................4
2 Basics.......................................................................................................................................................5
2.1 Physical buttons vs logical...............................................................................................................5
2.2 Special button types........................................................................................................................6
2.3 Normal buttons................................................................................................................................6
2.4 Switches...........................................................................................................................................7
2.4.1 T4, T5 and T6............................................................................................................................7
2.4.2 T2 and T3 switches...................................................................................................................7
2.4.3 The T1 Switch (red cover)........................................................................................................8
2.5 Encoders..........................................................................................................................................9
3 Shift Modes...........................................................................................................................................10
3.1.1 The default Shift mode setup.................................................................................................10
3.1.2 How are the default shift functions done?............................................................................11
4 Splitting the T2 and T3 switches..........................................................................................................12
4.1 Our Scenario..................................................................................................................................12
4.2 Step 1 – modify the original mappings.........................................................................................12
4.3 Step 2 – add mappings for “missing” buttons..............................................................................13
5 Adding shift functions to the Mode Dial.............................................................................................14
5.1 Add shift modes for the T4, T5 and T6 switches..........................................................................14
5.1.1 Step 1 – update the original mappings..................................................................................14
5.1.2 Step 2 – add new virtual buttons...........................................................................................15
5.1.3 Want to add other buttons to a shift mode?........................................................................15
6 My final mapping table........................................................................................................................16
6.1 Modified buttons...........................................................................................................................16
6.2 Encoder tweaks.............................................................................................................................16
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 2 of 17
6.3 Added buttons (end of list)...........................................................................................................17
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 3 of 17
1 Introduction
The Virpil control devices are top of the line devices for PC simulator enthusiasts. One of the few
problems with the devices is that the configuration software is quite hard to use, and the
documentation of it is not complete yet.
The goal of this document it to add some documentation about parts of the configuration that the
current manuals don’t cover. It is based on the assumption that you have read the official
documentation and adds missing chapters or information based on that.
I started writing it for myself to remember how I fixed my setup as I know that it’s easy to forget in
6 months and annoying to try to get it right again. Then realized I could tidy it up and let others get
some help from it…
The device I do remappings for is the Moongost T-50 Throttle (v2) but it should work for other
devices in the same way (numbers for buttons may differ though)
The guide is based on the Virpil Configuration Software version 2020-02-04 (VPC-JOY-200204).
And yes – I use the built in “VPC Joy Tester” that is included in
the Configuration software as well, but it is interesting to just
verify what an old pre Windows 10 app from 2014 sees the
same thing as a verification. Some of our games are in the
same situation.
http://www.planetpointy.co.uk/joystick-test-application/
1.3 References
Link to the official configuration software and manuals:
https://virpil-controls.eu/downloads.html
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 4 of 17
2 Basics
Here we cover some of the basics of how the Virpil configuration software works that are important
to understand for the more complex mappings we can do. You are assumed to have read the official
documentation and know how to set up basic profiles, load device configurations etc...
So – if I press the “pinky” button on the Virpil Throttle (the one sticking out on the left side), it is the
physical button “03”. On the “Physical buttons state” part in the UI button “03” will be red when I
hold it down, and then it will remain blue like below when I release it. If you want to clear the
“memory” of buttons pressed previously (blue) you can press the “Reset buttons stat” button in the
lower right corner.
So – to see the actual button event that is sent to Windows you have to check the mapping table in
the right part of the UI. Here we look in the column “Phys.button” for 03 and find “003”. And there
is a mapping here to a “Logic.button” which is what Windows will get, “Button 1” in this case.
Actually – Windows will get “BUTTON 1 ON” when you depress the button and then the “BUTTON 1
OFF” events when you release it – but DCS sorts that out as “pressed” when it gets the ON event
and ignores the OFF event. You can see this by opening the “VPC Joy Tester” app by pressing the
blue button in the bottom of the UI. Select the Throttle in the drop down list of the test app first.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 5 of 17
2.2 Special button types
OK – so why are then the physical buttons 28, 30, 32 and 55 red all the time? (NOTE: it might be
that 29 or 31 are on instead of 28 and 30 below).
These are actually the T1, T2 and T3 switches being up or down, and the mode dial set to one
position. They are sending the physical button “pressed” all the time for the current state they are
in opposed to the other buttons that are not currently “pressed”.
Let’s go over the types of buttons and switches that are available and how they are configured.
If we want to change an assignment for a button we map them in the mapping table to the right.
We map a physical button to a logical (Windows) button event.
The B1-B9 buttons are a bit special in the default configuration as they are the only ones that have
different shift states pre-configured. When you turn the mode dial they will send different logical
button events to Windows.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 6 of 17
2.4 Switches
The different switches T1 to T6 are mapped a bit differently. As T4-T6 are the most ”normal” and T1
the ”strangest” we go through them in reversed order…
T4-T6 are really not special in the configuration. They are actually mapped as normal buttons where
up is one button and down Is another button. Simple as that.
Below is the default configuration for the T4 switch where up (phys 46) is mapped to Windows 34.
Down (47) is mapped to Windows 35.
Flip the T2 up and down. You will see that physical button 29 is on all the time when it is in the UP
position. When you flip it down it will send button 28 pressed all the time instead. For T3 it is 30
(down) and 31 (up).
Scroll down in the mapping list to the right in the UI. You will find that the physical buttons 28 and
30 are mapped a bit down in the list as the button type “Switch” instead of the “normal button”
mapping we have for T4,T5 and T6.
IMPORTANT TO UNDERSTAND
So, why is only physical 28 (T2 down) and 30 (T3 down) mapped as “switches”? And why is there no
mapping for 29 (T2 up) and 31 (T3 up)?
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 7 of 17
Because they are set up as switches where you can actually pick either the up or down event
as Virpil wanted them to send the SAME command when you change the position. It does not
matter if it’s up or down.
When you flip T3 up it will start sending physical button 31 ON – but it will also send the OFF event
for physical button 30 as that gets “released”. And as physical button 30 is mapped as a switch (see
image above) – that will send the button 33 event to windows – even though it was actually
“released” when you moved to the up position. A note is that Windows will get the “button 33
down” event for about 250ms every time you flick it the switch.
In chapter 4 we will look more at T2 and T3, and how to change to send different events to
Windows instead for up or down.
The T1 button (with the red cover) is more “special” than T2 and T3. It is a three way switch like
T4,T5 and T6 that is physically pressed to the “down state” by the red cover when that is closed. If
you open the lid it will go back to the spring loaded center position that has no button assigned to
it. So, when the cover is down, button 32 is pressed all the time. That is why 32 is red in the config
screen.
It really has two physical buttons linked – button 32 (down) and 33 (up). These are however
mapped differently in the configuration.
SO – when opening the lid the physical button 32 “OFF” event is sent as the switch moves from
being pressed to the center position – and that is mapped to windows as “Button 31 pressed”.
AND – when you put the cover down again causing the physical button 32 “ON” event – this is
linked so that it ALSO sends the “Button 31 pressed” event to Windows.
BUT – when physical button 32 stays pressed down (lid closed) it will NOT send any “pressed”
button to Windows as it is set up as a switch. It will be “red” (on) in the Virpil config screen though...
This is done by using the same switch behavior for the down event as the T2 and T3 use to send the
same command when you flick them...
Looking in the mappings configuration we see that physical 33 (up) is a “normal” button sending
button 30 to Windows when pressed, while physical 32 (down) is a “switch” type - acting on the
“state changed” to send a specific command and not ON or OFF depending if you press or release
it. So - if it would have been a “normal” button it would have been sending “ON” all the time when
the lid was down. Confused? Starting to get hold of it? As DCS will not react on the “OFF” events we
would not have been able to use the fact that is was released when opening the lid.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 8 of 17
Example usage for T1
So you can map one event that happens when you open or close it – and then one when you press
the switch up. I have set the “open /close lid event” (button 31) to “Arm ejection seat” in DCS F/A
18, and the press up event to eject (3 times). So when I run through the startup I flip the cover up
to arm the ejection seat, and then close it (thus double arming my seat as it will send the same arm
command both for opening and closing the lid). And IF I forget this during startup – it will do it in
the air if I need to eject as I cant get to the button without opening the lid…
2.5 Encoders
Encoders are the rotary encoders E1 to E3, that also has a “normal button” push function.
Getting the encoders to work properly in the default configuration for DCS is tricky – as the
encoders will send a stream of “button down” events pretty fast, and many gets skipped. So if you
map an encoder to a screen brightness dial etc in DCS it will move erratically, and you need to turn
it very slowly to make it work in DCS.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 9 of 17
3 Shift Modes
And the button 55 physical button being pressed all the time is actually the mode switch that in my
example is set to position 1. Change it and see that is will go to 56,57,58,59 instead. We talk more
about the mode dial in chapter 5.
IMPORTANT: The following is based on the precondition you have set up the T-50 throttle with the
option "Mode dial as shift state" when creating your initial profile. See the official documentation
regarding how to set up profiles, or watch this video:
https://www.youtube.com/watch?v=1ULJGPiFAaM
The default profile for the T-50 Throttle makes it possible to use the Mode Dial to send different
“buttons” (commands) for the same physical button to your game. The Mode dial has 5 modes. It is
important to note that with the default profile it will only add "shift" button functionality for the B1-
B9 buttons on the throttle. So, the default profile has “shift commands” for all 5 modes for the B1-
B9, but not for any other switches or hats.
Note that there are other options than using the Mode Dial to set the “shift mode”. You can for
example configure that holding a specific button will cause you to go into “shift mode 2”.
As it is important to understand the basics, we start with a more detailed explanation of how the
standard buttons in the B1-B9 group are set up with the default “shift states” for the Mode Dial.
Mode 1 behaviour
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 10 of 17
Mode 3,4,5 works the same way and are mapped by Virpil in the default config – for B1-B9
Let’s check the default mappings done for the B1 button we tested in 4.1
The important thing here is to understand what it means – button 40 will send “button 12”
to the game. But - note that it has shift mode 1 set, so it will only send button 22 to windows
if the mode dial is set to “mode 1”.
Scroll further down. You will find another mapping row for physical button 40 for shift mode
2. That will send windows button 53 instead.
If you continue down you will find mappings for mode 3,4 and 5 as well.
So – this is what we want to play with to add other buttons, switches or hats to map them to
different modes set by the dial.
IMPORTANT NOTE: When you look in the advanced configuration list you will see that most of the
physical buttons are NOT mapped to a shift state. Look at physical button “2” for example that will
send the command “button 4” to you game. As that button DOES NOT HAVE a shift set in the
configuration – it will send “button 2” whatever way your mode dial is set.
… One problem is that you can only have 128 logical "buttons" / "commands" that can be sent to
the operating system. So you can't have shift states for all the switches, hats etc.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 11 of 17
4 Splitting the T2 and T3 switches
As explained in chapter 2.4.2 the T2 and T3 in the default configuration are set up as switches that
briefly sends the same “button” to Windows when you change the switch position. This means that
if you want to use them for two separate “on” or “off” functions in DCS it will not work. They have
to be mapped to “toggle on/off” functions instead with the default setup. And then up might be
down depending on the state of the switch when you start the game...
So we first need to make the physical button 30 (T3 down) and 28 (T2 down) into “real” normal
buttons. Double click the first row below (button 028).
End result:
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 12 of 17
4.3 Step 2 – add mappings for “missing” buttons
So – physical button 29 (T2 up) and 31 (T3 up) do no have any mappings in the default setup as it
relied on 30 and 32 being switches.
Go to the end of the mapping list and double click on the first “empty” row (normally logical Button
85).
Start by unchecking “Auto-bind pressed button” as you will get the one the mode dial is “pressing
all the time otherwise – or some of the T1, T2, T3 switches”
Set physical button 29, mode normal and save. You might click “SAVE AND NEXT” to get directly to
the next entry as well which works here as we want to add one more (31). So add the same setup
for physical button 31.
End result:
Done – go to DCS or your sim of liking and map separate buttons for up and down position.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 13 of 17
5 Adding shift functions to the Mode Dial
As the T4-T6 switches do not have any shift state in the default configuration we need to start by
adding “shift mode 1” to the original mappings.
The T4-T5 act as two “buttons” each where they send one physical button for up and one for down
according to the list below. The mapping is a bit odd where the range starts at 44 and goes to 49,
starting from T6 up, then T5 up etc.
Lets find them in the advanced mapping table:
Switch ID: Pos UP ID: Pos DOWN
T4 46 47
T5 45 48
T6 44 49
So – lets start with updating the physical button 44 (T6 up). Double click the row for Phys.button 46,
change Shift from 0 to 1 and click “SAVE AND NEXT”.
Continue doing this 6 times for physical button 44 to 49 (yes the sorting order is for logical button
ID so the order of the Phys buttons is a bit awkward). Just press “CANCEL” when you get to phys
button 50 that we are not changing.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 14 of 17
The end result should look like this where all 6 ”buttons” are mapped to shift mode 1:
So now we need to add new virtual buttons for shift mode 2 and 3 (or more).
Go to the end of the mapping list and double click on the first empty row. I always deselect the
”Auto-bind pressed button” as that gets stuck with the mode dial selected button.
• Mode to normal
• Shift to 2
Rinse and repeat for the remaining 5 ”buttons” for shift mode 2!
And when you are done with button 49 for shift mode 2, you start over with button 44 for shift
mode 3 etc. The end mapping should look like the one in chapter 6.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 15 of 17
6 My final mapping table
So – in the end, these are my changes for my throttle for adding ”Mode 1-5 shift support” for the
T4, T5 and T6 switches, and splitting the T2 and T3.
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 16 of 17
6.3 Added buttons (end of list)
Button 84 in the top of the image is the last of the
”default buttons” that Virpil has mapped (it is the
B6 button in shift 5 mode).
Etc..
Document Name: Virpil Software Guide - Community Last Change: 2020-03-24 Page 17 of 17