Discussion Vessel Independent Input Manager (VESIM) - Q&A

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
This thread could be used to discuss NASSP's alternative joystick manager module, called the VESIM. As I was the one who began to develop this module, I am happy to answer questions here. Suggestions are also welcome, however please take into account that at the moment the time is not amongst the resources I have an abundance of. The next step related to VESIM I'd like to take is the development of a user friendly GUI to let the people avoid fiddling with config files.
Just for sake of completeness, here is the current documentation of VESIM (also a could be found in the Doc folder of NASSP repo):
https://github.com/orbiternassp/NASSP/blob/Orbiter2016/Doc/Project Apollo - NASSP/VESIM.txt
 
Last edited:

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,692
Reaction score
2,670
Points
203
Location
Dallas, TX
Thanks. So would this allow Inputs from USB devices to intract with Orbiter
 

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
So would this allow Inputs from USB devices to interact with Orbiter
Not everything which is connected to the USB, but the devices which are supported by Win's DirectInput interface. Practically all the joysticks/controllers which appear in Windows' "USB game controllers" dialog box could be picked up by VESIM.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,692
Reaction score
2,670
Points
203
Location
Dallas, TX
Thanks. So if a joy stick controller shows up in the list. You could map it to translation thrust and have another joystick for rotion thrust, correct?
 

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
You could map it to translation thrust and have another joystick for rotion thrust, correct?
It is up to you whether you map the analogue signals of two different joysticks to the rotation and translation controllers' inputs or - as it is given in the config for the VKB Gladiator in the distribution - you can map the analog signal of one stick to the rotation controller, and the buttons to the translation controller. The VKB stick has plenty of buttons, nine of them are arranged into a nice 3x3 matrix, and the translation commands are discrete signals on both LM and CSM, so I preferred to choose the second option. But again, it's entirely your decision that which buttons or stick axes are mapped to which inputs of the simulator, and certainly you can use multiple devices simultaneously.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,692
Reaction score
2,670
Points
203
Location
Dallas, TX
So I have 2 different joysticks. I am not sure yet how this works. But like Orion,.... I want 2 joysticks. One controls translations and the other rotation. Is this doable? Where do I get this module? I supposed you can use it with other vessels?
 

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
So I have 2 different joysticks. I am not sure yet how this works. But like Orion,.... I want 2 joysticks. One controls translations and the other rotation. Is this doable?

Yes, it is. Plug both joysticks in, open Project Apollo Configurator, click there on "Create Config Files" button.
1691931240189.png

That will create the appropriate config files in Config\ProjectApollo\Vesim folder, if you have two controllers attached to the computer then there will be four new files created with names like "CSM - One of your joysticks name.launchpad.cfg". In these files all the available actions are given (these sets are differing for LM and CM), all of them are unassigned. Your task is to edit these files to map the available joystick axes/buttons to the actions up to your discretion. For example if you want to use stick #1 for controlling rotation, and stick #2 for translation, set up the RHC lines in "CSM - joystick #1.launchpad.cfg" to something like (use some joystick tester tool to find out which axes your device is connected to):
Code:
RHC Roll    Axis    Axis X    FALSE   
RHC Pitch    Axis    Axis Y    FALSE   
RHC Yaw    Axis    Axis Z    FALSE
and leave other lines unchanged.
Similarlty, for the other joystick change the THC lines "CSM - joystick #2.launchpad.cfg" as
Code:
TTCA X    Axis    Axis Z    FALSE   
TTCA Y    Axis    Axis X    FALSE   
TTCA Z    Axis    Axis Y    FALSE
You may have to reverse the direction for some of the THC axes (when CSM goes into the opposite direction on joystick movement), you can do this by simply changing the fourth field in the given row from "FALSE" to "TRUE".

