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;
}
}