Jump to content

some questions regarding joysticks


Recommended Posts

hi

Im new to the forum, however I have played KSP quite alot :) 

Well I get right to the point. I have decided that Im going to buy my first joystick just for this game. But before I do that I need some questions answered. The joystick I had planned on buying is the MAD CATZ F.L.Y 5 stick the reason I chose that one is that its within a reasonable price range and that it has proper throttle control. I will only use this joystick for KSP and nothing else. 

the questions I would like to have answered is whether or not this joystick is a good choise considering it will only be used for KSP. I would also like to know if using a joystick will improve the general gaming experience? how do you set up the joystick?

and how do the throttle control work? the throttle on all crafts in KSP starts with 50% thrust on the launch pad. what happens if the thrust lever on the joystick is set for 100%. do the starting thrust then adjust to the thrust of the joystick?

how well do rockets and rovers handle with joysticks?

and I would be gratefull if you could think of anything else that would be usefull for me to know before I buy the joystick.

Link to comment
Share on other sites

KSP's controller support is provided by the Unity3D game engine, it's basic.

If you don't run into issues setting up the stick then it can really improve the game, especially when flying aircraft, and if you have a hat switch it will be great for docking.

 

However, controllers can be hard to set up, they often won't work with the joysticks own sofware as they read joystick values directly (DirectInput on Windows, RawInput on OSX/Linux).

Unity offers no means of calibration, that has to be done in the operating system, also Unity doesn't support more than 20 buttons per stick which is bad for the more complex controllers, and even for HOTAS controllers as Unity will fail to properly detect the throttle as a separate device.

Other than that you set it up in the KSP settings screen by clicking an axis and moving the stick in the desired direction, assigning triggers is easier, just click the control and press the button on the stick.

I find it helps to move the stick through the entire range of the axis, all the way from left to right, or all the way from zero to full throttle, that helps avoid the 33% throttle problem (at least for me).

There's two throttle modes, absolute and incremental, the first sets the throttle where your lever is, the second increases throttle when you move the lever above 50%, decreases when below 50%, and keeps the throttle level when the lever is half way.

All axis have deadzones and can be inverted.

 

There's a big issue that you need to be aware of, Unity doesn't enumerate controllers properly even though it displays their names, they are still "joy0", "joy1" etc so unplugging them can have odd effects.

Also, Unity only lets you assign bindings when Unity starts, so you often need to start KSP twice after unplugging a stick, the first time KSP starts it adds the detected stick tot the settings.cfg, the second time KSP starts it knows about the stick and it can tell Unity to use the bindings in the settings.cfg, it also cannot hotswap, at all, so don't try it or you have to restart (twice).

 

If all this was Squads code then the devs could fix it, unfortunately it's not and other game companies that use Unity either don't have sufficiently complex requirements for controls to have had issues, have developed their own controller code or used plugins from others to try to get around all this.

 

So my advice to you is this, borrow a joystick if you can, make sure it works before buying one of your own.

Link to comment
Share on other sites

A joystick definitely made KSP more fun for me. I cannot commend on the model you have in mind, but if you find one that works it will be awesome. Especially for docking, EVA and landing maneuvers.

Ever since I got a joystick I got heavily into landers dropships and VTOLs and I fell in love with KSP all over again. I could never go back to keyboard, just because of the throttle alone.

Link to comment
Share on other sites

Hy!

I hope I'ts all right to join this discussion but it seems perfectly valid for my task:

My Joystick IS working in Linux, IS calibrated, IS recognized in KSP-s settings but does NOT have any impact on the actual game concerning AXIS
It DOES however on buttons.

Would be thankful for any kind of help as my "career" comes to a point where analog input would be a great improvement (or even science- points.. :wink: ).

 

Her are my specs:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Spoiler

 

uname -a
Linux mylinux 4.3.3-2-ARCH #1 SMP PREEMPT Wed Dec 23 20:09:18 CET 2015 x86_64 GNU/Linux


cat buildID.txt
build id = 01028
2015-11-10_18-03-24
Branch: master


jstest /dev/input/js0
Joystick (Logitech Inc. WingMan Extreme Digital 3D) has 6 axes and 7 buttons. Driver version is 2.1.0.
Testing ... (interrupt to exit)
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off ^C


./KSP.x86_64
...
/dev/input/js0: driver version: 2.1.0 (20100)
/dev/input/js0: fd 3, buttons 7, axes 6, name Logitech Inc. WingMan Extreme Digital 3D
/dev/input/js0: axis  0: raw      0, mapped 0.000000
/dev/input/js0: axis  1: raw      0, mapped 0.000000
/dev/input/js0: axis  2: raw      0, mapped 0.000000
/dev/input/js0: axis  3: raw      0, mapped 0.000000
/dev/input/js0: axis  4: raw      0, mapped 0.000000
/dev/input/js0: axis  5: raw      0, mapped 0.000000