Where do I get this module? I supposed you can use it with other vessels?
VESIM is currently a part of the NASSP and serves only the LM and CSM, but obviously my original intention was to integrate it also with other vessels (SSU, I'm looking at you :) ). Also I considered to make it as a standalone library where vessel developers can do this integration job on their own (that's why I named it as "module"). Anyway, VESIM is written in a way that it's code is fairly vessel independent, I think the only NASSP specific thing in vesim.cc is the explicit reference to the config file directories. However I'm pretty much lack on free time, so it will not be in near future when I can port VESIM to any other vessel - but it is under GPL, so I'd be more than happy to give every help to someone who want to further develop it.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,692
Reaction score
2,670
Points
203
Location
Dallas, TX
Yes, it is. Plug both joysticks in, open Project Apollo Configurator, click there on "Create Config Files" button.
View attachment 34279
That will create the appropriate config files in Config\ProjectApollo\Vesim folder, if you have two controllers attached to the computer then there will be four new files created with names like "CSM - One of your joysticks name.launchpad.cfg". In these files all the available actions are given (these sets are differing for LM and CM), all of them are unassigned. Your task is to edit these files to map the available joystick axes/buttons to the actions up to your discretion. For example if you want to use stick #1 for controlling rotation, and stick #2 for translation, set up the RHC lines in "CSM - joystick #1.launchpad.cfg" to something like (use some joystick tester tool to find out which axes your device is connected to):
Code:
RHC Roll    Axis    Axis X    FALSE  
RHC Pitch    Axis    Axis Y    FALSE  
RHC Yaw    Axis    Axis Z    FALSE
and leave other lines unchanged.
Similarlty, for the other joystick change the THC lines "CSM - joystick #2.launchpad.cfg" as
Code:
TTCA X    Axis    Axis Z    FALSE  
TTCA Y    Axis    Axis X    FALSE  
TTCA Z    Axis    Axis Y    FALSE
You may have to reverse the direction for some of the THC axes (when CSM goes into the opposite direction on joystick movement), you can do this by simply changing the fourth field in the given row from "FALSE" to "TRUE".


VESIM is currently a part of the NASSP and serves only the LM and CSM, but obviously my original intention was to integrate it also with other vessels (SSU, I'm looking at you :) ). Also I considered to make it as a standalone library where vessel developers can do this integration job on their own (that's why I named it as "module"). Anyway, VESIM is written in a way that it's code is fairly vessel independent, I think the only NASSP specific thing in vesim.cc is the explicit reference to the config file directories. However I'm pretty much lack on free time, so it will not be in near future when I can port VESIM to any other vessel - but it is under GPL, so I'd be more than happy to give every help to someone who want to further develop it.
Thanks. I was thinking of using in my Orion/Artemis. SSU is not really supported now. SSV replaced it.
 

ThePuzzlemaker

New member
Joined
Apr 27, 2023
Messages
1
Reaction score
0
Points
1
Location
Wichita
Is it possible to use two different joysticks of the same type? I have a dual-Thrustmaster T.16000M setup I'd like to use, but the joysticks are both the same type so they would have the same configuration file name.
 
Last edited:

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
Is it possible to use two different joysticks of the same type? I have a dual-Thrustmaster T.16000M setup I'd like to use, but the joysticks are both the same type so they would have the same configuration file name.
Honestly I don't know the answer because I've never got the opportunity to test this situation (I don't have two totally identical devices at home). It practically depends on how DirectInput handles your two Thrustmasters, whether it provides different names for them or not. I suggest to attach both TMs to your computer, and generate the config files as I've written in my previous post. If you can see in the folder Config\ProjectApollo\Vesim two files with similar but different names for the CSM config of the TMs, like "CSM - Thurstmaster T.16000M - 1.launchpad.cfg" and "CSM - Thurstmaster T.16000M - 2.launchpad.cfg", then you can be happy. If not, then it will not work, and I don't even know, how to overcome on this issue in a simple way.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,692
Reaction score
2,670
Points
203
Location
Dallas, TX
I hope you make this independent. So it can be used on other vessel:)
 

JinjuTheGhost

New member
Joined
Feb 1, 2024
Messages
1
Reaction score
0
Points
1
Location
Somewhere in orbit
Is there a way I can bind the translation Z and Y to the hat switch and the X+ and X- to the two buttons beside it? I'm using a Thrustmaster T.16000M
 

ggalfi

Well-known member
Joined
May 31, 2020
Messages
74
Reaction score
131
Points
48
Location
Budapest
Is there a way I can bind the translation Z and Y to the hat switch and the X+ and X- to the two buttons beside it? I'm using a Thrustmaster T.16000M
I think so, yes. First, create the config files (see this post above). Then set THC lines in the appropriate config file (either CSM - Thrustmaster T.16000M.cfg.launchpad or LM - Thrustmaster T.16000M.cfg.launchpad) as following:
Code:
THC Y    Axis    POV 0H    FALSE   
THC Z    Axis    POV 0V    FALSE
If you have more than one hat switch you may use POV 1H or POV 2H instead.
If you want to change the direction of a switch, then change the corresponding "FALSE" on the end of the line to "TRUE". Maybe you should do that for the Z-axis of CSM, because +Z points downwards on that vessel.
Good luck!
 
Top