From ec38c7879949b6a61ae152960cde26c80729517b Mon Sep 17 00:00:00 2001 From: Kristian Lauszus Date: Mon, 30 Dec 2013 16:48:15 +0100 Subject: [PATCH] Added support for Joytech controller in XBOXRECV and Madcatz controllers in XBOXUSB --- XBOXRECV.cpp | 2 +- XBOXUSB.cpp | 2 +- XBOXUSB.h | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/XBOXRECV.cpp b/XBOXRECV.cpp index 2db24c72..c4bf33b9 100644 --- a/XBOXRECV.cpp +++ b/XBOXRECV.cpp @@ -88,7 +88,7 @@ uint8_t XBOXRECV::ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed) { VID = udd->idVendor; PID = udd->idProduct; - if((VID != XBOX_VID && VID != MADCATZ_VID) || (PID != XBOX_WIRELESS_RECEIVER_PID && PID != XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID)) { // Check if it's a Xbox receiver using the Vendor ID and Product ID + if((VID != XBOX_VID && VID != MADCATZ_VID && VID != JOYTECH_VID) || (PID != XBOX_WIRELESS_RECEIVER_PID && PID != XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID)) { // Check if it's a Xbox receiver using the Vendor ID and Product ID #ifdef DEBUG_USB_HOST Notify(PSTR("\r\nYou'll need a wireless receiver for this libary to work"), 0x80); #endif diff --git a/XBOXUSB.cpp b/XBOXUSB.cpp index cfbb2b34..89b5f260 100644 --- a/XBOXUSB.cpp +++ b/XBOXUSB.cpp @@ -105,7 +105,7 @@ uint8_t XBOXUSB::Init(uint8_t parent, uint8_t port, bool lowspeed) { Notify(PSTR("\r\nThis library only supports Xbox 360 controllers via USB"), 0x80); #endif goto FailUnknownDevice; - } else if(PID != XBOX_WIRED_PID && PID != GAMESTOP_WIRED_PID) // Check PID + } else if(PID != XBOX_WIRED_PID && PID != MADCATZ_WIRED_PID && PID != GAMESTOP_WIRED_PID) // Check PID goto FailUnknownDevice; // Allocate new address according to device class diff --git a/XBOXUSB.h b/XBOXUSB.h index a11d55a1..4df0ad0b 100644 --- a/XBOXUSB.h +++ b/XBOXUSB.h @@ -42,6 +42,7 @@ #define XBOX_WIRELESS_PID 0x028F // Wireless controller only support charging #define XBOX_WIRELESS_RECEIVER_PID 0x0719 // Microsoft Wireless Gaming Receiver #define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID 0x0291 // Third party Wireless Gaming Receiver +#define MADCATZ_WIRED_PID 0xF016 // Mad Catz wired controller #define GAMESTOP_WIRED_PID 0x0401 // Gamestop wired controller #define XBOX_REPORT_BUFFER_SIZE 14 // Size of the input report buffer @@ -104,7 +105,7 @@ public: * @return Returns true if the device's VID and PID matches this driver. */ virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid) { - return ((vid == XBOX_VID || vid == MADCATZ_VID || vid == JOYTECH_VID || vid == GAMESTOP_VID) && (pid == XBOX_WIRED_PID || pid == GAMESTOP_WIRED_PID)); + return ((vid == XBOX_VID || vid == MADCATZ_VID || vid == JOYTECH_VID || vid == GAMESTOP_VID) && (pid == XBOX_WIRED_PID || pid == MADCATZ_WIRED_PID || pid == GAMESTOP_WIRED_PID)); }; /**@}*/