diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c index 88b33b089..067412227 100644 --- a/src/joystick/linux/SDL_sysjoystick.c +++ b/src/joystick/linux/SDL_sysjoystick.c @@ -88,7 +88,21 @@ static struct joystick_logical_values { {0,0},{0,1},{0,2},{0,3},{0,4},{0,5},{0,6},{0,7},{0,8},{0,9},{0,10},{0,11}, {1,0},{1,1},{1,2},{1,3},{1,4},{1,5},{1,6},{1,7},{1,8},{1,9},{1,10},{1,11}, {2,0},{2,1},{2,2},{2,3},{2,4},{2,5},{2,6},{2,7},{2,8},{2,9},{2,10},{2,11}, - {3,0},{3,1},{3,2},{3,3},{3,4},{3,5},{3,6},{3,7},{3,8},{3,9},{3,10},{3,11} + {3,0},{3,1},{3,2},{3,3},{3,4},{3,5},{3,6},{3,7},{3,8},{3,9},{3,10},{3,11}, + +/* +71 */ + /* MP-8866 axes map - map to {logical joystick #, logical axis#} */ + {0,0},{0,1},{0,2},{0,3}, + {1,0},{1,1},{1,2},{1,3}, + +/* +79 */ + /* MP-8866 hat map - map to {logical joystick #, logical hat #} */ + {0,0},{1,0}, + +/* +81 */ + /* MP-8866 button map - map to {logical joystick #, logical button #} */ + {0,0},{0,1},{0,2},{0,3},{0,4},{0,5},{0,6},{0,7},{0,8},{0,9},{0,10},{0,11}, + {1,0},{1,1},{1,2},{1,3},{1,4},{1,5},{1,6},{1,7},{1,8},{1,9},{1,10},{1,11} }; static struct joystick_logical_layout { @@ -97,13 +111,19 @@ static struct joystick_logical_layout { int nballs; int nbuttons; } joystick_logical_layout[] = { +/* +0 */ /* MP-8800 logical layout */ {5, 1, 0, 12}, {5, 1, 0, 12}, {5, 1, 0, 12}, - {4, 1, 0, 12} + {4, 1, 0, 12}, +/* +4 */ + /* MP-8866 logical layout */ + {4, 1, 0, 12}, + {4, 1, 0, 12} }; + /* Some USB HIDs show up as a single joystick even though they actually control 2 or more joysticks. This array sets up a means of mapping @@ -130,7 +150,12 @@ static struct joystick_logicalmap { } joystick_logicalmap[] = { {"WiseGroup.,Ltd MP-8800 Quad USB Joypad", 4, joystick_logical_layout, joystick_logical_values, joystick_logical_values+19, NULL, - joystick_logical_values+23} + joystick_logical_values+23}, + /* WiseGroup MP-8866 Dual USB Joypad */ + {"0925:8866", 2, joystick_logical_layout+4, + joystick_logical_values+71, joystick_logical_values+79, NULL, + joystick_logical_values+81} + }; /* find the head of a linked list, given a point in it