X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=aaeb624200a39106d74191235e119e125599a74d;hb=0c840ff34defe22147f497c33e0ebad9386fada6;hp=9bada99b851870722a80bfdeae3d4a135f193c23;hpb=e8d96071f1a0b34b58647372b9d9976c5e397aba;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 9bada99b..aaeb6242 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1220,7 +1220,7 @@ static void update_variables(bool in_flight) void retro_run(void) { - int i; + int i, val; input_poll_cb(); @@ -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(1, 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(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128; + + /* thrust and fire */ + val = ((input_state_cb(1, 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; + } }