cat settings.cfg | egrep -i "joy|logi" -C 10
dontShowLauncher = False
TRACKIR_ENABLED = False
FEMALE_EYE_OFFSET_X = 0
FEMALE_EYE_OFFSET_Y = 0.009083331
FEMALE_EYE_OFFSET_Z = 0.03378779
FEMALE_EYE_OFFSET_SCALE = 2.03
FI_LOG_TEMP_ERROR = False
FI_LOG_OVERTEMP = False
INPUT_DEVICES
{
    Logitech Inc. WingMan Ex. = 0
}
PITCH_DOWN
{
    primary = W
    secondary = None
    group = 0
    modeMask = 5
    modeMaskSec = -1
}
PITCH_UP
--
{
    primary = T
    secondary = None
    group = 0
    modeMask = -1
    modeMaskSec = -1
}
LAUNCH_STAGES
{
    primary = Space
    secondary = Joystick1Button0
    group = 0
    modeMask = 1
    modeMaskSec = 7
}
Docking_toggleRotLin
{
    primary = Space
    secondary = Joystick1Button6
    group = 0
    modeMask = 6
    modeMaskSec = 7
}
CAMERA_MODE
{
    primary = C
    secondary = None
    group = 0
    modeMask = -1
--
{
    primary = F9
    secondary = None
    group = 0
    modeMask = -1
    modeMaskSec = -1
}
THROTTLE_CUTOFF
{
    primary = X
    secondary = Joystick1Button2
    group = 0
    modeMask = -1
    modeMaskSec = 7
}
THROTTLE_FULL
{
    primary = Z
    secondary = Joystick1Button1
    group = 0
    modeMask = -1
    modeMaskSec = 7
}
LANDING_GEAR
{
    primary = G
    secondary = None
    group = 0
    modeMask = -1
--
    primary = LeftShift
    secondary = None
    group = 0
    modeMask = -1
    modeMaskSec = -1
}
AXIS_PITCH
{
    PRIMARY
    {
        name = Logitech Inc. WingMan Ex.
        axis = 0
        inv = False
        sensitivity = 1
        deadzone = 5
        scale = 1
        group = 0
        modeMask = 7
    }
    SECONDARY
    {
--
        deadzone = 5
        scale = 1
        group = 0
        modeMask = -1
    }
}
AXIS_ROLL
{
    PRIMARY
    {
        name = Logitech Inc. WingMan Ex.
        axis = 2
        inv = False
        sensitivity = 1
        deadzone = 5
        scale = 1
        group = 0
        modeMask = 7
    }
    SECONDARY
    {
--
        deadzone = 5
        scale = 1
        group = 0
        modeMask = -1
    }
}
AXIS_YAW
{
    PRIMARY
    {
        name = Logitech Inc. WingMan Ex.
        axis = 1
        inv = False
        sensitivity = 1
        deadzone = 5
        scale = 1
        group = 0
        modeMask = 7
    }
    SECONDARY
    {
--
        deadzone = 5
        scale = 1
        group = 0
        modeMask = -1
    }
}
AXIS_THROTTLE_INC
{
    PRIMARY
    {
        name = Logitech Inc. WingMan Ex.
        axis = 3
        inv = False
        sensitivity = 1
        deadzone = 5
        scale = 1
        group = 0
        modeMask = 7
    }
    SECONDARY
    {
--
        deadzone = 5
        scale = 1
        group = 0
        modeMask = -1
    }
}
AXIS_WHEEL_STEER
{
    PRIMARY
    {
        name = Logitech Inc. WingMan Ex.
        axis = 0
        inv = False
        sensitivity = 1
        deadzone = 5
        scale = 1
        group = 0
        modeMask = 7
    }
    SECONDARY
    {

 

 

Link to comment
Share on other sites

  • 4 months later...

Hi @sal_vager - I use the above mentioned joystick in other games, so I know it works.  Put there is no response in KSP for the pitch, yaw, etc.  Some were saying that Unity/KSP uses something else and that it doesn't support DirectX?  I was looking for a process that might get me started down the path here.

again thanks.

Link to comment
Share on other sites

Yeah Unity uses Xinput on Windows instead of DirectInput, and it uses rawinput on OS X and Linux.

There's a few things to check for, first, Unity will only detect controllers when Unity starts so make sure the stick is plugged in before you start KSP.

Second, after KSP starts you can check if the stick was detected by opening the settings.cfg, it will need to be in Input Devices, like this.

Quote

INPUT_DEVICES
{
    Logitech Logitech Dual Action = 1
    GreenAsia Inc.      USB  Joystick   = 0
}

If it's not there then Unity cannot see the stick at all, I have this problem with a set of CH pedals, it's like they don't exist.

Third, Unity doesn't do any calibration so make sure the stick is calibrated in your OS.

Hope this helps :)

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...