Save states now work (to some extent). Please report special cases which cause crashes or anything of the sort. Also removed debug messages from state management

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@385 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
XTra.KrazzY 2008-08-30 15:54:44 +00:00
parent 06f0b02ecd
commit 95eb8f9ef3
3 changed files with 26 additions and 30 deletions

View file

@ -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"

View file

@ -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 <string>
#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()

View file

@ -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
}