uint32_t Machine_LoadStateFromRAM(usf_state_t * state, void * savestatespace) { uint8_t LoadHeader[0x40]; uint32_t Value, count, SaveRDRAMSize, offset=0; ReadFromMem( savestatespace,&Value,sizeof(Value),&offset); if (Value != 0x23D8A6C8) { return 0; } ReadFromMem( savestatespace,&SaveRDRAMSize,sizeof(SaveRDRAMSize),&offset); ReadFromMem( savestatespace,&LoadHeader,0x40,&offset); state->Timers->CurrentTimerType = -1; state->Timers->Timer = 0; for (count = 0; count < MaxTimers; count ++) { state->Timers->Active[count] = 0; } //fix rdram size if (SaveRDRAMSize != state->RdramSize) { // dothis :) } state->RdramSize = SaveRDRAMSize; ReadFromMem( savestatespace,&Value,sizeof(Value),&offset); ChangeTimer(state,ViTimer,Value); ReadFromMem( savestatespace,&state->PROGRAM_COUNTER,sizeof(state->PROGRAM_COUNTER),&offset); ReadFromMem( savestatespace,state->GPR,sizeof(int64_t)*32,&offset); ReadFromMem( savestatespace,state->FPR,sizeof(int64_t)*32,&offset); ReadFromMem( savestatespace,state->CP0,sizeof(uint32_t)*32,&offset); ReadFromMem( savestatespace,state->FPCR,sizeof(uint32_t)*32,&offset); ReadFromMem( savestatespace,&state->HI,sizeof(int64_t),&offset); ReadFromMem( savestatespace,&state->LO,sizeof(int64_t),&offset); ReadFromMem( savestatespace,state->RegRDRAM,sizeof(uint32_t)*10,&offset); ReadFromMem( savestatespace,state->RegSP,sizeof(uint32_t)*10,&offset); ReadFromMem( savestatespace,state->RegDPC,sizeof(uint32_t)*10,&offset); ReadFromMem( savestatespace,state->RegMI,sizeof(uint32_t)*4,&offset); ReadFromMem( savestatespace,state->RegVI,sizeof(uint32_t)*14,&offset); ReadFromMem( savestatespace,state->RegAI,sizeof(uint32_t)*6,&offset); ReadFromMem( savestatespace,state->RegPI,sizeof(uint32_t)*13,&offset); ReadFromMem( savestatespace,state->RegRI,sizeof(uint32_t)*8,&offset); ReadFromMem( savestatespace,state->RegSI,sizeof(uint32_t)*4,&offset); ReadFromMem( savestatespace,state->tlb,sizeof(TLB)*32,&offset); ReadFromMem( savestatespace,(uint8_t*)state->PIF_Ram,0x40,&offset); ReadFromMem( savestatespace,state->RDRAM,SaveRDRAMSize,&offset); ReadFromMem( savestatespace,state->DMEM,0x1000,&offset); ReadFromMem( savestatespace,state->IMEM,0x1000,&offset); state->CP0[32] = 0; SetupTLB(state); ChangeCompareTimer(state); AI_STATUS_REG = 0; AiDacrateChanged(state, AI_DACRATE_REG); // StartAiInterrupt(state); SetFpuLocations(state); // important if FR=1 return 1; }
int CAttributeItem::SelectCandidata(void) { ReadFromMem(); return (m_lstCandidata.SelectCandidata()); }