(PS3) Input LUTs

This commit is contained in:
TwinAphex51224 2012-03-05 16:57:43 +01:00
parent 0b3f0de625
commit f453ee7954
6 changed files with 221 additions and 99 deletions

View File

@ -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
View 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
View 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

View File

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

View File

@ -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))

View File

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