
"HELP ME BUILD A DATABASE OF JOYSTICK INFORMATION, PLEASE!"


In Stormbaan Coureur, there is no joystick settings menu, or a joystick 
calibration procedure. Instead, this game relies on a database with joystick 
information. This database is just starting to grow, so I need your help on 
this. If your gamepad or joystick is not known to the database, you can only 
play with keyboard.

Each joystick devices basically has two types of features. It has buttons, 
and it has axes. The database has to know what type these buttons and axes 
are.

An axes can represent the angle of a steering wheel, the angle of a foot 
paddle, it can be part of a 2D stick, it can be an analog shoulder trigger, 
or it can even be the x or y part of a digital pad (DPAD or HAT).

A button can be a generic button, a shoulder button, or even represent a
pressed down stick.

All this information is represented with a single sequence of integers, 
like this:


const char *name0005  = "Saitek Saitek P3000 RF Game-Pad";
int desc0005[] =
{
  JOYDB_STICK_AXES, 0, 1, 2, 3,
  JOYDB_WHEEL_AXES,
  JOYDB_FOOT_PADDLE_AXES,
  JOYDB_SHIFT_PADDLE_BUTTONS,
  JOYDB_SHOULDER_AXES,
  JOYDB_SHOULDER_BUTTONS, 6, 7,
  JOYDB_GENERIC_BUTTONS, 0,1,2,3,4,5,
  JOYDB_DPAD_AXES, 4, 5,
  JOYDB_DPAD_BUTTONS,
  JOYDB_STICK_PRESS, 8, 9,
  JOYDB_END_TOKEN
};


An entry that shows the sticks, from left to right, first horizontal axis,
then the vertical axis.

An entry that shows the wheel axes.

An entry that shows the paddle axes, from left to right.

An entry that shows shift paddles.

An entry that shows the shoulder triggers with scalar values, first left,
then right.

An entry that shows the shoulder buttons with binary values, first left,
then right.

An enty that shows the generic buttons.

An entry that shows the DPAD axes, horizontal first.

An entry that shows the DPAD buttons, horizontal first.

An entry that shows the buttons that represent pressed down sticks.


You can provide me with an entry for the db (or put one in yourself, in
the file joydb.h) by doing the following:

You need to run the linux utility called 'jstest' (preferably in a very 
wide xterm).

$ jstest /dev/input/js0

You need to mark which button goes where, and which axis goes where.
Also, note down the exact name of the device reported by jstest, including the
whitespace. This goes into the joydb.h file as well.

Entries for this db (please check them first with the game) can be mailed 
to b.stolk at gmail.com

