diff --git a/Source/Core/Core/Core.vcproj b/Source/Core/Core/Core.vcproj index 01348aaa03..7251cea34b 100644 --- a/Source/Core/Core/Core.vcproj +++ b/Source/Core/Core/Core.vcproj @@ -264,7 +264,7 @@ OmitFramePointers="true" EnableFiberSafeOptimizations="false" WholeProgramOptimization="false" - AdditionalIncludeDirectories="..\Common\Src;..\DiscIO\Src;..\..\PluginSpecs;..\Debugger\Src;..\..\..\Externals\Bochs_disasm" + AdditionalIncludeDirectories="..\Common\Src;..\DiscIO\Src;..\..\PluginSpecs;..\Debugger\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\zlib" PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0" StringPooling="true" RuntimeLibrary="0" diff --git a/Source/Core/Core/Src/State.cpp b/Source/Core/Core/Src/State.cpp index 5215c5ea87..e6bb40ea07 100644 --- a/Source/Core/Core/Src/State.cpp +++ b/Source/Core/Core/Src/State.cpp @@ -18,6 +18,7 @@ #include "Common.h" #include "State.h" +#include "Core.h" #include "CoreTiming.h" #include "HW/HW.h" #include "PowerPC/PowerPC.h" @@ -28,6 +29,8 @@ #include +#include "zlib.h" + static int ev_Save; static int ev_Load; @@ -57,6 +60,8 @@ void SaveStateCallback(u64 userdata, int cyclesLate) fwrite(buffer, sz, 1, f); fclose(f); delete [] buffer; + + Core::DisplayMessage("Saved State", 2000); } void LoadStateCallback(u64 userdata, int cyclesLate) @@ -71,9 +76,11 @@ void LoadStateCallback(u64 userdata, int cyclesLate) fread(buffer, sz, 1, f); fclose(f); - u8 *ptr; + u8 *ptr = buffer; PointerWrap p(&ptr, PointerWrap::MODE_READ); DoState(p); + + Core::DisplayMessage("Loaded State", 2000); } void State_Init() diff --git a/Source/Core/VideoCommon/Src/VideoState.cpp b/Source/Core/VideoCommon/Src/VideoState.cpp index a774ac5426..65ec2e05c3 100644 --- a/Source/Core/VideoCommon/Src/VideoState.cpp +++ b/Source/Core/VideoCommon/Src/VideoState.cpp @@ -23,33 +23,22 @@ #include "TextureDecoder.h" #include "Fifo.h" -static void DoState(PointerWrap &p) { - // BP Memory - p.Do(bpmem); - // CP Memory - p.Do(arraybases); - p.Do(arraystrides); - p.Do(MatrixIndexA); - p.Do(MatrixIndexB); - // XF Memory - p.Do(xfregs); - PanicAlert("video: XFMem"); - p.Do(xfmem); - PanicAlert("video: Texture decoder"); - // Texture decoder - p.Do(texMem); - - // FIFO - PanicAlert("video: FIFO"); - Fifo_DoState(p); - - //TODO: Check for more pointers in the data structures and make them - // serializable -} - void VideoCommon_DoState(PointerWrap &p) { - PanicAlert("Saving state from Video Common Library"); - //TODO: Save the video state - DoState(p); - PanicAlert("END save video"); + // BP Memory + p.Do(bpmem); + // CP Memory + p.Do(arraybases); + p.Do(arraystrides); + p.Do(MatrixIndexA); + p.Do(MatrixIndexB); + // XF Memory + p.Do(xfregs); + p.Do(xfmem); + // Texture decoder + p.Do(texMem); + + // FIFO + Fifo_DoState(p); + + //TODO: search for more data that should be saved and add it here }