--- wjoydx.c.old Wed Jun 14 16:53:52 2006 +++ wjoydx.c Fri Oct 27 23:33:15 2006 @@ -230,6 +230,14 @@ n_axis++; } + /* lRx and lRy might not actually exist on the device, + * but num_axis should keep that in check. + */ + dinput_joystick[n_joy].axis[n_axis] = js.lRx; + n_axis++; + dinput_joystick[n_joy].axis[n_axis] = js.lRy; + n_axis++; + /* hat */ if (dinput_joystick[n_joy].caps & JOYCAPS_HASPOV) dinput_joystick[n_joy].hat = js.rgdwPOV[0]; @@ -276,6 +284,14 @@ else if (memcmp(&lpddoi->guidType, &GUID_ZAxis, sizeof(GUID)) == 0) { joy->axis_name[2] = ustrdup(uconvert_ascii(lpddoi->tszName, tmp)); joy->caps |= JOYCAPS_HASZ; + joy->num_axes++; + } + else if (memcmp(&lpddoi->guidType, &GUID_RxAxis, sizeof(GUID)) == 0) { + joy->axis_name[joy->num_axes] = ustrdup(uconvert_ascii(lpddoi->tszName, tmp)); + joy->num_axes++; + } + else if (memcmp(&lpddoi->guidType, &GUID_RyAxis, sizeof(GUID)) == 0) { + joy->axis_name[joy->num_axes] = ustrdup(uconvert_ascii(lpddoi->tszName, tmp)); joy->num_axes++; } else if (memcmp(&lpddoi->guidType, &GUID_RzAxis, sizeof(GUID)) == 0) {