diff --git a/Common/KeyMap.cpp b/Common/KeyMap.cpp index be0b24e7a0..9be86d1072 100644 --- a/Common/KeyMap.cpp +++ b/Common/KeyMap.cpp @@ -609,6 +609,8 @@ const KeyMap_IntStrPair psp_button_names[] = { #ifndef USING_GLES2 {VIRTKEY_REWIND, "Rewind"}, #endif + {VIRTKEY_SAVE_STATE, "Save State"}, + {VIRTKEY_LOAD_STATE, "Load State"}, {VIRTKEY_AXIS_RIGHT_Y_MAX, "RightAn.Up"}, {VIRTKEY_AXIS_RIGHT_Y_MIN, "RightAn.Down"}, diff --git a/Common/KeyMap.h b/Common/KeyMap.h index db006a5bf8..9d69ffedd9 100644 --- a/Common/KeyMap.h +++ b/Common/KeyMap.h @@ -41,6 +41,8 @@ enum { VIRTKEY_AXIS_RIGHT_X_MAX = 0x1000a, VIRTKEY_AXIS_RIGHT_Y_MAX = 0x1000b, VIRTKEY_REWIND = 0x1000c, + VIRTKEY_SAVE_STATE = 0x1000d, + VIRTKEY_LOAD_STATE = 0x1000e, VIRTKEY_LAST, VIRTKEY_COUNT = VIRTKEY_LAST - VIRTKEY_FIRST }; @@ -96,9 +98,9 @@ typedef std::map> KeyMapping; // KeyMap // A translation layer for key assignment. Provides // integration with Core's config state. -// +// // Does not handle input state managment. -// +// // Platform ports should map their platform's keys to KeyMap's keys (NKCODE_*). // // Then have KeyMap transform those into psp buttons. @@ -114,7 +116,7 @@ namespace KeyMap { std::string name; }; - // Use if you need to display the textual name + // Use if you need to display the textual name std::string GetKeyName(int keyCode); std::string GetKeyOrAxisName(int keyCode); std::string GetAxisName(int axisId); diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 31ea300978..4d2bd7f8a2 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -269,6 +269,14 @@ void EmuScreen::onVKeyDown(int virtualKeyCode) { osm.Show(s->T("norewind", "No rewind save states available"), 2.0); } break; + case VIRTKEY_SAVE_STATE: + SaveState::SaveSlot(g_Config.iCurrentStateSlot, 0); + break; + case VIRTKEY_LOAD_STATE: + if (SaveState::HasSaveInSlot(g_Config.iCurrentStateSlot)) { + SaveState::LoadSlot(g_Config.iCurrentStateSlot, 0); + } + break; } }