aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpjft2020-10-05 22:16:11 +0100
committerpjft2020-10-06 11:42:32 +0100
commit7c455640bf54adc32e13e76a2f8a6f84b4e972a8 (patch)
tree3c6270b396f9088a733d8cdbb29187ebd2c5cb48
parent27914208797bcb529fdbe09933cd5ce2e095567a (diff)
downloadpcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.tar.gz
pcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.tar.bz2
pcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.zip
Add support for dual-guncon
-rw-r--r--frontend/libretro.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 699cbce..b473436 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -2270,40 +2270,35 @@ static void update_input_guncon(int port, int ret)
//RETRO_DEVICE_ID_LIGHTGUN_AUX_B
//Though not sure these are hooked up properly on the Pi
- //ToDo
- //Put the controller index back to port instead of hardcoding to 1 when the libretro overlay crash bug is fixed
- //This is required for 2 player
-
//GUNCON has 3 controls, Trigger,A,B which equal Circle,Start,Cross
// Trigger
//The 1 is hardcoded instead of port to prevent the overlay mouse button libretro crash bug
- if (input_state_cb(1, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT))
+ if (input_state_cb(port, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT))
{
in_keystate[port] |= (1 << DKEY_CIRCLE);
}
// A
- if (input_state_cb(1, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT))
+ if (input_state_cb(port, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT))
{
in_keystate[port] |= (1 << DKEY_START);
}
// B
- if (input_state_cb(1, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_MIDDLE))
+ if (input_state_cb(port, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_MIDDLE))
{
in_keystate[port] |= (1 << DKEY_CROSS);
}
- //The 1 is hardcoded instead of port to prevent the overlay mouse button libretro crash bug
- int gunx = input_state_cb(1, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_X);
- int guny = input_state_cb(1, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_Y);
+ int gunx = input_state_cb(port, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_X);
+ int guny = input_state_cb(port, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_Y);
//Mouse range is -32767 -> 32767
//1% is about 655
//Use the left analog stick field to store the absolute coordinates
- in_analog_left[0][0] = (gunx * GunconAdjustRatioX) + (GunconAdjustX * 655);
- in_analog_left[0][1] = (guny * GunconAdjustRatioY) + (GunconAdjustY * 655);
+ in_analog_left[port][0] = (gunx * GunconAdjustRatioX) + (GunconAdjustX * 655);
+ in_analog_left[port][1] = (guny * GunconAdjustRatioY) + (GunconAdjustY * 655);
}
static void update_input_negcon(int port, int ret)