From 00237160535a4be8cd4d1dd5961db6a5cfd24a80 Mon Sep 17 00:00:00 2001 From: Nicolas Adenis-Lamarre Date: Sat, 4 Feb 2023 10:38:52 +0100 Subject: [PATCH] - fix analog_t required for some games - changing mapping to better fit to games (for example, select is rarely used) Signed-off-by: Nicolas Adenis-Lamarre --- rpcs3/Emu/Cell/Modules/cellGem.cpp | 16 +++++++++------- rpcs3/Input/evdev_gun_handler.cpp | 5 ++++- rpcs3/Input/evdev_gun_handler.h | 5 ++++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/cellGem.cpp b/rpcs3/Emu/Cell/Modules/cellGem.cpp index bb224f60e6..491aafee72 100644 --- a/rpcs3/Emu/Cell/Modules/cellGem.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGem.cpp @@ -894,23 +894,25 @@ static bool gun_input_to_pad(const u32 gem_no, be_t& digital_buttons, be_t< digital_buttons |= CELL_GEM_CTRL_MOVE; if (gun.handler.get_button(gem_no, gun_button::btn_middle) == 1) - digital_buttons |= CELL_GEM_CTRL_SELECT; - - if (gun.handler.get_button(gem_no, gun_button::btn_1) == 1) digital_buttons |= CELL_GEM_CTRL_START; - if (gun.handler.get_button(gem_no, gun_button::btn_2) == 1) + if (gun.handler.get_button(gem_no, gun_button::btn_1) == 1) digital_buttons |= CELL_GEM_CTRL_CROSS; - if (gun.handler.get_button(gem_no, gun_button::btn_3) == 1) + if (gun.handler.get_button(gem_no, gun_button::btn_2) == 1) digital_buttons |= CELL_GEM_CTRL_CIRCLE; - if (gun.handler.get_button(gem_no, gun_button::btn_4) == 1) - digital_buttons |= CELL_GEM_CTRL_SQUARE; + if (gun.handler.get_button(gem_no, gun_button::btn_3) == 1) + digital_buttons |= CELL_GEM_CTRL_SELECT; if (gun.handler.get_button(gem_no, gun_button::btn_5) == 1) digital_buttons |= CELL_GEM_CTRL_TRIANGLE; + if (gun.handler.get_button(gem_no, gun_button::btn_6) == 1) + digital_buttons |= CELL_GEM_CTRL_SQUARE; + + analog_t = gun.handler.get_button(gem_no, gun_button::btn_left) ? 0xFFFF : 0; + return true; } diff --git a/rpcs3/Input/evdev_gun_handler.cpp b/rpcs3/Input/evdev_gun_handler.cpp index 5e5b8d1b16..e5069203a8 100644 --- a/rpcs3/Input/evdev_gun_handler.cpp +++ b/rpcs3/Input/evdev_gun_handler.cpp @@ -26,7 +26,10 @@ const std::map button_map {gun_button::btn_2, BTN_2}, {gun_button::btn_3, BTN_3}, {gun_button::btn_4, BTN_4}, - {gun_button::btn_5, BTN_5} + {gun_button::btn_5, BTN_5}, + {gun_button::btn_6, BTN_6}, + {gun_button::btn_7, BTN_7}, + {gun_button::btn_8, BTN_8} }; struct event_udev_entry diff --git a/rpcs3/Input/evdev_gun_handler.h b/rpcs3/Input/evdev_gun_handler.h index c6da2c0baf..e5d83c391e 100644 --- a/rpcs3/Input/evdev_gun_handler.h +++ b/rpcs3/Input/evdev_gun_handler.h @@ -14,7 +14,10 @@ enum class gun_button btn_2, btn_3, btn_4, - btn_5 + btn_5, + btn_6, + btn_7, + btn_8 }; class evdev_gun_handler