diff options
author | pjft | 2020-10-05 22:16:11 +0100 |
---|---|---|
committer | pjft | 2020-10-06 11:42:32 +0100 |
commit | 7c455640bf54adc32e13e76a2f8a6f84b4e972a8 (patch) | |
tree | 3c6270b396f9088a733d8cdbb29187ebd2c5cb48 /frontend/libretro.c | |
parent | 27914208797bcb529fdbe09933cd5ce2e095567a (diff) | |
download | pcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.tar.gz pcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.tar.bz2 pcsx_rearmed-7c455640bf54adc32e13e76a2f8a6f84b4e972a8.zip |
Add support for dual-guncon
Diffstat (limited to 'frontend/libretro.c')
-rw-r--r-- | frontend/libretro.c | 19 |
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) |