mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-23 03:09:10 +02:00
SaveState: Show which PPSSPP version saved a state when loading it fails
The version comes from the file header and goes in the failure message's metadata line. A state from another version is the usual reason a load fails. Headless prints it too. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
a5275067b6
commit
6163bf5911
4 files changed
+33
-11
No files matched your search
@@ -383,7 +383,12 @@ CChunkFileReader::Error CChunkFileReader::LoadFileHeader(File::IOFile &pFile, SC
|
||||
return ERROR_NONE;
|
||||
}
|
||||
|
||||
CChunkFileReader::Error CChunkFileReader::GetFileTitle(const Path &filename, std::string *title) {
|
||||
// Not necessarily null-terminated.
|
||||
static std::string HeaderGitVersion(const char (&gitVersion)[32]) {
|
||||
return std::string(gitVersion, strnlen(gitVersion, sizeof(gitVersion)));
|
||||
}
|
||||
|
||||
CChunkFileReader::Error CChunkFileReader::GetFileTitle(const Path &filename, std::string *title, std::string *gitVersion) {
|
||||
if (!File::Exists(filename)) {
|
||||
ERROR_LOG(Log::SaveState, "ChunkReader: File doesn't exist");
|
||||
return ERROR_BAD_FILE;
|
||||
@@ -391,7 +396,11 @@ CChunkFileReader::Error CChunkFileReader::GetFileTitle(const Path &filename, std
|
||||
|
||||
File::IOFile pFile(filename, "rb");
|
||||
SChunkHeader header;
|
||||
return LoadFileHeader(pFile, header, title);
|
||||
Error err = LoadFileHeader(pFile, header, title);
|
||||
if (err == ERROR_NONE && gitVersion) {
|
||||
*gitVersion = HeaderGitVersion(header.GitVersion);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
CChunkFileReader::Error CChunkFileReader::LoadFile(const Path &filename, std::string *gitVersion, u8 *&_buffer, size_t &sz, std::string *failureReason) {
|
||||
@@ -460,11 +469,7 @@ CChunkFileReader::Error CChunkFileReader::LoadFile(const Path &filename, std::st
|
||||
_buffer = buffer;
|
||||
}
|
||||
|
||||
if (header.GitVersion[31]) {
|
||||
*gitVersion = std::string(header.GitVersion, 32);
|
||||
} else {
|
||||
*gitVersion = header.GitVersion;
|
||||
}
|
||||
*gitVersion = HeaderGitVersion(header.GitVersion);
|
||||
|
||||
return ERROR_NONE;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user