aboutsummaryrefslogtreecommitdiff
path: root/frontend/libretro.c
diff options
context:
space:
mode:
authorphaseIV2015-11-17 10:27:27 +0100
committerphaseIV2015-11-17 10:27:27 +0100
commitb1c2fa8ffcf66a37aa7e5bf2704689018c2fb533 (patch)
tree0254e74bde9c7ed80089ce9edbd2bf59a2123dbc /frontend/libretro.c
parente8d96071f1a0b34b58647372b9d9976c5e397aba (diff)
downloadpcsx_rearmed-b1c2fa8ffcf66a37aa7e5bf2704689018c2fb533.tar.gz
pcsx_rearmed-b1c2fa8ffcf66a37aa7e5bf2704689018c2fb533.tar.bz2
pcsx_rearmed-b1c2fa8ffcf66a37aa7e5bf2704689018c2fb533.zip
fix for buttons I and II values
Diffstat (limited to 'frontend/libretro.c')
-rw-r--r--frontend/libretro.c48
1 files changed, 36 insertions, 12 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 9bada99..e73135b 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -1257,30 +1257,54 @@ void retro_run(void)
if (in_type1 == PSE_PAD_TYPE_NEGCON)
{
- in_a1[0] = 0;
-
- if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 12)) // left brake
+ /* left brake */
+ if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 12))
in_a1[1] = 255;
else
in_a1[1] = 0;
-
- in_a2[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128; //steer
- in_a2[1] = 255 - ((input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128); //thrust
+ /* steer */
+ in_a2[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128;
+
+ /* thrust and fire */
+ val = ((input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 127));
+ if(val < -2) {
+ in_a1[0] = 256 - val;
+ }
+ if (val > 2) {
+ in_a2[1] = val;
+ }
+ if(val >= -2 && val <= 2)
+ {
+ in_a2[1] = 0;
+ in_a1[0] = 0;
+ }
}
if (in_type2 == PSE_PAD_TYPE_NEGCON)
{
- in_a3[0] = 0;
-
- if(input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, 12)) // left brake
+ /* left brake */
+ if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 12))
in_a3[1] = 255;
else
in_a3[1] = 0;
-
- in_a4[0] = (input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128; //steer
- in_a4[1] = 255 - ((input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128); //thrust
+ /* steer */
+ in_a4[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128;
+
+ /* thrust and fire */
+ val = ((input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 127));
+ if(val < -2) {
+ in_a3[0] = 256 - val;
+ }
+ if (val > 2) {
+ in_a4[1] = val;
+ }
+ if(val >= -2 && val <= 2)
+ {
+ in_a4[1] = 0;
+ in_a3[0] = 0;
+ }
}