mirror of
https://github.com/libretro/pcsx2.git
synced 2025-01-06 09:39:57 +00:00
wxSavestates: many bugfixes!! *now* it's ready for testing. :p
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxSavestates@4096 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
73d74e85c0
commit
a728cfee96
@ -331,6 +331,7 @@ wxString Exception::CannotCreateStream::FormatDisplayMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write(_("A file could not be created."));
|
||||
retval.Write("\n");
|
||||
_formatUserMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -341,7 +342,7 @@ wxString Exception::CannotCreateStream::FormatDisplayMessage() const
|
||||
wxString Exception::FileNotFound::FormatDiagnosticMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write("File not found.");
|
||||
retval.Write("File not found.\n");
|
||||
_formatDiagMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -350,6 +351,7 @@ wxString Exception::FileNotFound::FormatDisplayMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write(_("File not found."));
|
||||
retval.Write("\n");
|
||||
_formatUserMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -360,7 +362,7 @@ wxString Exception::FileNotFound::FormatDisplayMessage() const
|
||||
wxString Exception::AccessDenied::FormatDiagnosticMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write("Permission denied to file.");
|
||||
retval.Write("Permission denied to file.\n");
|
||||
_formatDiagMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -369,6 +371,7 @@ wxString Exception::AccessDenied::FormatDisplayMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write(_("Permission denied while trying to open file, likely due to insufficient user account rights."));
|
||||
retval.Write("\n");
|
||||
_formatUserMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -379,7 +382,7 @@ wxString Exception::AccessDenied::FormatDisplayMessage() const
|
||||
wxString Exception::EndOfStream::FormatDiagnosticMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write("Unexpected end of file or stream.");
|
||||
retval.Write("Unexpected end of file or stream.\n");
|
||||
_formatDiagMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -388,6 +391,7 @@ wxString Exception::EndOfStream::FormatDisplayMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write(_("Unexpected end of file or stream encountered. File is probably truncated or corrupted."));
|
||||
retval.Write("\n");
|
||||
_formatUserMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
|
@ -681,7 +681,7 @@ SysCorePlugins *g_plugins = NULL;
|
||||
wxString Exception::SaveStateLoadError::FormatDiagnosticMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write("Savestate is corrupt or incomplete!");
|
||||
retval.Write("Savestate is corrupt or incomplete!\n");
|
||||
_formatDiagMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
@ -690,6 +690,7 @@ wxString Exception::SaveStateLoadError::FormatDisplayMessage() const
|
||||
{
|
||||
FastFormatUnicode retval;
|
||||
retval.Write(_("The savestate cannot be loaded, as it appears to be corrupt or incomplete."));
|
||||
retval.Write("\n");
|
||||
_formatUserMsg(retval);
|
||||
return retval;
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ wxString SaveStateBase::GetFilename( int slot )
|
||||
if (serialName.IsEmpty()) serialName = L"BIOS";
|
||||
|
||||
return (g_Conf->Folders.Savestates +
|
||||
pxsFmt( L"%s (%08X).%02d.ps2z", serialName.c_str(), ElfCRC, slot )).GetFullPath();
|
||||
pxsFmt( L"%s (%08X).%02d.p2z", serialName.c_str(), ElfCRC, slot )).GetFullPath();
|
||||
|
||||
//return (g_Conf->Folders.Savestates +
|
||||
// pxsFmt( L"%08X.%03d", ElfCRC, slot )).GetFullPath();
|
||||
|
@ -57,6 +57,7 @@ void BaseCompressThread::ExecuteTaskInThread()
|
||||
for( uint i=0; i<listlen; ++i )
|
||||
{
|
||||
const ArchiveEntry& entry = (*m_src_list)[i];
|
||||
if (!entry.GetDataSize()) continue;
|
||||
|
||||
wxArchiveOutputStream& woot = *(wxArchiveOutputStream*)m_gzfp->GetWxStreamBase();
|
||||
woot.PutNextEntry( entry.GetFilename() );
|
||||
|
@ -47,6 +47,7 @@ public:
|
||||
virtual wxString GetFilename() const=0;
|
||||
virtual void FreezeIn( pxInputStream& reader ) const=0;
|
||||
virtual void FreezeOut( SaveStateBase& writer ) const=0;
|
||||
virtual bool IsRequired() const=0;
|
||||
};
|
||||
|
||||
class MemorySavestateEntry : public BaseSavestateEntry
|
||||
@ -58,6 +59,7 @@ protected:
|
||||
public:
|
||||
virtual void FreezeIn( pxInputStream& reader ) const;
|
||||
virtual void FreezeOut( SaveStateBase& writer ) const;
|
||||
virtual bool IsRequired() const { return true; }
|
||||
|
||||
protected:
|
||||
virtual u8* GetDataPtr() const=0;
|
||||
@ -81,6 +83,8 @@ public:
|
||||
virtual void FreezeIn( pxInputStream& reader ) const;
|
||||
virtual void FreezeOut( SaveStateBase& writer ) const;
|
||||
|
||||
virtual bool IsRequired() const { return false; }
|
||||
|
||||
protected:
|
||||
virtual PluginsEnum_t GetPluginId() const { return m_pid; }
|
||||
};
|
||||
@ -121,6 +125,7 @@ void PluginSavestateEntry::FreezeOut( SaveStateBase& writer ) const
|
||||
{
|
||||
writer.PrepBlock( size );
|
||||
GetCorePlugins().FreezeOut( GetPluginId(), writer.GetBlockPtr() );
|
||||
writer.CommitBlock( size );
|
||||
}
|
||||
}
|
||||
|
||||
@ -139,6 +144,12 @@ public:
|
||||
wxString GetFilename() const { return L"eeMemory.bin"; }
|
||||
u8* GetDataPtr() const { return eeMem->Main; }
|
||||
uint GetDataSize() const { return sizeof(eeMem->Main); }
|
||||
|
||||
virtual void FreezeIn( pxInputStream& reader ) const
|
||||
{
|
||||
SysClearExecutionCache();
|
||||
MemorySavestateEntry::FreezeIn( reader );
|
||||
}
|
||||
};
|
||||
|
||||
class SavestateEntry_IopMemory : public MemorySavestateEntry
|
||||
@ -323,7 +334,7 @@ protected:
|
||||
|
||||
internals.SetDataSize( saveme.GetCurrentPos() - internals.GetDataIndex() );
|
||||
m_dest_list->Add( internals );
|
||||
|
||||
|
||||
for (uint i=0; i<SavestateEntries.GetSize(); ++i)
|
||||
{
|
||||
uint startpos = saveme.GetCurrentPos();
|
||||
@ -566,8 +577,12 @@ protected:
|
||||
for (uint i=0; i<NumSavestateEntries; ++i)
|
||||
{
|
||||
if (foundEntry[i]) continue;
|
||||
throwIt = true;
|
||||
Console.WriteLn( Color_Red, " ... not found '%s'!", SavestateEntries[i]->GetFilename() );
|
||||
|
||||
if (SavestateEntries[i]->IsRequired())
|
||||
{
|
||||
throwIt = true;
|
||||
Console.WriteLn( Color_Red, " ... not found '%s'!", SavestateEntries[i]->GetFilename() );
|
||||
}
|
||||
}
|
||||
|
||||
if (throwIt)
|
||||
@ -583,6 +598,8 @@ protected:
|
||||
|
||||
for (uint i=0; i<NumSavestateEntries; ++i)
|
||||
{
|
||||
if (!foundEntry[i]) continue;
|
||||
|
||||
Threading::pxTestCancel();
|
||||
|
||||
gzreader->OpenEntry( *foundEntry[i] );
|
||||
|
Loading…
Reference in New Issue
Block a user