Abort loading states from incompatible graphics backends.
This commit is contained in:
parent
db838e759b
commit
08fe3c213a
|
@ -71,7 +71,7 @@ static Common::Event g_compressAndDumpStateSyncEvent;
|
||||||
static std::thread g_save_thread;
|
static std::thread g_save_thread;
|
||||||
|
|
||||||
// Don't forget to increase this after doing changes on the savestate system
|
// Don't forget to increase this after doing changes on the savestate system
|
||||||
static const u32 STATE_VERSION = 14;
|
static const u32 STATE_VERSION = 15;
|
||||||
|
|
||||||
struct StateHeader
|
struct StateHeader
|
||||||
{
|
{
|
||||||
|
|
|
@ -186,6 +186,11 @@ void VideoBackendHardware::InitializeShared()
|
||||||
// Run from the CPU thread
|
// Run from the CPU thread
|
||||||
void VideoBackendHardware::DoState(PointerWrap& p)
|
void VideoBackendHardware::DoState(PointerWrap& p)
|
||||||
{
|
{
|
||||||
|
bool software = false;
|
||||||
|
p.Do(software);
|
||||||
|
if (p.GetMode() == PointerWrap::MODE_READ && software == true)
|
||||||
|
// change mode to abort load of incompatible save state.
|
||||||
|
p.SetMode(PointerWrap::MODE_VERIFY);
|
||||||
VideoCommon_DoState(p);
|
VideoCommon_DoState(p);
|
||||||
p.DoMarker("VideoCommon");
|
p.DoMarker("VideoCommon");
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "Core.h"
|
#include "Core.h"
|
||||||
#include "OpcodeDecoder.h"
|
#include "OpcodeDecoder.h"
|
||||||
#include "SWVertexLoader.h"
|
#include "SWVertexLoader.h"
|
||||||
|
#include "SWStatistics.h"
|
||||||
|
|
||||||
#define VSYNC_ENABLED 0
|
#define VSYNC_ENABLED 0
|
||||||
|
|
||||||
|
@ -97,6 +98,11 @@ bool VideoSoftware::Initialize(void *&window_handle)
|
||||||
|
|
||||||
void VideoSoftware::DoState(PointerWrap& p)
|
void VideoSoftware::DoState(PointerWrap& p)
|
||||||
{
|
{
|
||||||
|
bool software = true;
|
||||||
|
p.Do(software);
|
||||||
|
if (p.GetMode() == PointerWrap::MODE_READ && software == false)
|
||||||
|
// change mode to abort load of incompatible save state.
|
||||||
|
p.SetMode(PointerWrap::MODE_VERIFY);
|
||||||
// TODO: incomplete
|
// TODO: incomplete
|
||||||
SWCommandProcessor::DoState(p);
|
SWCommandProcessor::DoState(p);
|
||||||
SWPixelEngine::DoState(p);
|
SWPixelEngine::DoState(p);
|
||||||
|
@ -105,6 +111,7 @@ void VideoSoftware::DoState(PointerWrap& p)
|
||||||
Clipper::DoState(p);
|
Clipper::DoState(p);
|
||||||
p.Do(swxfregs);
|
p.Do(swxfregs);
|
||||||
p.Do(bpmem);
|
p.Do(bpmem);
|
||||||
|
p.Do(swstats);
|
||||||
|
|
||||||
// CP Memory
|
// CP Memory
|
||||||
p.DoArray(arraybases, 16);
|
p.DoArray(arraybases, 16);
|
||||||
|
|
Loading…
Reference in New Issue