From e651147c53fed3b594082ada984b8741e9a9fb4b Mon Sep 17 00:00:00 2001 From: Gauvain 'GovanifY' Roussel-Tarbouriech Date: Mon, 1 Mar 2021 11:15:59 +0100 Subject: [PATCH] IPC: add SaveState --- pcsx2/IPC.cpp | 11 +++++++++++ pcsx2/IPC.h | 1 + 2 files changed, 12 insertions(+) diff --git a/pcsx2/IPC.cpp b/pcsx2/IPC.cpp index aaa0d8f455..0635472d25 100644 --- a/pcsx2/IPC.cpp +++ b/pcsx2/IPC.cpp @@ -36,6 +36,7 @@ #include "Common.h" #include "Memory.h" +#include "gui/AppSaveStates.h" #include "System/SysThreads.h" #include "svnrev.h" #include "IPC.h" @@ -390,6 +391,16 @@ SocketIPC::IPCBuffer SocketIPC::ParseCommand(char* buf, char* ret_buffer, u32 bu ret_cnt += 256; break; } + case MsgSaveState: + { + if (!m_vm->HasActiveMachine()) + goto error; + if (!SafetyChecks(buf_cnt, 1, ret_cnt, 0, buf_size)) + goto error; + StateCopy_SaveToSlot(FromArray(&buf[buf_cnt], 0)); + buf_cnt += 1; + break; + } default: { error: diff --git a/pcsx2/IPC.h b/pcsx2/IPC.h index 8c2306d939..2529319795 100644 --- a/pcsx2/IPC.h +++ b/pcsx2/IPC.h @@ -92,6 +92,7 @@ protected: MsgWrite32 = 6, /**< Write 32 bit value to memory. */ MsgWrite64 = 7, /**< Write 64 bit value to memory. */ MsgVersion = 8, /**< Returns PCSX2 version. */ + MsgSaveState = 9, /**< Saves a savestate. */ MsgUnimplemented = 0xFF /**< Unimplemented IPC message. */ };