Note: This is part 2 of a series. If you haven't already installed allthe required tools, go check out part 1 first.
Just need the configs? go the to TL;DR
While defining joystick buttons, you can press “SPACE” key on keyboard to skip the button (make it undefined) if you have not enough buttons or current function/button is not required. Technical info: supported directional mapping of following known analog joy/pad axises: 0/1(val: 0.255), 2/5(val: 0.255), 16/17(val: -1,0,1). Currently (if enabled in the options) it's fixed to L3 in the 'Custom Keyboard Bindings' mode. Allow mapping left and right analog stick axes (X+/X-/Y+/Y-) That would be a RetroArch addition. But ideally the axes could also be mapped to mouse movement as well as joystick axes but RetroArch doesn't know about DOS joysticks.
The keystone to our entire setup is Joystick Gremlin(JG). JG allows you to remap inputs from your devices to other inputs on your system. For example, you canconfigure it so with you press the trigger button on your left joystick, itpresses the Shift key on your keyboard. This opens an entire array ofpossibilities that we'll only begin to touch on.
In this guide, we'll be configuring a profile for a single game, Star Citizen.Also, we'll be basing this guide on two Thrustmaster T16000M joysticks andTWCS Throttle, but the concepts being discussed here apply to any game and anyinput device.
When configuring input devices, I prefer to keep the game as close to adefault configuration as possible. This means if I uninstall/reinstall, ormove between machines, I just have to have my JG profiles, and I don't have toworry about re-configuring within the game more than I have to.
This means that I also prefer to rebind physical joystick buttons toemit keyboard commands for the default key bindings rather than configurejoystick buttons within the game.
Planning it out
Before we start configuring JG and Star Citizen, it's good to come up with aplan. One of the easiest ways I've found is to use Drawings in Google Docs.
You can copy mine from here.I label the physical input with the in-game action on top, and the keyboard or joystick input onthe bottom. As you can see, most of my inputs map to keyboard commands, with only a few joystick buttons(J1, J2, J3, etc). It's also useful to have a the in-game keyboard map2handy when creating this.
Identifying Devices
First, we're going to configure the two joysticks. There is a small controllericon under the menu bar that can be black or green. This is the Activatebutton. When activated, the button will be green and will process all inputsas configured. To work on our configuration, though, we're going to deactivateJG, making sure the button is black.
In JG we have two tabs for our joysticks. The way to tell them apart is selectof the tabs, then move the left and right joysticks one at a time. When movingor pressing buttons, JG will select the physical input on the left side thatcorresponds with the input you're creating on your joystick. When you'vedetermined which joystick is which, use the Device Label field under thetabs as a reminder.
Mapping Axes
One of the more complex mappings are the axes. We'll be mapping the roll, pitchand yaw axes from our left and right joysticks onto a single vJoy device. We'llbe using this standardized frame reference1.
On your right joystick:
- Move the stick to determine the pitch (front to back) physical input(it will be Axis 2)
- Enter “Pitch” into the Action Description box
- Select Remap from the action (left) dropdown, and click Add
- In the new Remap action form, choose vJoy Device 1, Axis Y
Repeat these steps for roll (side to side) to the X axis and yaw(twist) to the Z axis
On your left joystick we'll be configuring strafe forward/back, left/right andup/down. Follow the same steps from above, except on your left joystick andmapping:
- Forward/Back -> vJoy Device 1, Axis X Rotation
- Left/Right -> vJoy Device 1, Axis Y Rotation
- Up/Down -> vJoy Device 1, Axis Z Rotation
Testing it out
To test our configuration, open the Monitor vJoy application. Ensure toactivate JG by clicking the activate button which turns it green. Nowwhen you move your left and right joysticks, you should see the correspondingaxis move in the vJoy monitor.
Inverting axes
If we loaded this up right now and tried it out in Star Citizen we'd find thatthe strafe Forward/Back and Up/Down would be reversed. Rather than fixing thisin game, we can fix it in JG by inverting the curve. To do that:
- Select the Strafe Forward/Back action
- Within the Remap action that has already been configured, selectResponsive Curve from the action dropdown and click Add
- Click the invert button in the Response Curve action form
Repeat the steps for the Strafe Up/Down input
Doubling up inputs
I want to be able to strafe in all directions from my throttle as well. To dothis I just had to bind the axes on the throttle to the same axes that I boundmy left controller to. Since the game will be configured just to use therotational axes, it doesn't matter which physical input is the one manipulatingthe virtual interface. This is how I'm able to control the same functions frommultiple devices at once.
Mapping Hats
In order to use the hats like other buttons, you need to configure them first.
- Select the Hat 1 on the right stick
- Select Hat Buttons from the containers dropdown (to the right of theactions dropdown) and click Add
You can now treat the individual directions of the hat as buttons using thefollowing instructions. Dragon age inquisition qunari helmet.
Mapping Buttons
Joystick buttons can be mapped in two different ways (for our use case). Ifwe're mapping a physical button to a vJoy button (for instance the trigger onthe right stick), this would use the remap action.
- Find the right trigger physical input but clicking Button 1 on the left,or by physically pressing the trigger button while the Right joysticktab is selected
- Select the Remap action and click Add
- Configure the Remap form to vJoy Device 1 and Button 1
If we're mapping a physical input to a keyboard command, then we use the mapto keyboard action.
- Find the Gimbal Lock button on the left joystick by physically pressingthe bottom right-most button on the right side buttong group while the Left joystick tab is selected (Button 10)
- Select the Map to Keyboard action and click Add
- Press the Record keys button in the Map to Keyboard form
- Press Left Alt + R on your keyboard and release
Continue this process for every physical button you'd like to configure. ForStar Citizen (3.4), you can use this as a goodreference. However, key bindings change frequently and I'd advise you try tofind a current version of the advanced key bindings.
At this point, you should have every physical button that you want to configureeither remap‘d to the vJoy device, or to a keyboard press. Now we'll go intoStar Citizen and do some final configurations.
Ensure that JG is in the active state. The Activate button should begreen and the Status at the bottom left of the window should beRunning and Active.
Resetting to SC defaults
First, we'll reset the Star Citizen configuration.
- Delete your USER folder (within your RSI installation folder
RSIStarCitizenLIVEUSER
) - Launch Star Citizen
Note: It is my preference to unbind the mouse from pitch/yaw which allowsyou to look around with the mouse without worrying about the ship moving. Todo this, after you've reset the controls, in Options > KEYBINDINGS > ADVANCED CONTROLS CUZTOMIZATIONmake sure you're on the Keyboard / Mouse configuration in the bottom right, then expand Flight -Movement and clear Pitch and Yaw by selecting the item with a left click, then right-clicking on the item
Now all of the keyboard mappings we've created in JG should match up to theirin-game equivalents.
Configuring Joystick Inputs
Still in the ADVANCED CONTROLS CUSTOMIZATION UI, use the right arrow in thebottom right button that currently says Keyboard / Mouse to selectJoystick / HOTAS. None of the built-in control profiles match our purpose,so we're going to completely clear the joystick configuration, and configurethe vJoy inputs that we've configured. There are also a few things that don'thave a keyboard command configured by default, so we've set them to a joystickbutton.
- Click the button on the right that says > CONTROL PROFILES
- Scroll down and choose Clear All Device Bindings
- For each Joystick listed on the left side, choose the button next to it that says None and change it to JoyStick
Now that the controls are cleared, we must assign certain bindings using the following table. Do this by clicking onthe item twice, then moving the joystick in the desired axis, or pressing the intended button. Use your joystickconfiguration map for a reference.
Note: You will get a message that things have already been bound and if that's ok. Always press yes.
Group | Action | Binding |
---|---|---|
Flight - View | Look left / right | Z-Axis |
Look up / down | Y-Axis | |
Look Behind | Button 19 | |
Flight - Movement | Pitch | Y-Axis |
Yaw | Z-Axis | |
Roll | X-Axis | |
Speed Limiter (Abs.) | Slider 1 | |
Acceleration Limiter (Abs.) | Slider 2 (Dial) | |
Strafe up / down | Z-Axis Rotation | |
Strafe left / right | Y-Axis Rotation | |
Throttle forward / back | X-Axis Rotation | |
G-force safety (Toggle) | Button 30 | |
Flight - Targeting | Aim left / right | X-Axis |
Aim up / down | Y-Axis | |
Scanning Radar Ping | Button 1 | |
Scanning Increase Radar Angle | Button 3 | |
Scanning Decrease Radar Angle | Button 2 | |
Mining | Fire Mining Laster (Toggle) | Button 1 |
Switch Mining Laser (Toggle) | Button 2 | |
Increase / Decrease Mining Laser Power | Slider 2 | |
Flight - Turrets | Aim left / right | X-Axis |
Aim up / down | Y-Axis | |
Flight - Weapons | Fire Weapon Group 1 | Button 1 |
Fire Weapon Group 2 | Button 3 | |
Acquire missile lock | Button 2 | |
Launch missile | Button 2 | |
Ground Vehicle - General | Look left / right | X-Axis |
Look up / down | Y-Axis | |
Look behind | Button 19 | |
Fire Weapon Group 1 | Button 1 | |
Fire Weapon Group 2 | Button 3 | |
Ground Vehicle - Movement | Drive Forward / Backward | Y-Axis |
Turn Left / Right | Z-Axis | |
Primary Fire | Button 1 | |
Secondary Fire | Button 3 | |
Ground Vehicle - Gunner | Primary Fire | Button 1 |
Secondary Fire | Button 3 | |
Social - General | Re-spawn | Button 1 |
Saving the Configuration for Later Use
Keyboard Joystick Mapping App
In Star Citizen, you can save your current configuration as a control profile toreload later. At the main menu:
- Choose OPTIONS, then the KEYBINDINGS tab and click ADVANCEDCONTROLS CUSTOMIZATION
- Click the button on the right that says > CONTROL PROFILES
- Click ‘Save Control Settings’
- Enter a name for your control setup, and click Save
- Copy the control settings profile from the
RSIStarCitizenLIVEUSERControlsMappings
folder.
Keyboard Joystick Mapping Download
Whenever you need to delete your USER folder, simply copy the**layout_*_exported.yml** back into the
USERControlsMappings
folder anduse the **CONTROL PROFILES** button in Star Citizen like you did to load theadvanced keyboard controls above.Advanced Axis Curves
In my configuration, I use a custome response curve for the Speed Limiter axis (Z-Axis on the Throttlemapped to Slider) so that I can have more precise control over the lower 1/8th of the limiter region. This is done thesame way we inverted the axes above, except we configure it at as Cubic Bezier Spline curve and use the controlpoints to adjust the response curve to our liking. This is very much personal preference, but you can see what I'vedone for the speed limiter as a reference. (You'll note that this is also inverted, which is the way SC requires it)
Future Thoughts
Now that we've got our base JG profiles configured and can play the game, wecan start tweaking the configuration for specific situations in the game. In afuture guide we'll cover creating custom modes for mining, a director mode and aprecision mode for dogfighting that will give us better accuracy while firing weapons.
No limits 2 free mac. Need Help? Have an issue/comment? Feel free to join my Discord: https://discord.gg/CVBMxJq