From 46f5c19c6d2fbd3318e9a6de3c3c2e313c669cf0 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Tue, 26 Feb 2013 18:43:37 -0500 Subject: [PATCH] Not sure if this is the right way to handle this, but it makes the save states perfectly stable. That's all that really matters, right? --- Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp | 5 ++--- Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp index 4401916e1f..8e3f0c2925 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp @@ -55,9 +55,8 @@ void DoState(PointerWrap &p) p.Do(lastPrimCmd); p.Do(streamSize); p.Do(streamAddress); - // not sure how to save this... It seems to be the only thing left that is really important. - // uncommenting this will prevent all error messages, and any crashes/hangs on load, but then obviously it'll segfault once you restart dolphin. - //p.Do(currentFunction); + if (p.GetMode() == PointerWrap::MODE_READ) + ResetDecoding(); } void DecodePrimitiveStream(u32 iBufferSize) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp index 6976b18690..0e2d6afa72 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp @@ -103,7 +103,8 @@ void VideoSoftware::DoState(PointerWrap& p) 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); SWPixelEngine::DoState(p); EfbInterface::DoState(p);