Reworking of joystick support :

- Joystick type now selectable
- Added emulation of standard joysticks with up to 8 buttons
- Added emulation of Microsoft Sidewinder pads
- Host->emulated joystick button & axis mapping now configurable (only on Windows atm)
- Gameport registers now take 1us to access - helps Sidewinder drivers
This commit is contained in:
SarahW 2016-06-21 22:00:31 +01:00
commit 7980438e1f
17 changed files with 543 additions and 100 deletions

View file

@ -1,2 +1,29 @@
extern device_t gameport_device;
extern device_t gameport_201_device;
typedef struct
{
char name[80];
void *(*init)();
void (*close)(void *p);
uint8_t (*read)(void *p);
void (*write)(void *p);
int (*read_axis)(void *p, int axis);
void (*a0_over)(void *p);
int axis_count, button_count;
int max_joysticks;
char axis_names[8][32];
char button_names[32][32];
} joystick_if_t;
extern int joystick_type;
char *joystick_get_name(int joystick);
int joystick_get_max_joysticks(int joystick);
int joystick_get_axis_count(int joystick);
int joystick_get_button_count(int joystick);
char *joystick_get_axis_name(int joystick, int id);
char *joystick_get_button_name(int joystick, int id);
void gameport_update_joystick_type();
#define AXIS_NOT_PRESENT -99999