Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions config.def.h
Original file line number Diff line number Diff line change
Expand Up @@ -1589,6 +1589,9 @@
#define DEFAULT_AXIS_THRESHOLD 0.5f
#define DEFAULT_ANALOG_DEADZONE 0.0f
#define DEFAULT_ANALOG_SENSITIVITY 1.0f
#define DEFAULT_SENSOR_ACCELEROMETER_SENSITIVITY 1.0f
#define DEFAULT_SENSOR_GYROSCOPE_SENSITIVITY 1.0f


/* Describes speed of which turbo-enabled buttons toggle. */
#define DEFAULT_TURBO_ENABLE true
Expand Down
2 changes: 2 additions & 0 deletions configuration.c
Original file line number Diff line number Diff line change
Expand Up @@ -2357,6 +2357,8 @@ static struct config_float_setting *populate_settings_float(
SETTING_FLOAT("input_axis_threshold", &settings->floats.input_axis_threshold, true, DEFAULT_AXIS_THRESHOLD, false);
SETTING_FLOAT("input_analog_deadzone", &settings->floats.input_analog_deadzone, true, DEFAULT_ANALOG_DEADZONE, false);
SETTING_FLOAT("input_analog_sensitivity", &settings->floats.input_analog_sensitivity, true, DEFAULT_ANALOG_SENSITIVITY, false);
SETTING_FLOAT("input_sensor_accelerometer_sensitivity",&settings->floats.input_sensor_accelerometer_sensitivity, true, DEFAULT_SENSOR_ACCELEROMETER_SENSITIVITY, false);
SETTING_FLOAT("input_sensor_gyroscope_sensitivity", &settings->floats.input_sensor_gyroscope_sensitivity, true, DEFAULT_SENSOR_GYROSCOPE_SENSITIVITY, false);
#ifdef HAVE_OVERLAY
SETTING_FLOAT("input_overlay_opacity", &settings->floats.input_overlay_opacity, true, DEFAULT_INPUT_OVERLAY_OPACITY, false);
SETTING_FLOAT("input_osk_overlay_opacity", &settings->floats.input_osk_overlay_opacity, true, DEFAULT_INPUT_OVERLAY_OPACITY, false);
Expand Down
2 changes: 2 additions & 0 deletions configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,8 @@ typedef struct settings
float input_analog_deadzone;
float input_axis_threshold;
float input_analog_sensitivity;
float input_sensor_accelerometer_sensitivity;
float input_sensor_gyroscope_sensitivity;
#ifdef _3DS
float bottom_font_scale;
#endif
Expand Down
13 changes: 11 additions & 2 deletions input/input_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -4520,8 +4520,17 @@ void joypad_driver_reinit(void *data, const char *joypad_driver_name)
**/
float input_get_sensor_state(unsigned port, unsigned id)
{
bool input_sensors_enable = config_get_ptr()->bools.input_sensors_enable;
return input_driver_get_sensor(port, input_sensors_enable, id);
settings_t *settings = config_get_ptr();
bool input_sensors_enable = settings->bools.input_sensors_enable;
float sensitivity;
if (id >= RETRO_SENSOR_ACCELEROMETER_X && id <= RETRO_SENSOR_ACCELEROMETER_Z) {
sensitivity = settings->floats.input_sensor_accelerometer_sensitivity;
} else if (id >= RETRO_SENSOR_GYROSCOPE_X && id <= RETRO_SENSOR_GYROSCOPE_Z) {
sensitivity = settings->floats.input_sensor_gyroscope_sensitivity;
} else {
sensitivity = 1.0f;
}
return input_driver_get_sensor(port, input_sensors_enable, id) * sensitivity;
}

/**
Expand Down
8 changes: 8 additions & 0 deletions intl/msg_hash_lbl.h
Original file line number Diff line number Diff line change
Expand Up @@ -1890,6 +1890,14 @@ MSG_HASH(
MENU_ENUM_LABEL_INPUT_ANALOG_SENSITIVITY,
"input_analog_sensitivity"
)
MSG_HASH(
MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,
"input_sensor_accelerometer_sensitivity"
)
MSG_HASH(
MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY,
"input_sensor_gyroscope_sensitivity"
)
#ifdef GEKKO
MSG_HASH(
MENU_ENUM_LABEL_INPUT_MOUSE_SCALE,
Expand Down
16 changes: 16 additions & 0 deletions intl/msg_hash_us.h
Original file line number Diff line number Diff line change
Expand Up @@ -3441,10 +3441,26 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_SENSITIVITY,
"Analog Sensitivity"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,
"Accelerometer Sensitivity"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_SENSITIVITY,
"Gyroscope Sensitivity"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_INPUT_ANALOG_SENSITIVITY,
"Adjust the sensitivity of analog sticks."
)
MSG_HASH(
MENU_ENUM_SUBLABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,
"Adjust the sensitivity of the Accelerometer."
)
MSG_HASH(
MENU_ENUM_SUBLABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY,
"Adjust the sensitivity of the Gyroscope."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_INPUT_BIND_TIMEOUT,
"Bind Timeout"
Expand Down
10 changes: 10 additions & 0 deletions menu/cbs/menu_cbs_sublabel.c
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,10 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_touch_vmouse_gesture, MENU_
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_button_axis_threshold, MENU_ENUM_SUBLABEL_INPUT_BUTTON_AXIS_THRESHOLD)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_analog_deadzone, MENU_ENUM_SUBLABEL_INPUT_ANALOG_DEADZONE)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_analog_sensitivity, MENU_ENUM_SUBLABEL_INPUT_ANALOG_SENSITIVITY)

DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_sensor_accelerometer_sensitivity, MENU_ENUM_SUBLABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_sensor_gyroscope_sensitivity, MENU_ENUM_SUBLABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY)

DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_turbo_enable, MENU_ENUM_SUBLABEL_INPUT_TURBO_ENABLE)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_turbo_period, MENU_ENUM_SUBLABEL_INPUT_TURBO_PERIOD)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_turbo_duty_cycle, MENU_ENUM_SUBLABEL_INPUT_TURBO_DUTY_CYCLE)
Expand Down Expand Up @@ -4753,6 +4757,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_INPUT_ANALOG_SENSITIVITY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_analog_sensitivity);
break;
case MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_sensor_accelerometer_sensitivity);
break;
case MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_sensor_gyroscope_sensitivity);
break;
#if defined(GEKKO)
case MENU_ENUM_LABEL_INPUT_MOUSE_SCALE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_mouse_scale);
Expand Down
2 changes: 2 additions & 0 deletions menu/menu_displaylist.c
Original file line number Diff line number Diff line change
Expand Up @@ -8290,6 +8290,8 @@ unsigned menu_displaylist_build_list(
{MENU_ENUM_LABEL_INPUT_BUTTON_AXIS_THRESHOLD, PARSE_ONLY_FLOAT, true},
{MENU_ENUM_LABEL_INPUT_ANALOG_DEADZONE, PARSE_ONLY_FLOAT, true},
{MENU_ENUM_LABEL_INPUT_ANALOG_SENSITIVITY, PARSE_ONLY_FLOAT, true},
{MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,PARSE_ONLY_FLOAT, true },
{MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY, PARSE_ONLY_FLOAT, true },
#if defined(GEKKO)
{MENU_ENUM_LABEL_INPUT_MOUSE_SCALE, PARSE_ONLY_UINT, true},
#endif
Expand Down
30 changes: 30 additions & 0 deletions menu/menu_setting.c
Original file line number Diff line number Diff line change
Expand Up @@ -15835,6 +15835,36 @@ static bool setting_append_list(
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
menu_settings_list_current_add_range(list, list_info, -5.0, 5.0, 0.1, true, true);

CONFIG_FLOAT(
list, list_info,
&settings->floats.input_sensor_accelerometer_sensitivity,
MENU_ENUM_LABEL_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,
MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_ACCELEROMETER_SENSITIVITY,
DEFAULT_SENSOR_ACCELEROMETER_SENSITIVITY,
"%.1f",
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
menu_settings_list_current_add_range(list, list_info, -5.0, 5.0, 0.1, true, true);

CONFIG_FLOAT(
list, list_info,
&settings->floats.input_sensor_gyroscope_sensitivity,
MENU_ENUM_LABEL_INPUT_SENSOR_GYROSCOPE_SENSITIVITY,
MENU_ENUM_LABEL_VALUE_INPUT_SENSOR_GYROSCOPE_SENSITIVITY,
DEFAULT_SENSOR_GYROSCOPE_SENSITIVITY,
"%.1f",
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
menu_settings_list_current_add_range(list, list_info, -5.0, 5.0, 0.1, true, true);

CONFIG_UINT(
list, list_info,
&settings->uints.input_bind_timeout,
Expand Down
2 changes: 2 additions & 0 deletions msg_hash.h
Original file line number Diff line number Diff line change
Expand Up @@ -1325,6 +1325,8 @@ enum msg_hash_enums
MENU_LABEL(INPUT_TOUCH_SCALE),
MENU_LABEL(INPUT_ANALOG_DEADZONE),
MENU_LABEL(INPUT_ANALOG_SENSITIVITY),
MENU_LABEL(INPUT_SENSOR_ACCELEROMETER_SENSITIVITY),
MENU_LABEL(INPUT_SENSOR_GYROSCOPE_SENSITIVITY),
MENU_LABEL(INPUT_BIND_TIMEOUT),
MENU_LABEL(INPUT_BIND_HOLD),
MENU_LABEL(INPUT_REMAP_BINDS_ENABLE),
Expand Down
Loading