Fix some missing things / bugs in save states.

This commit is contained in:
Unknown W. Brackets 2012-12-29 02:56:27 -08:00
parent ec080eb2b6
commit 0edbcdc955
7 changed files with 42 additions and 23 deletions

View file

@ -23,25 +23,8 @@
// VTIMER
//////////////////////////////////////////////////////////////////////////
struct VTimer : public KernelObject
struct NativeVTimer
{
const char *GetName() {return name;}
const char *GetTypeName() {return "VTimer";}
static u32 GetMissingErrorCode() { return SCE_KERNEL_ERROR_UNKNOWN_VTID; }
int GetIDType() const { return SCE_KERNEL_TMID_VTimer; }
virtual void DoState(PointerWrap &p)
{
p.Do(size);
p.Do(name);
p.Do(startTime);
p.Do(running);
p.Do(handler);
p.Do(handlerTime);
p.Do(argument);
p.DoMarker("VTimer");
}
SceSize size;
char name[KERNELOBJECT_MAX_NAME_LENGTH+1];
u64 startTime;
@ -51,6 +34,22 @@ struct VTimer : public KernelObject
u32 argument;
};
struct VTimer : public KernelObject
{
const char *GetName() {return nvt.name;}
const char *GetTypeName() {return "VTimer";}
static u32 GetMissingErrorCode() { return SCE_KERNEL_ERROR_UNKNOWN_VTID; }
int GetIDType() const { return SCE_KERNEL_TMID_VTimer; }
virtual void DoState(PointerWrap &p)
{
p.Do(nvt);
p.DoMarker("VTimer");
}
NativeVTimer nvt;
};
KernelObject *__KernelVTimerObject()
{
return new VTimer;
@ -64,9 +63,9 @@ void sceKernelCreateVTimer()
VTimer *vt = new VTimer();
SceUID uid = kernelObjects.Create(vt);
strncpy(vt->name, name, 32);
vt->running = true;
vt->startTime = 0; //TODO fix
strncpy(vt->nvt.name, name, 32);
vt->nvt.running = true;
vt->nvt.startTime = 0; //TODO fix
RETURN(uid); //TODO: return timer ID
}