Files
buildroot/package/miyoo/retroarch/libretro-retroarch/0005-input-driver-correct-Miyoo-mapping-in-MENU.patch
Apaczer 8037d1c1e2 PKG-retroarch: use "menu_unified_controls" & fix input polling (#166)
- u can use real keyboard on OSK (when searching for e.g.)
- add hack for "Swap OK/Cancel buttons in menu" when using OSK
- using "Unified menu controls" for keystrokes so will behave the same as controller which is to expect

refactor commits log
2025-05-12 16:57:13 +02:00

98 lines
5.0 KiB
Diff

From c52584d8b2bc796c20c8853e47c518686c32c5d1 Mon Sep 17 00:00:00 2001
From: Apaczer <94932128+Apaczer@users.noreply.github.com>
Date: Wed, 30 Apr 2025 23:08:23 +0200
Subject: [PATCH] input/driver: correct Miyoo mapping in MENU
---
input/input_driver.c | 42 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 41 insertions(+), 1 deletion(-)
diff --git a/input/input_driver.c b/input/input_driver.c
index 8be3dcd294..a7f930f86d 100644
--- a/input/input_driver.c
+++ b/input/input_driver.c
@@ -7116,6 +7116,22 @@ void input_driver_collect_system_input(input_driver_state_t *input_st,
unsigned i;
unsigned ids[][2] =
{
+#ifdef MIYOO
+ {RETROK_LALT, RETRO_DEVICE_ID_JOYPAD_A },
+ {RETROK_LCTRL, RETRO_DEVICE_ID_JOYPAD_B },
+ {RETROK_SPACE, RETRO_DEVICE_ID_JOYPAD_Y },
+ {RETROK_LSHIFT, RETRO_DEVICE_ID_JOYPAD_X },
+ {RETROK_RETURN, RETRO_DEVICE_ID_JOYPAD_START },
+ {RETROK_ESCAPE, RETRO_DEVICE_ID_JOYPAD_SELECT },
+ {RETROK_UP, RETRO_DEVICE_ID_JOYPAD_UP },
+ {RETROK_DOWN, RETRO_DEVICE_ID_JOYPAD_DOWN },
+ {RETROK_LEFT, RETRO_DEVICE_ID_JOYPAD_LEFT },
+ {RETROK_RIGHT, RETRO_DEVICE_ID_JOYPAD_RIGHT },
+ {RETROK_TAB, RETRO_DEVICE_ID_JOYPAD_L },
+ {RETROK_BACKSPACE, RETRO_DEVICE_ID_JOYPAD_R },
+ {RETROK_RALT, RETRO_DEVICE_ID_JOYPAD_L3 },
+ {RETROK_RSHIFT, RETRO_DEVICE_ID_JOYPAD_R3 },
+#else
{RETROK_RETURN, RETRO_DEVICE_ID_JOYPAD_A },
{RETROK_BACKSPACE, RETRO_DEVICE_ID_JOYPAD_B },
{RETROK_DELETE, RETRO_DEVICE_ID_JOYPAD_Y },
@@ -7130,6 +7146,7 @@ void input_driver_collect_system_input(input_driver_state_t *input_st,
{RETROK_PAGEDOWN, RETRO_DEVICE_ID_JOYPAD_R },
{RETROK_HOME, RETRO_DEVICE_ID_JOYPAD_L3 },
{RETROK_END, RETRO_DEVICE_ID_JOYPAD_R3 },
+#endif
{0, RARCH_QUIT_KEY }, /* 14 */
{0, RARCH_FULLSCREEN_TOGGLE_KEY },
{0, RARCH_UI_COMPANION_TOGGLE },
@@ -7175,7 +7192,11 @@ void input_driver_collect_system_input(input_driver_state_t *input_st,
unsigned i;
unsigned ids[][2] =
{
+#ifdef MIYOO
+ {RETROK_LALT, RETRO_DEVICE_ID_JOYPAD_A },
+#else
{RETROK_LCTRL, RETRO_DEVICE_ID_JOYPAD_A },
+#endif
{RETROK_UP, RETRO_DEVICE_ID_JOYPAD_UP },
{RETROK_DOWN, RETRO_DEVICE_ID_JOYPAD_DOWN },
{RETROK_LEFT, RETRO_DEVICE_ID_JOYPAD_LEFT },
@@ -7341,10 +7362,28 @@ void input_keyboard_event(bool down, unsigned code,
* is active */
if (menu_st->flags & MENU_ST_FLAG_SCREENSAVER_ACTIVE)
{
+#ifdef MIYOO
if ( (down)
&& (code != RETROK_UNKNOWN)
&& (menu_input_dialog_get_display_kb() ||
- !((code == RETROK_SPACE) || /* RETRO_DEVICE_ID_JOYPAD_START */
+ !((code == RETROK_RETURN) || /* RETRO_DEVICE_ID_JOYPAD_START */
+ (code == RETROK_ESCAPE) || /* RETRO_DEVICE_ID_JOYPAD_SELECT */
+ (code == RETROK_TAB) || /* RETRO_DEVICE_ID_JOYPAD_L */
+ (code == RETROK_BACKSPACE)|| /* RETRO_DEVICE_ID_JOYPAD_R */
+ (code == RETROK_LCTRL) || /* RETRO_DEVICE_ID_JOYPAD_B */
+ (code == RETROK_LALT) || /* RETRO_DEVICE_ID_JOYPAD_A */
+ (code == RETROK_SPACE) || /* RETRO_DEVICE_ID_JOYPAD_Y */
+ (code == RETROK_LSHIFT) || /* RETRO_DEVICE_ID_JOYPAD_X */
+ (code == RETROK_RIGHT) || /* RETRO_DEVICE_ID_JOYPAD_RIGHT */
+ (code == RETROK_LEFT) || /* RETRO_DEVICE_ID_JOYPAD_LEFT */
+ (code == RETROK_DOWN) || /* RETRO_DEVICE_ID_JOYPAD_DOWN */
+ (code == RETROK_UP) || /* RETRO_DEVICE_ID_JOYPAD_UP */
+ BIT512_GET(input_st->keyboard_mapping_bits, code))))
+#else
+ if ( (down)
+ && (code != RETROK_UNKNOWN)
+ && (menu_input_dialog_get_display_kb() ||
+ !((code == RETROK_SPACE) || /* RETRO_DEVICE_ID_JOYPAD_START */
(code == RETROK_SLASH) || /* RETRO_DEVICE_ID_JOYPAD_X */
(code == RETROK_RSHIFT) || /* RETRO_DEVICE_ID_JOYPAD_SELECT */
(code == RETROK_RIGHT) || /* RETRO_DEVICE_ID_JOYPAD_RIGHT */
@@ -7357,6 +7396,7 @@ void input_keyboard_event(bool down, unsigned code,
(code == RETROK_RETURN) || /* RETRO_DEVICE_ID_JOYPAD_A */
(code == RETROK_DELETE) || /* RETRO_DEVICE_ID_JOYPAD_Y */
BIT512_GET(input_st->keyboard_mapping_bits, code))))
+#endif
{
struct menu_state *menu_st = menu_state_get_ptr();
menu_st->flags &= ~MENU_ST_FLAG_SCREENSAVER_ACTIVE;
--
2.45.2.windows.1