mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 10:20:57 +00:00
(PS3) Input LUTs
This commit is contained in:
parent
0b3f0de625
commit
f453ee7954
@ -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 \
|
||||
|
93
input/input_luts.c
Normal file
93
input/input_luts.c
Normal file
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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
|
76
input/input_luts.h
Normal file
76
input/input_luts.h
Normal file
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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
|
55
ps3/main.c
55
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;
|
||||
}
|
||||
|
||||
|
63
ps3/menu.c
63
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))
|
||||
|
@ -16,16 +16,16 @@
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "../driver.h"
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include "ps3_input.h"
|
||||
#include "ps3_video_psgl.h"
|
||||
#include <stdint.h>
|
||||
#include "../driver.h"
|
||||
#include "../input/input_luts.h"
|
||||
#include "../libsnes.hpp"
|
||||
#include "../general.h"
|
||||
#include "shared.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user