diff --git a/pcsx2/Elfheader.cpp b/pcsx2/Elfheader.cpp index 65bfa70fdb..7503eaffc3 100644 --- a/pcsx2/Elfheader.cpp +++ b/pcsx2/Elfheader.cpp @@ -19,6 +19,7 @@ #include "GS.h" // for sending game crc to mtgs #include "Elfheader.h" #include "DebugTools/SymbolMap.h" +#include "AppCoreThread.h" u32 ElfCRC; u32 ElfEntry; @@ -347,6 +348,7 @@ int GetPS2ElfName( wxString& name ) else if( parts.lvalue == L"VER" ) { Console.WriteLn( Color_Blue, L"(SYSTEM.CNF) Software version = " + parts.rvalue ); + GameInfo::gameVersion = parts.rvalue; } } diff --git a/pcsx2/IPC.cpp b/pcsx2/IPC.cpp index 5c170762fe..c85d39b2a5 100644 --- a/pcsx2/IPC.cpp +++ b/pcsx2/IPC.cpp @@ -449,6 +449,19 @@ SocketIPC::IPCBuffer SocketIPC::ParseCommand(char* buf, char* ret_buffer, u32 bu ret_cnt += 256; break; } + case MsgGameVersion: + { + if (!m_vm->HasActiveMachine()) + goto error; + if (!SafetyChecks(buf_cnt, 0, ret_cnt, 256, buf_size)) + goto error; + char version[256] = {}; + sprintf(version, "%s", GameInfo::gameVersion.ToUTF8().data()); + version[255] = 0x00; + memcpy(&ret_buffer[ret_cnt], version, 256); + ret_cnt += 256; + break; + } default: { error: diff --git a/pcsx2/IPC.h b/pcsx2/IPC.h index 1c4fd03790..03787d05ed 100644 --- a/pcsx2/IPC.h +++ b/pcsx2/IPC.h @@ -102,6 +102,7 @@ protected: MsgTitle = 0xB, /**< Returns the game title. */ MsgID = 0xC, /**< Returns the game ID. */ MsgUUID = 0xD, /**< Returns the game UUID. */ + MsgGameVersion = 0xE, /**< Returns the game verion. */ MsgUnimplemented = 0xFF /**< Unimplemented IPC message. */ }; diff --git a/pcsx2/gui/AppCoreThread.cpp b/pcsx2/gui/AppCoreThread.cpp index a5950a0b7d..c5058418be 100644 --- a/pcsx2/gui/AppCoreThread.cpp +++ b/pcsx2/gui/AppCoreThread.cpp @@ -56,6 +56,7 @@ namespace GameInfo wxString gameName; wxString gameSerial; wxString gameCRC; + wxString gameVersion; }; // namespace GameInfo // -------------------------------------------------------------------------------------- diff --git a/pcsx2/gui/AppCoreThread.h b/pcsx2/gui/AppCoreThread.h index 4785d33f5d..605248a409 100644 --- a/pcsx2/gui/AppCoreThread.h +++ b/pcsx2/gui/AppCoreThread.h @@ -43,6 +43,7 @@ namespace GameInfo extern wxString gameName; extern wxString gameSerial; extern wxString gameCRC; + extern wxString gameVersion; }; // namespace GameInfo