diff --git a/headers/drivers/neogeo/NeoGeoDescriptors.h b/headers/drivers/neogeo/NeoGeoDescriptors.h index f67fa82c4..181a9bb19 100644 --- a/headers/drivers/neogeo/NeoGeoDescriptors.h +++ b/headers/drivers/neogeo/NeoGeoDescriptors.h @@ -23,11 +23,15 @@ // Button report (16 bits) #define NEOGEO_MASK_A (1U << 0) #define NEOGEO_MASK_B (1U << 1) +#define NEOGEO_MASK_R1 (1U << 2) #define NEOGEO_MASK_C (1U << 3) #define NEOGEO_MASK_D (1U << 4) +#define NEOGEO_MASK_R2 (1U << 5) +#define NEOGEO_MASK_L1 (1U << 6) +#define NEOGEO_MASK_L2 (1U << 7) +#define NEOGEO_MASK_OPTIONS (1U << 9) #define NEOGEO_MASK_SELECT (1U << 10) #define NEOGEO_MASK_START (1U << 11) - #define NEOGEO_JOYSTICK_MID 0x7f typedef struct __attribute((packed, aligned(1))) diff --git a/src/drivers/neogeo/NeoGeoDriver.cpp b/src/drivers/neogeo/NeoGeoDriver.cpp index e6fe2393f..ed7cf850e 100644 --- a/src/drivers/neogeo/NeoGeoDriver.cpp +++ b/src/drivers/neogeo/NeoGeoDriver.cpp @@ -59,6 +59,11 @@ void NeoGeoDriver::process(Gamepad * gamepad, uint8_t * outBuffer) { | (gamepad->pressedB2() ? NEOGEO_MASK_D : 0) | (gamepad->pressedS1() ? NEOGEO_MASK_SELECT : 0) | (gamepad->pressedS2() ? NEOGEO_MASK_START : 0) + | (gamepad->pressedA1() ? NEOGEO_MASK_OPTIONS : 0) + | (gamepad->pressedL1() ? NEOGEO_MASK_L1 : 0) + | (gamepad->pressedL2() ? NEOGEO_MASK_L2 : 0) + | (gamepad->pressedR1() ? NEOGEO_MASK_R1 : 0) + | (gamepad->pressedR2() ? NEOGEO_MASK_R2 : 0) ; // Wake up TinyUSB device