From f453ee7954a54c0db904925db87ffd2bd6627fd2 Mon Sep 17 00:00:00 2001 From: TwinAphex51224 Date: Mon, 5 Mar 2012 16:57:43 +0100 Subject: [PATCH] (PS3) Input LUTs --- Makefile.ps3 | 1 + input/input_luts.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++ input/input_luts.h | 76 +++++++++++++++++++++++++++++++++++++ ps3/main.c | 55 ++++++++++----------------- ps3/menu.c | 63 ++++++++----------------------- ps3/ps3_input.c | 32 ++++++++-------- 6 files changed, 221 insertions(+), 99 deletions(-) create mode 100644 input/input_luts.c create mode 100644 input/input_luts.h diff --git a/Makefile.ps3 b/Makefile.ps3 index 60f5954b04..5d9a2f4270 100644 --- a/Makefile.ps3 +++ b/Makefile.ps3 @@ -46,6 +46,7 @@ PPU_SRCS = fifo_buffer.c \ console/librsound/librsound.c \ console/szlib/szlib.c \ ps3/ps3_input.c \ + input/input_luts.c \ ps3/cellframework2/input/pad_input.c \ ps3/cellframework2/utility/oskutil.c \ getopt.c \ diff --git a/input/input_luts.c b/input/input_luts.c new file mode 100644 index 0000000000..d97b076a13 --- /dev/null +++ b/input/input_luts.c @@ -0,0 +1,93 @@ +/* SSNES - A Super Nintendo Entertainment System (SNES) Emulator frontend for libsnes. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * Some code herein may be based on code found in BSNES. + * + * SSNES is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * SSNES is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with SSNES. + * If not, see . + */ + +#include "input_luts.h" + +uint64_t default_keybind_lut[SSNES_FIRST_META_KEY] = +{ + SNES_DEVICE_ID_JOYPAD_B, + SNES_DEVICE_ID_JOYPAD_Y, + SNES_DEVICE_ID_JOYPAD_SELECT, + SNES_DEVICE_ID_JOYPAD_START, + SNES_DEVICE_ID_JOYPAD_UP, + SNES_DEVICE_ID_JOYPAD_DOWN, + SNES_DEVICE_ID_JOYPAD_LEFT, + SNES_DEVICE_ID_JOYPAD_RIGHT, + SNES_DEVICE_ID_JOYPAD_A, + SNES_DEVICE_ID_JOYPAD_X, + SNES_DEVICE_ID_JOYPAD_L, + SNES_DEVICE_ID_JOYPAD_R +}; + +const char * default_libsnes_keybind_name_lut[SSNES_FIRST_META_KEY] = +{ + "Button B", //SNES_DEVICE_ID_JOYPAD_B + "Button Y", //SNES_DEVICE_ID_JOYPAD_Y + "Select button", //SNES_DEVICE_ID_JOYPAD_SELECT + "Start button", //SNES_DEVICE_ID_JOYPAD_START + "D-Pad Up", //SNES_DEVICE_ID_JOYPAD_UP + "D-Pad Down", //SNES_DEVICE_ID_JOYPAD_DOWN + "D-Pad Left", //SNES_DEVICE_ID_JOYPAD_LEFT + "D-Pad Right", //SNES_DEVICE_ID_JOYPAD_RIGHT + "Button A", //SNES_DEVICE_ID_JOYPAD_A + "Button X", //SNES_DEVICE_ID_JOYPAD_X + "L Button", //SNES_DEVICE_ID_JOYPAD_L + "R Button" //SNES_DEVICE_ID_JOYPAD_R +}; + +#ifdef SSNES_CONSOLE +#if defined(__CELLOS_LV2__) +uint64_t platform_keybind_lut[SSNES_LAST_PLATFORM_KEY+1] = +{ + CTRL_CIRCLE_MASK, + CTRL_CROSS_MASK, + CTRL_TRIANGLE_MASK, + CTRL_SQUARE_MASK, + CTRL_UP_MASK, + CTRL_DOWN_MASK, + CTRL_LEFT_MASK, + CTRL_RIGHT_MASK, + CTRL_SELECT_MASK, + CTRL_START_MASK, + CTRL_L1_MASK, + CTRL_L2_MASK, + CTRL_L3_MASK, + CTRL_R1_MASK, + CTRL_R2_MASK, + CTRL_R3_MASK, + CTRL_LSTICK_LEFT_MASK, + CTRL_LSTICK_RIGHT_MASK, + CTRL_LSTICK_UP_MASK, + CTRL_LSTICK_DOWN_MASK, + CTRL_LEFT_MASK | CTRL_LSTICK_LEFT_MASK, + CTRL_RIGHT_MASK | CTRL_LSTICK_RIGHT_MASK, + CTRL_UP_MASK | CTRL_LSTICK_UP_MASK, + CTRL_DOWN_MASK | CTRL_LSTICK_DOWN_MASK, + CTRL_RSTICK_LEFT_MASK, + CTRL_RSTICK_RIGHT_MASK, + CTRL_RSTICK_UP_MASK, + CTRL_RSTICK_DOWN_MASK, + CTRL_LEFT_MASK | CTRL_RSTICK_LEFT_MASK, + CTRL_RIGHT_MASK | CTRL_RSTICK_RIGHT_MASK, + CTRL_UP_MASK | CTRL_RSTICK_UP_MASK, + CTRL_DOWN_MASK | CTRL_RSTICK_DOWN_MASK, +}; +#elif defined(_XBOX) + +#endif +#endif diff --git a/input/input_luts.h b/input/input_luts.h new file mode 100644 index 0000000000..bb470373e7 --- /dev/null +++ b/input/input_luts.h @@ -0,0 +1,76 @@ +/* SSNES - A Super Nintendo Entertainment System (SNES) Emulator frontend for libsnes. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * Some code herein may be based on code found in BSNES. + * + * SSNES is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * SSNES is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with SSNES. + * If not, see . + */ + +#ifndef _SSNES_INPUT_LUTS_H +#define _SSNES_INPUT_LUTS_H + +#include "../driver.h" +#include "../libsnes.hpp" + +#ifdef SSNES_CONSOLE +#if defined(__CELLOS_LV2__) +#include "../ps3/cellframework2/input/pad_input.h" + +enum +{ + PS3_DEVICE_ID_JOYPAD_CIRCLE, + PS3_DEVICE_ID_JOYPAD_CROSS, + PS3_DEVICE_ID_JOYPAD_TRIANGLE, + PS3_DEVICE_ID_JOYPAD_SQUARE, + PS3_DEVICE_ID_JOYPAD_UP, + PS3_DEVICE_ID_JOYPAD_DOWN, + PS3_DEVICE_ID_JOYPAD_LEFT, + PS3_DEVICE_ID_JOYPAD_RIGHT, + PS3_DEVICE_ID_JOYPAD_SELECT, + PS3_DEVICE_ID_JOYPAD_START, + PS3_DEVICE_ID_JOYPAD_L1, + PS3_DEVICE_ID_JOYPAD_L2, + PS3_DEVICE_ID_JOYPAD_L3, + PS3_DEVICE_ID_JOYPAD_R1, + PS3_DEVICE_ID_JOYPAD_R2, + PS3_DEVICE_ID_JOYPAD_R3, + PS3_DEVICE_ID_LSTICK_LEFT, + PS3_DEVICE_ID_LSTICK_RIGHT, + PS3_DEVICE_ID_LSTICK_UP, + PS3_DEVICE_ID_LSTICK_DOWN, + PS3_DEVICE_ID_LSTICK_LEFT_DPAD, + PS3_DEVICE_ID_LSTICK_RIGHT_DPAD, + PS3_DEVICE_ID_LSTICK_UP_DPAD, + PS3_DEVICE_ID_LSTICK_DOWN_DPAD, + PS3_DEVICE_ID_RSTICK_LEFT, + PS3_DEVICE_ID_RSTICK_RIGHT, + PS3_DEVICE_ID_RSTICK_UP, + PS3_DEVICE_ID_RSTICK_DOWN, + PS3_DEVICE_ID_RSTICK_LEFT_DPAD, + PS3_DEVICE_ID_RSTICK_RIGHT_DPAD, + PS3_DEVICE_ID_RSTICK_UP_DPAD, + PS3_DEVICE_ID_RSTICK_DOWN_DPAD +}; + +#define SSNES_LAST_PLATFORM_KEY (PS3_DEVICE_ID_RSTICK_DOWN_DPAD+1) + +#elif defined(_XBOX) +#endif + +uint64_t platform_keybind_lut[SSNES_LAST_PLATFORM_KEY+1]; +#endif + +extern uint64_t default_keybind_lut[SSNES_FIRST_META_KEY]; +extern const char * default_libsnes_keybind_name_lut[SSNES_FIRST_META_KEY]; + +#endif diff --git a/ps3/main.c b/ps3/main.c index 7cb7503450..8a9beee068 100644 --- a/ps3/main.c +++ b/ps3/main.c @@ -46,6 +46,7 @@ #include "../console/main_wrap.h" #include "../conf/config_file.h" #include "../conf/config_file_macros.h" +#include "../input/input_luts.h" #include "../general.h" #include "../file.h" @@ -100,45 +101,27 @@ static void set_default_settings(void) g_settings.video.msg_pos_x = 0.05f; g_settings.video.msg_pos_y = 0.90f; g_settings.video.aspect_ratio = -1.0f; + + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_B] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_CROSS]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_Y] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_SQUARE]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_SELECT] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_SELECT]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_START] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_START]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_UP] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_UP]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_DOWN] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_DOWN]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_LEFT] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_LEFT]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_RIGHT] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_RIGHT]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_A] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_CIRCLE]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_X] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_TRIANGLE]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_L] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_L1]; + default_keybind_lut[SNES_DEVICE_ID_JOYPAD_R] = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_R1]; for(uint32_t x = 0; x < MAX_PLAYERS; x++) { - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_B].id = SNES_DEVICE_ID_JOYPAD_B; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_B].joykey = CTRL_CROSS_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_Y].id = SNES_DEVICE_ID_JOYPAD_Y; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_Y].joykey = CTRL_SQUARE_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_SELECT].id = SNES_DEVICE_ID_JOYPAD_SELECT; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_SELECT].joykey = CTRL_SELECT_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_START].id = SNES_DEVICE_ID_JOYPAD_START; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_START].joykey = CTRL_START_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_UP].id = SNES_DEVICE_ID_JOYPAD_UP; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_UP].joykey = CTRL_UP_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_DOWN].id = SNES_DEVICE_ID_JOYPAD_DOWN; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = CTRL_DOWN_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_LEFT].id = SNES_DEVICE_ID_JOYPAD_LEFT; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = CTRL_LEFT_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_RIGHT].id = SNES_DEVICE_ID_JOYPAD_RIGHT; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = CTRL_RIGHT_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_A].id = SNES_DEVICE_ID_JOYPAD_A; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_A].joykey = CTRL_CIRCLE_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_X].id = SNES_DEVICE_ID_JOYPAD_X; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_X].joykey = CTRL_TRIANGLE_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_L].id = SNES_DEVICE_ID_JOYPAD_L; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_L].joykey = CTRL_L1_MASK; - - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_R].id = SNES_DEVICE_ID_JOYPAD_R; - g_settings.input.binds[x][SNES_DEVICE_ID_JOYPAD_R].joykey = CTRL_R1_MASK; - + for(uint32_t y = 0; y < SSNES_FIRST_META_KEY; y++) + { + g_settings.input.binds[x][y].id = y; + g_settings.input.binds[x][y].joykey = default_keybind_lut[y]; + } g_settings.input.dpad_emulation[x] = DPAD_EMULATION_LSTICK; } diff --git a/ps3/menu.c b/ps3/menu.c index 09850ffacc..dfedb45990 100644 --- a/ps3/menu.c +++ b/ps3/menu.c @@ -28,6 +28,7 @@ #include "cellframework2/input/pad_input.h" #include "cellframework2/fileio/file_browser.h" +#include "../input/input_luts.h" #include "../console/rom_ext.h" #include "ps3_video_psgl.h" @@ -376,37 +377,7 @@ static void browser_render(filebrowser_t * b) cellDbgFontDraw(); } -static uint32_t default_keybind_lut[] = -{ - CTRL_CROSS_MASK, //SNES_DEVICE_ID_JOYPAD_B - CTRL_SQUARE_MASK, //SNES_DEVICE_ID_JOYPAD_Y - CTRL_SELECT_MASK, //SNES_DEVICE_ID_JOYPAD_SELECT - CTRL_START_MASK, //SNES_DEVICE_ID_JOYPAD_START - CTRL_UP_MASK, //SNES_DEVICE_ID_JOYPAD_UP - CTRL_DOWN_MASK, //SNES_DEVICE_ID_JOYPAD_DOWN - CTRL_LEFT_MASK, //SNES_DEVICE_ID_JOYPAD_LEFT - CTRL_RIGHT_MASK, //SNES_DEVICE_ID_JOYPAD_RIGHT - CTRL_CIRCLE_MASK, //SNES_DEVICE_ID_JOYPAD_A - CTRL_TRIANGLE_MASK, //SNES_DEVICE_ID_JOYPAD_X - CTRL_L1_MASK, //SNES_DEVICE_ID_JOYPAD_L - CTRL_R1_MASK //SNES_DEVICE_ID_JOYPAD_R -}; -static const char * default_keybind_name_lut[] = -{ - "Button B", //SNES_DEVICE_ID_JOYPAD_B - "Button Y", //SNES_DEVICE_ID_JOYPAD_Y - "Select button", //SNES_DEVICE_ID_JOYPAD_SELECT - "Start button", //SNES_DEVICE_ID_JOYPAD_START - "D-Pad Up", //SNES_DEVICE_ID_JOYPAD_UP - "D-Pad Down", //SNES_DEVICE_ID_JOYPAD_DOWN - "D-Pad Left", //SNES_DEVICE_ID_JOYPAD_LEFT - "D-Pad Right", //SNES_DEVICE_ID_JOYPAD_RIGHT - "Button A", //SNES_DEVICE_ID_JOYPAD_A - "Button X", //SNES_DEVICE_ID_JOYPAD_X - "L Button", //SNES_DEVICE_ID_JOYPAD_L - "R Button" //SNES_DEVICE_ID_JOYPAD_R -}; static void set_setting_label(menu * menu_obj, uint64_t currentsetting) { @@ -771,8 +742,8 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) menu_obj->items[currentsetting].text_color = GREEN; else menu_obj->items[currentsetting].text_color = ORANGE; - snprintf(menu_obj->items[currentsetting].comment, sizeof(menu_obj->items[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", menu_obj->items[currentsetting].text, default_keybind_name_lut[g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].id]); - snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), default_keybind_name_lut[g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].id]); + snprintf(menu_obj->items[currentsetting].comment, sizeof(menu_obj->items[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", menu_obj->items[currentsetting].text, default_libsnes_keybind_name_lut[g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].id]); + snprintf(menu_obj->items[currentsetting].setting_text, sizeof(menu_obj->items[currentsetting].setting_text), default_libsnes_keybind_name_lut[g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].id]); break; case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: if(menu_obj->selected == currentsetting) @@ -1095,9 +1066,7 @@ static void select_directory(uint32_t menu_id) old_state = state; } - - -static void set_keybind_digital(uint64_t state, uint32_t system_joypad_id, uint32_t default_snes_joypad_id) +static void set_keybind_digital(uint64_t state, uint64_t system_joypad_id, uint64_t default_snes_joypad_id) { if(CTRL_LEFT(state) | CTRL_LSTICK_LEFT(state)) { @@ -1800,40 +1769,40 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) currently_selected_controller_menu = 0; break; case SETTING_CONTROLS_DPAD_UP: - set_keybind_digital(state, CTRL_UP_MASK, SNES_DEVICE_ID_JOYPAD_UP); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_UP], SNES_DEVICE_ID_JOYPAD_UP); break; case SETTING_CONTROLS_DPAD_DOWN: - set_keybind_digital(state, CTRL_DOWN_MASK, SNES_DEVICE_ID_JOYPAD_DOWN); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_DOWN], SNES_DEVICE_ID_JOYPAD_DOWN); break; case SETTING_CONTROLS_DPAD_LEFT: - set_keybind_digital(state, CTRL_LEFT_MASK, SNES_DEVICE_ID_JOYPAD_LEFT); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_LEFT], SNES_DEVICE_ID_JOYPAD_LEFT); break; case SETTING_CONTROLS_DPAD_RIGHT: - set_keybind_digital(state, CTRL_RIGHT_MASK, SNES_DEVICE_ID_JOYPAD_RIGHT); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_RIGHT], SNES_DEVICE_ID_JOYPAD_RIGHT); break; case SETTING_CONTROLS_BUTTON_CIRCLE: - set_keybind_digital(state, CTRL_CIRCLE_MASK, SNES_DEVICE_ID_JOYPAD_A); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_CIRCLE], SNES_DEVICE_ID_JOYPAD_A); break; case SETTING_CONTROLS_BUTTON_CROSS: - set_keybind_digital(state, CTRL_CROSS_MASK, SNES_DEVICE_ID_JOYPAD_B); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_CROSS], SNES_DEVICE_ID_JOYPAD_B); break; case SETTING_CONTROLS_BUTTON_TRIANGLE: - set_keybind_digital(state, CTRL_TRIANGLE_MASK, SNES_DEVICE_ID_JOYPAD_X); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_TRIANGLE], SNES_DEVICE_ID_JOYPAD_X); break; case SETTING_CONTROLS_BUTTON_SQUARE: - set_keybind_digital(state, CTRL_SQUARE_MASK, SNES_DEVICE_ID_JOYPAD_Y); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_SQUARE], SNES_DEVICE_ID_JOYPAD_Y); break; case SETTING_CONTROLS_BUTTON_SELECT: - set_keybind_digital(state, CTRL_SELECT_MASK, SNES_DEVICE_ID_JOYPAD_SELECT); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_SELECT], SNES_DEVICE_ID_JOYPAD_SELECT); break; case SETTING_CONTROLS_BUTTON_START: - set_keybind_digital(state, CTRL_START_MASK, SNES_DEVICE_ID_JOYPAD_START); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_START], SNES_DEVICE_ID_JOYPAD_START); break; case SETTING_CONTROLS_BUTTON_L1: - set_keybind_digital(state, CTRL_L1_MASK, SNES_DEVICE_ID_JOYPAD_L); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_L1], SNES_DEVICE_ID_JOYPAD_L); break; case SETTING_CONTROLS_BUTTON_R1: - set_keybind_digital(state, CTRL_R1_MASK, SNES_DEVICE_ID_JOYPAD_R); + set_keybind_digital(state, platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_R1], SNES_DEVICE_ID_JOYPAD_R); break; case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: if(CTRL_LEFT(state) || CTRL_LSTICK_LEFT(state) || CTRL_RIGHT(state) || CTRL_LSTICK_RIGHT(state) || CTRL_CROSS(state) || CTRL_START(state)) diff --git a/ps3/ps3_input.c b/ps3/ps3_input.c index a3a6ed2c91..161945321d 100644 --- a/ps3/ps3_input.c +++ b/ps3/ps3_input.c @@ -16,16 +16,16 @@ * If not, see . */ -#include "../driver.h" +#include +#include #include "ps3_input.h" #include "ps3_video_psgl.h" -#include +#include "../driver.h" +#include "../input/input_luts.h" #include "../libsnes.hpp" #include "../general.h" #include "shared.h" -#include - static uint64_t state[MAX_PADS]; static void ps3_input_poll(void *data) { @@ -87,22 +87,22 @@ void ps3_input_map_dpad_to_stick(uint32_t map_dpad_enum, uint32_t controller_id) switch(map_dpad_enum) { case DPAD_EMULATION_NONE: - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = CTRL_UP_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = CTRL_DOWN_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = CTRL_LEFT_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = CTRL_RIGHT_MASK; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_UP]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_DOWN]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_LEFT]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keybind_lut[PS3_DEVICE_ID_JOYPAD_RIGHT]; break; case DPAD_EMULATION_LSTICK: - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = CTRL_UP_MASK | CTRL_LSTICK_UP_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = CTRL_DOWN_MASK | CTRL_LSTICK_DOWN_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = CTRL_LEFT_MASK | CTRL_LSTICK_LEFT_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = CTRL_RIGHT_MASK | CTRL_LSTICK_RIGHT_MASK; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = platform_keybind_lut[PS3_DEVICE_ID_LSTICK_UP_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keybind_lut[PS3_DEVICE_ID_LSTICK_DOWN_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keybind_lut[PS3_DEVICE_ID_LSTICK_LEFT_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keybind_lut[PS3_DEVICE_ID_LSTICK_RIGHT_DPAD]; break; case DPAD_EMULATION_RSTICK: - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = CTRL_UP_MASK | CTRL_RSTICK_UP_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = CTRL_DOWN_MASK | CTRL_RSTICK_DOWN_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = CTRL_LEFT_MASK | CTRL_RSTICK_LEFT_MASK; - g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = CTRL_RIGHT_MASK | CTRL_RSTICK_RIGHT_MASK; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_UP].joykey = platform_keybind_lut[PS3_DEVICE_ID_RSTICK_UP_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keybind_lut[PS3_DEVICE_ID_RSTICK_DOWN_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keybind_lut[PS3_DEVICE_ID_RSTICK_LEFT_DPAD]; + g_settings.input.binds[controller_id][SNES_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keybind_lut[PS3_DEVICE_ID_RSTICK_RIGHT_DPAD]; break; } }