void input_config_parse_joy_axis(config_file_t *conf, const char *prefix, const char *axis, struct retro_keybind *bind) { char tmp[64] = {0}; char key[64] = {0}; char key_label[64] = {0}; char *tmp_a = NULL; snprintf(key, sizeof(key), "%s_%s_axis", prefix, axis); snprintf(key_label, sizeof(key_label), "%s_%s_axis_label", prefix, axis); if (config_get_array(conf, key, tmp, sizeof(tmp))) { if (!strcmp(tmp, "nul")) bind->joyaxis = AXIS_NONE; else if (strlen(tmp) >= 2 && (*tmp == '+' || *tmp == '-')) { int i_axis = strtol(tmp + 1, NULL, 0); if (*tmp == '+') bind->joyaxis = AXIS_POS(i_axis); else bind->joyaxis = AXIS_NEG(i_axis); } /* Ensure that D-pad emulation doesn't screw this over. */ bind->orig_joyaxis = bind->joyaxis; } if (config_get_string(conf, key_label, &tmp_a)) strlcpy(bind->joyaxis_label, tmp_a, sizeof(bind->joyaxis_label)); }
/** * input_joypad_axis_raw: * @drv : Input device driver handle. * @port : Joystick number. * @axis : Identifier of axis. * * Checks if axis (@axis) was being pressed by user * with joystick number @port. * * Returns: true (1) if axis was pressed, otherwise * false (0). **/ int16_t input_joypad_axis_raw(const input_device_driver_t *drv, unsigned port, unsigned axis) { if (!drv) return 0; return drv->axis(port, AXIS_POS(axis)) + drv->axis(port, AXIS_NEG(axis)); }
int16_t input_joypad_axis_raw(const rarch_joypad_driver_t *driver, unsigned joypad, unsigned axis) { if (!driver) return 0; return driver->axis(joypad, AXIS_POS(axis)) + driver->axis(joypad, AXIS_NEG(axis)); }
void input_config_parse_joy_axis(void *data, const char *prefix, const char *axis, struct retro_keybind *bind) { char str[256]; char tmp[64]; char key[64]; char key_label[64]; char *tmp_a = NULL; config_file_t *conf = (config_file_t*)data; str[0] = tmp[0] = key[0] = key_label[0] = '\0'; fill_pathname_join_delim(str, prefix, axis, '_', sizeof(str)); fill_pathname_join_delim(key, str, "axis", '_', sizeof(key)); fill_pathname_join_delim(key_label, str, "axis_label", '_', sizeof(key_label)); if (config_get_array(conf, key, tmp, sizeof(tmp))) { if (string_is_equal(tmp, file_path_str(FILE_PATH_NUL))) bind->joyaxis = AXIS_NONE; else if (strlen(tmp) >= 2 && (*tmp == '+' || *tmp == '-')) { int i_axis = strtol(tmp + 1, NULL, 0); if (*tmp == '+') bind->joyaxis = AXIS_POS(i_axis); else bind->joyaxis = AXIS_NEG(i_axis); } /* Ensure that D-pad emulation doesn't screw this over. */ bind->orig_joyaxis = bind->joyaxis; } if (config_get_string(conf, key_label, &tmp_a)) { strlcpy(bind->joyaxis_label, tmp_a, sizeof(bind->joyaxis_label)); free(tmp_a); } }
void input_config_parse_joy_axis(config_file_t *conf, const char *prefix, const char *axis, struct retro_keybind *bind) { char tmp[64]; char key[64]; snprintf(key, sizeof(key), "%s_%s_axis", prefix, axis); if (config_get_array(conf, key, tmp, sizeof(tmp))) { if (strcmp(tmp, "nul") == 0) bind->joyaxis = AXIS_NONE; else if (strlen(tmp) >= 2 && (*tmp == '+' || *tmp == '-')) { int axis = strtol(tmp + 1, NULL, 0); if (*tmp == '+') bind->joyaxis = AXIS_POS(axis); else bind->joyaxis = AXIS_NEG(axis); } } }
static bool menu_input_key_bind_poll_find_trigger_pad(struct menu_bind_state *state, struct menu_bind_state *new_state, unsigned p) { unsigned a, b, h; const struct menu_bind_state_port *n = (const struct menu_bind_state_port*) &new_state->state[p]; const struct menu_bind_state_port *o = (const struct menu_bind_state_port*) &state->state[p]; for (b = 0; b < MENU_MAX_BUTTONS; b++) { bool iterate = n->buttons[b] && !o->buttons[b]; if (!iterate) continue; state->target->joykey = b; state->target->joyaxis = AXIS_NONE; return true; } /* Axes are a bit tricky ... */ for (a = 0; a < MENU_MAX_AXES; a++) { int locked_distance = abs(n->axes[a] - new_state->axis_state[p].locked_axes[a]); int rested_distance = abs(n->axes[a] - new_state->axis_state[p].rested_axes[a]); if (abs(n->axes[a]) >= 20000 && locked_distance >= 20000 && rested_distance >= 20000) { /* Take care of case where axis rests on +/- 0x7fff * (e.g. 360 controller on Linux) */ state->target->joyaxis = n->axes[a] > 0 ? AXIS_POS(a) : AXIS_NEG(a); state->target->joykey = NO_BTN; /* Lock the current axis */ new_state->axis_state[p].locked_axes[a] = n->axes[a] > 0 ? 0x7fff : -0x7fff; return true; } if (locked_distance >= 20000) /* Unlock the axis. */ new_state->axis_state[p].locked_axes[a] = 0; } for (h = 0; h < MENU_MAX_HATS; h++) { uint16_t trigged = n->hats[h] & (~o->hats[h]); uint16_t sane_trigger = 0; if (trigged & HAT_UP_MASK) sane_trigger = HAT_UP_MASK; else if (trigged & HAT_DOWN_MASK) sane_trigger = HAT_DOWN_MASK; else if (trigged & HAT_LEFT_MASK) sane_trigger = HAT_LEFT_MASK; else if (trigged & HAT_RIGHT_MASK) sane_trigger = HAT_RIGHT_MASK; if (sane_trigger) { state->target->joykey = HAT_MAP(h, sane_trigger); state->target->joyaxis = AXIS_NONE; return true; } } return false; }
static void apple_input_set_keybinds(void *data, unsigned device, unsigned port, unsigned id, unsigned keybind_action) { (void)device; #ifdef IOS if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)) { switch (device) { case DEVICE_NONE: break; case DEVICE_WIIMOTE: strlcpy(g_settings.input.device_names[port], "Wiimote + Classic", sizeof(g_settings.input.device_names[port])); g_settings.input.device[port] = device; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].joykey = 22; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].joykey = 21; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].joykey = 28; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].joykey = 26; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = 16; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = 30; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = 17; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = 31; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].joykey = 20; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].joykey = 19; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].joykey = 29; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].joykey = 25; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].joykey = 23; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].joykey = 18; g_settings.input.binds[port][RARCH_MENU_TOGGLE].joykey = 27; break; case DEVICE_SIXAXIS: strlcpy(g_settings.input.device_names[port], "SixAxis/DualShock3", sizeof(g_settings.input.device_names[port])); g_settings.input.device[port] = device; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].joykey = 0; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].joykey = 1; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].joykey = 2; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].joykey = 3; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = 4; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = 5; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = 6; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = 7; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].joykey = 8; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].joykey = 9; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].joykey = 10; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].joykey = 11; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].joykey = 12; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].joykey = 13; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].joykey = 14; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].joykey = 15; g_settings.input.binds[port][RARCH_MENU_TOGGLE].joykey = 16; break; case DEVICE_MFI: strlcpy(g_settings.input.device_names[port], "MFi Gamepad", sizeof(g_settings.input.device_names[port])); g_settings.input.device[port] = device; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].joykey = RETRO_DEVICE_ID_JOYPAD_B; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].joykey = RETRO_DEVICE_ID_JOYPAD_Y; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].joykey = RETRO_DEVICE_ID_JOYPAD_SELECT; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].joykey = RETRO_DEVICE_ID_JOYPAD_START; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = RETRO_DEVICE_ID_JOYPAD_UP; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = RETRO_DEVICE_ID_JOYPAD_DOWN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = RETRO_DEVICE_ID_JOYPAD_LEFT; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = RETRO_DEVICE_ID_JOYPAD_RIGHT; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].joykey = RETRO_DEVICE_ID_JOYPAD_A; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].joykey = RETRO_DEVICE_ID_JOYPAD_X; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].joykey = RETRO_DEVICE_ID_JOYPAD_L; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].joykey = RETRO_DEVICE_ID_JOYPAD_R; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].joykey = RETRO_DEVICE_ID_JOYPAD_L2; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].joykey = RETRO_DEVICE_ID_JOYPAD_R2; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].joykey = RETRO_DEVICE_ID_JOYPAD_L3; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].joykey = RETRO_DEVICE_ID_JOYPAD_R3; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_PLUS].def_joyaxis = AXIS_POS(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_MINUS].def_joyaxis = AXIS_NEG(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_PLUS].def_joyaxis = AXIS_NEG(1); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_MINUS].def_joyaxis = AXIS_POS(1); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_PLUS].def_joyaxis = AXIS_POS(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_MINUS].def_joyaxis = AXIS_NEG(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_PLUS].def_joyaxis = AXIS_NEG(3); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_MINUS].def_joyaxis = AXIS_POS(3); for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++) { g_settings.input.binds[port][i].joyaxis = g_settings.input.binds[port][i].def_joyaxis; } break; } } #endif if (keybind_action & (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL)) { struct platform_bind *ret = (struct platform_bind*)data; if (ret && ret->joykey == NO_BTN) strlcpy(ret->desc, "No button", sizeof(ret->desc)); else snprintf(ret->desc, sizeof(ret->desc), "Button %llu", ret->joykey); } }
static void psp_input_set_keybinds(void *data, unsigned device, unsigned port, unsigned id, unsigned keybind_action) { (void)device; uint64_t *key = &g_settings.input.binds[port][id].joykey; size_t arr_size = sizeof(platform_keys) / sizeof(platform_keys[0]); (void)device; if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BIND)) *key = g_settings.input.binds[port][id].def_joykey; if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)) { strlcpy(g_settings.input.device_names[port], "PSP", sizeof(g_settings.input.device_names[port])); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = (RETRO_DEVICE_ID_JOYPAD_B); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = (RETRO_DEVICE_ID_JOYPAD_Y); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_SELECT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = (RETRO_DEVICE_ID_JOYPAD_START); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = (RETRO_DEVICE_ID_JOYPAD_UP); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = (RETRO_DEVICE_ID_JOYPAD_DOWN); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_LEFT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_RIGHT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = (RETRO_DEVICE_ID_JOYPAD_A); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = (RETRO_DEVICE_ID_JOYPAD_X); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = (RETRO_DEVICE_ID_JOYPAD_L); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = (RETRO_DEVICE_ID_JOYPAD_R); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_PLUS].def_joyaxis = AXIS_POS(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_MINUS].def_joyaxis = AXIS_NEG(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_PLUS].def_joyaxis = AXIS_POS(1); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_MINUS].def_joyaxis = AXIS_NEG(1); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_PLUS].def_joyaxis = AXIS_POS(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_MINUS].def_joyaxis = AXIS_NEG(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_PLUS].def_joyaxis = AXIS_POS(3); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_MINUS].def_joyaxis = AXIS_NEG(3); for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++) { g_settings.input.binds[port][i].id = i; g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey; g_settings.input.binds[port][i].joyaxis = g_settings.input.binds[port][i].def_joyaxis; } } if (keybind_action & (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL)) { struct platform_bind *ret = (struct platform_bind*)data; if (ret->joykey == NO_BTN) strlcpy(ret->desc, "No button", sizeof(ret->desc)); else { for (size_t i = 0; i < arr_size; i++) { if (platform_keys[i].joykey == ret->joykey) { strlcpy(ret->desc, platform_keys[i].desc, sizeof(ret->desc)); return; } } strlcpy(ret->desc, "Unknown", sizeof(ret->desc)); } } }
static void psp_input_set_keybinds(void *data, unsigned device, unsigned port, unsigned id, unsigned keybind_action) { (void)device; uint64_t *key = &g_settings.input.binds[port][id].joykey; if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BIND)) *key = g_settings.input.binds[port][id].def_joykey; if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS)) { strlcpy(g_settings.input.device_names[port], "PSP", sizeof(g_settings.input.device_names[port])); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = (RETRO_DEVICE_ID_JOYPAD_B); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = (RETRO_DEVICE_ID_JOYPAD_Y); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_SELECT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = (RETRO_DEVICE_ID_JOYPAD_START); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = (RETRO_DEVICE_ID_JOYPAD_UP); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = (RETRO_DEVICE_ID_JOYPAD_DOWN); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_LEFT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = (RETRO_DEVICE_ID_JOYPAD_RIGHT); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = (RETRO_DEVICE_ID_JOYPAD_A); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = (RETRO_DEVICE_ID_JOYPAD_X); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = (RETRO_DEVICE_ID_JOYPAD_L); g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = (RETRO_DEVICE_ID_JOYPAD_R); g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_PLUS].def_joykey = NO_BTN; g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_MINUS].def_joykey = NO_BTN; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joyaxis = AXIS_NONE; g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_PLUS].def_joyaxis = AXIS_POS(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_X_MINUS].def_joyaxis = AXIS_NEG(0); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_PLUS].def_joyaxis = AXIS_POS(1); g_settings.input.binds[port][RARCH_ANALOG_LEFT_Y_MINUS].def_joyaxis = AXIS_NEG(1); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_PLUS].def_joyaxis = AXIS_POS(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_X_MINUS].def_joyaxis = AXIS_NEG(2); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_PLUS].def_joyaxis = AXIS_POS(3); g_settings.input.binds[port][RARCH_ANALOG_RIGHT_Y_MINUS].def_joyaxis = AXIS_NEG(3); for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++) { g_settings.input.binds[port][i].id = i; g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey; g_settings.input.binds[port][i].joyaxis = g_settings.input.binds[port][i].def_joyaxis; } } }