#if defined(STEM_PLATFORM_linux) GAMEPAD_DEVICE_BEGIN(0x79, 0x11) // RetroLink NES GAMEPAD_AXIS(0, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_X, 1) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x810, 0xE501) // XCSource SNES GAMEPAD_AXIS(0, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_X, 1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x20D6, 0xA710) // Mayflash Nintendo 64 controller adapter GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(1, GAMEPAD_BOTTOM_FACE_BUTTON) // A button GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) // B button GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) // L button GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_FRONT_SHOULDER) // R button GAMEPAD_BUTTON(6, GAMEPAD_LEFT_BACK_SHOULDER) // Z button GAMEPAD_BUTTON(9, GAMEPAD_CENTER_BUTTON) // Start button GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xF30, 0x10A) // RedOctane 3 in 1 conversion box GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xE8F, 0x3) // RadioShack PSXToUSB GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x6666, 0x8802) // Super Dual Box Pro PS/PS2 Controller Adapter For Windows GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_BLACKLIST_AXIS(4) // Analog on/off state GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_BUTTON(12, GAMEPAD_DPAD_UP) GAMEPAD_BUTTON(13, GAMEPAD_DPAD_RIGHT) GAMEPAD_BUTTON(14, GAMEPAD_DPAD_DOWN) GAMEPAD_BUTTON(15, GAMEPAD_DPAD_LEFT) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x45E, 0x8) // Microsoft Sidewinder Precision Pro GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_X, 1) // Stick twist GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_Y, 1) // Throttle GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_RIGHT_BACK_SHOULDER) // Trigger GAMEPAD_BUTTON(1, GAMEPAD_LEFT_STICK_BUTTON) // Left button on stick GAMEPAD_BUTTON(2, GAMEPAD_RIGHT_STICK_BUTTON) // Top right button on stick GAMEPAD_BUTTON(3, GAMEPAD_RIGHT_CENTER_BUTTON) // Bottom right button on stick GAMEPAD_BUTTON(4, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(5, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(7, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_CENTER_BUTTON) // Up arrow button in front GAMEPAD_DEVICE_END() #elif defined(STEM_PLATFORM_windows) // Use DsHidMini for DualShock 3 on Windows, in Generic DirectInput Device mode: https://vigem.org/projects/DsHidMini/ GAMEPAD_DEVICE_BEGIN(VENDOR_ID_SONY, PRODUCT_ID_DUALSHOCK3) GAMEPAD_AXIS(0, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(6, GAMEPAD_LEFT_FRONT_SHOULDER, 1) // L1 pressure GAMEPAD_AXIS(7, GAMEPAD_RIGHT_FRONT_SHOULDER, 1) // R1 pressure GAMEPAD_AXIS(8, GAMEPAD_RIGHT_BACK_SHOULDER, 1) GAMEPAD_AXIS(9, GAMEPAD_LEFT_BACK_SHOULDER, 1) // Pressure sensitivity axes show up as second device; how will I handle that!? //GAMEPAD_AXIS(0, GAMEPAD_DPAD_UP, 1) // Dpad up pressure //GAMEPAD_AXIS(1, GAMEPAD_DPAD_RIGHT, 1) // Dpad right pressure //GAMEPAD_AXIS(2, GAMEPAD_DPAD_DOWN, 1) // Dpad down pressure //GAMEPAD_AXIS(3, GAMEPAD_DPAD_LEFT, 1) // Dpad left pressure //GAMEPAD_AXIS(4, GAMEPAD_TOP_FACE_BUTTON, 1) // Triangle button pressure //GAMEPAD_AXIS(5, GAMEPAD_RIGHT_FACE_BUTTON, 1) // Circle button pressure //GAMEPAD_AXIS(6, GAMEPAD_BOTTOM_FACE_BUTTON, 1) // X button pressure //GAMEPAD_AXIS(7, GAMEPAD_LEFT_FACE_BUTTON, 1) // Square button pressure GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(5, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(6, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(12, GAMEPAD_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x79, 0x11) // RetroLink NES GAMEPAD_AXIS(0, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_X, 1) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x810, 0xE501) // XCSource SNES GAMEPAD_AXIS(0, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_X, 1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x20D6, 0xA710) // Mayflash Nintendo 64 controller adapter GAMEPAD_AXIS(0, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(5, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_BUTTON(1, GAMEPAD_BOTTOM_FACE_BUTTON) // A button GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) // B button GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) // L button GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_FRONT_SHOULDER) // R button GAMEPAD_BUTTON(6, GAMEPAD_LEFT_BACK_SHOULDER) // Z button GAMEPAD_BUTTON(9, GAMEPAD_CENTER_BUTTON) // Start button GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xF30, 0x10A) // RedOctane 3 in 1 conversion box GAMEPAD_AXIS(0, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xE8F, 0x3) // RadioShack PSXToUSB GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(6, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x6666, 0x8802) // Super Dual Box Pro PS/PS2 Controller Adapter For Windows GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_BUTTON(12, GAMEPAD_DPAD_UP) GAMEPAD_BUTTON(13, GAMEPAD_DPAD_RIGHT) GAMEPAD_BUTTON(14, GAMEPAD_DPAD_DOWN) GAMEPAD_BUTTON(15, GAMEPAD_DPAD_LEFT) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x45E, 0x8) // Microsoft Sidewinder Precision Pro GAMEPAD_AXIS(0, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_RIGHT_STICK_X, 1) // Stick twist GAMEPAD_AXIS(5, GAMEPAD_RIGHT_STICK_Y, 1) // Throttle GAMEPAD_BUTTON(0, GAMEPAD_RIGHT_BACK_SHOULDER) // Trigger GAMEPAD_BUTTON(1, GAMEPAD_LEFT_STICK_BUTTON) // Left button on stick GAMEPAD_BUTTON(2, GAMEPAD_RIGHT_STICK_BUTTON) // Top right button on stick GAMEPAD_BUTTON(3, GAMEPAD_RIGHT_CENTER_BUTTON) // Bottom right button on stick GAMEPAD_BUTTON(4, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(5, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(7, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_CENTER_BUTTON) // Up arrow button in front GAMEPAD_DEVICE_END() #elif defined(STEM_PLATFORM_macosx) GAMEPAD_DEVICE_BEGIN(0x79, 0x11) // RetroLink NES GAMEPAD_AXIS(3, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x810, 0xE501) // XCSource SNES GAMEPAD_AXIS(0, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x20D6, 0xA710) // Mayflash Nintendo 64 controller adapter GAMEPAD_AXIS(0, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(4, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(5, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_BUTTON(1, GAMEPAD_BOTTOM_FACE_BUTTON) // A button GAMEPAD_BUTTON(2, GAMEPAD_LEFT_FACE_BUTTON) // B button GAMEPAD_BUTTON(4, GAMEPAD_LEFT_FRONT_SHOULDER) // L button GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_FRONT_SHOULDER) // R button GAMEPAD_BUTTON(6, GAMEPAD_LEFT_BACK_SHOULDER) // Z button GAMEPAD_BUTTON(9, GAMEPAD_CENTER_BUTTON) // Start button GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xF30, 0x10A) // RedOctane 3 in 1 conversion box GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(4, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0xE8F, 0x3) // RadioShack PSXToUSB GAMEPAD_AXIS(0, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_AXIS(1, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(5, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(6, GAMEPAD_DPAD_Y, -1) GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x6666, 0x8802) // Super Dual Box Pro PS/PS2 Controller Adapter For Windows GAMEPAD_AXIS(0, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(1, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_RIGHT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_RIGHT_STICK_Y, -1) GAMEPAD_BLACKLIST_AXIS(4) // Analog on/off state GAMEPAD_BUTTON(0, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(1, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(2, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(3, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(4, GAMEPAD_LEFT_BACK_SHOULDER) GAMEPAD_BUTTON(5, GAMEPAD_RIGHT_BACK_SHOULDER) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FRONT_SHOULDER) GAMEPAD_BUTTON(7, GAMEPAD_RIGHT_FRONT_SHOULDER) GAMEPAD_BUTTON(8, GAMEPAD_RIGHT_CENTER_BUTTON) GAMEPAD_BUTTON(9, GAMEPAD_LEFT_CENTER_BUTTON) GAMEPAD_BUTTON(10, GAMEPAD_LEFT_STICK_BUTTON) GAMEPAD_BUTTON(11, GAMEPAD_RIGHT_STICK_BUTTON) GAMEPAD_BUTTON(12, GAMEPAD_DPAD_UP) GAMEPAD_BUTTON(13, GAMEPAD_DPAD_RIGHT) GAMEPAD_BUTTON(14, GAMEPAD_DPAD_DOWN) GAMEPAD_BUTTON(15, GAMEPAD_DPAD_LEFT) GAMEPAD_DEVICE_END() GAMEPAD_DEVICE_BEGIN(0x45E, 0x8) // Microsoft Sidewinder Precision Pro GAMEPAD_AXIS(0, GAMEPAD_DPAD_X, 1) GAMEPAD_AXIS(1, GAMEPAD_DPAD_Y, -1) GAMEPAD_AXIS(2, GAMEPAD_LEFT_STICK_X, 1) GAMEPAD_AXIS(3, GAMEPAD_LEFT_STICK_Y, -1) GAMEPAD_AXIS(4, GAMEPAD_RIGHT_STICK_X, 1) // Stick twist GAMEPAD_AXIS(5, GAMEPAD_ADDITIONAL_AXIS_1, 1) // Throttle GAMEPAD_BUTTON(0, GAMEPAD_RIGHT_BACK_SHOULDER) // Trigger GAMEPAD_BUTTON(1, GAMEPAD_LEFT_STICK_BUTTON) // Left button on stick GAMEPAD_BUTTON(2, GAMEPAD_RIGHT_STICK_BUTTON) // Top right button on stick GAMEPAD_BUTTON(3, GAMEPAD_RIGHT_CENTER_BUTTON) // Bottom right button on stick GAMEPAD_BUTTON(4, GAMEPAD_RIGHT_FACE_BUTTON) GAMEPAD_BUTTON(5, GAMEPAD_TOP_FACE_BUTTON) GAMEPAD_BUTTON(6, GAMEPAD_LEFT_FACE_BUTTON) GAMEPAD_BUTTON(7, GAMEPAD_BOTTOM_FACE_BUTTON) GAMEPAD_BUTTON(8, GAMEPAD_CENTER_BUTTON) // Up arrow button in front GAMEPAD_DEVICE_END() #endif