There is no preferred joystick. But every joystick is slightly different and you may need to do some tweaking to get all the functions to work with your particular model. Try your joystick first before making any changes to the files mentioned below.
Starry Night joystick support is configurable by editing the configuration files found in the following folders:
../Sky Data/UI Resources (Mac)/SpaceshipKeysMac.snf (for Mac)
../Sky Data/UI Resources (Win)/SpaceshipKeysWin.snf (for Windows)
To see the Sky Data on the Mac, Ctrl-click on the Starry Night Application icon and select Show Package Contents from the contextual menu that opens. Then navigate to the Contents/Resources/Sky Data folder.
Open these files through your text editor, clicking on the files directly might not work.
It works like this:
Starry Night enumerates any detectable joystick axis and assigns it an integer value. For Mac, possible axis values are within 1 and 9. On Windows, possible values are within 1and 6. Typically, the x and y axis of a joystick have enumerations of 1 and 2, respectively. Hence, the following values in the configuration file:
<SN_VALUE name="Joystick_Yaw" value="Axis-1"> (Left, Right)
<SN_VALUE name="Joystick_Pitch" value="Axis-2"> (Up, Down)
The other axis-related "Joystick” values in the configuration file seem to be less predictable. So, in anticipation that not every joystick will behave identically, Starry Night can tell you which integer values (corresponding to detected axes) it has detected.
If you have a joystick connected and Starry Night displays a green "Detected" message on the upper left corner of the sky window, you can press the backquote key “`” (usually left of the '1' key on the keyboard). This toggles the display of the enumerated axis numbers Starry Night has detected. So if the displayed digits are; "1247", that means Axis-1, Axis-2, Axis-4, and Axis-7 are valid values to use in the configuration file. So you may enter something like this:
<SN_VALUE name="Joystick_Yaw" value="Axis-1">
<SN_VALUE name="Joystick_Pitch" value="Axis-2">
<SN_VALUE name="Joystick_Roll" value="Axis-4">
<SN_VALUE name="Joystick_Throttle" value="Axis-7">
Note that this scheme allows one to assign whatever function to whatever axis they wish. In other words, you can select which controls on your joystick perform a specific function.
Now there is the "axis sense" configuration to consider. Basically, the "sense" tells Starry Night how to interpret the direction an axis is deflected. So, if you're a pilot, you\'ll probably want pushing forward on a joystick to be translated as pitching down, instead of pitching up. So let\'s say the joystick axis are now configured but the pitch needs to be reversed, the following configuration values are required:
<SN_VALUE name="Joystick_Yaw_Sense" value="Normal">
<SN_VALUE name="Joystick_Pitch_Sense" value="Reverse">
<SN_VALUE name="Joystick_Roll_Sense" value="Normal">
<SN_VALUE name="Joystick_Throttle_Sense" value="Normal">
There is also the concept of a "neutral" position. This basically means that a small portion of the initial deflection of an axis will be ignored so that subtle, involuntary movements of the joystick are not responded to. The following value controls the joystick's neutral area:
<SN_VALUE name="Joystick_Neutral_Percent" value="0.15">
This means that 15% of the total available axis deflection is ignored.
Finally, there are configuration values for sensitivity. Larger values make joystick axis deflections more pronounced.
<SN_VALUE name="Sensitivity_Yaw" value="10">
<SN_VALUE name="Sensitivity_Pitch" value="10">
<SN_VALUE name="Sensitivity_Roll" value="6">
Note that there is no sensitivity setting for throttle. We put a standard 25 Giga Watt warp drive in the spaceship.