diff --git a/Core/Debugger/WebSocket/InputSubscriber.cpp b/Core/Debugger/WebSocket/InputSubscriber.cpp index e15c124463..95365b498f 100644 --- a/Core/Debugger/WebSocket/InputSubscriber.cpp +++ b/Core/Debugger/WebSocket/InputSubscriber.cpp @@ -50,6 +50,11 @@ const std::unordered_map buttonLookup = { { "forward", CTRL_FORWARD }, { "back", CTRL_BACK }, { "playpause", CTRL_PLAYPAUSE }, + // Obscure unmapped keys, see issue #17464 + { "l2", CTRL_L2 }, + { "l3", CTRL_L3 }, + { "r2", CTRL_R2 }, + { "r3", CTRL_R3 }, }; struct WebSocketInputState : public DebuggerSubscriber { diff --git a/Core/HLE/sceCtrl.h b/Core/HLE/sceCtrl.h index f4a65b6760..220c5d341a 100644 --- a/Core/HLE/sceCtrl.h +++ b/Core/HLE/sceCtrl.h @@ -55,10 +55,16 @@ const int CTRL_STICK_RIGHT = 1; #define CTRL_BACK 0x20000000 #define CTRL_PLAYPAUSE 0x40000000 +// Obscure extra keys that were never mapped to hardware, but can be used to bring up the debug menu in SOTN, see issue #17464 +#define CTRL_L3 0x0002 +#define CTRL_R3 0x0004 +#define CTRL_L2 0x0400 +#define CTRL_R2 0x0800 + #define CTRL_MASK_DPAD (CTRL_UP | CTRL_DOWN | CTRL_LEFT | CTRL_RIGHT) #define CTRL_MASK_ACTION (CTRL_SQUARE | CTRL_TRIANGLE | CTRL_CIRCLE | CTRL_CROSS) #define CTRL_MASK_TRIGGER (CTRL_LTRIGGER | CTRL_RTRIGGER) -#define CTRL_MASK_USER (CTRL_MASK_DPAD | CTRL_MASK_ACTION | CTRL_START | CTRL_SELECT | CTRL_MASK_TRIGGER | CTRL_HOME | CTRL_HOLD | CTRL_WLAN | CTRL_REMOTE_HOLD | CTRL_VOL_UP | CTRL_VOL_DOWN | CTRL_SCREEN | CTRL_NOTE) +#define CTRL_MASK_USER (CTRL_MASK_DPAD | CTRL_MASK_ACTION | CTRL_START | CTRL_SELECT | CTRL_MASK_TRIGGER | CTRL_HOME | CTRL_HOLD | CTRL_WLAN | CTRL_REMOTE_HOLD | CTRL_VOL_UP | CTRL_VOL_DOWN | CTRL_SCREEN | CTRL_NOTE | CTRL_L2 | CTRL_L3 | CTRL_R2 | CTRL_R3) void __CtrlInit(); void __CtrlDoState(PointerWrap &p); diff --git a/Core/KeyMap.cpp b/Core/KeyMap.cpp index ca7b10fb12..981633e3b9 100644 --- a/Core/KeyMap.cpp +++ b/Core/KeyMap.cpp @@ -474,6 +474,10 @@ const KeyMap_IntStrPair psp_button_names[] = { {CTRL_VOL_DOWN, "Vol -"}, {CTRL_SCREEN, "Screen"}, {CTRL_NOTE, "Note"}, + {CTRL_L2, "Dev-kit L2"}, + {CTRL_L3, "Dev-kit L3"}, + {CTRL_R2, "Dev-kit R2"}, + {CTRL_R3, "Dev-kit R3"}, }; // key here can be other things than InputKeyCode.