s32 psxRcntFreeze( gzFile f, s32 Mode ) { gzfreeze( &rcnts, sizeof(rcnts) ); gzfreeze( &hSyncCount, sizeof(hSyncCount) ); gzfreeze( &spuSyncCount, sizeof(spuSyncCount) ); gzfreeze( &psxNextCounter, sizeof(psxNextCounter) ); gzfreeze( &psxNextsCounter, sizeof(psxNextsCounter) ); return 0; }
s32 psxRcntFreeze( gzFile f, s32 Mode ) { gzfreeze( &rcnts, sizeof(rcnts) ); gzfreeze( &hSyncCount, sizeof(hSyncCount) ); gzfreeze( &spuSyncCount, sizeof(spuSyncCount) ); gzfreeze( &psxNextCounter, sizeof(psxNextCounter) ); gzfreeze( &psxNextsCounter, sizeof(psxNextsCounter) ); if (Mode == 0) { psxHsyncCalculate(); } return 0; }
s32 psxRcntFreeze( gzFile f, s32 Mode ) { gzfreeze( &rcnts, sizeof(rcnts) ); gzfreeze( &hSyncCount, sizeof(hSyncCount) ); gzfreeze( &spuSyncCount, sizeof(spuSyncCount) ); gzfreeze( &psxNextCounter, sizeof(psxNextCounter) ); gzfreeze( &psxNextsCounter, sizeof(psxNextsCounter) ); if (Mode == 0) { psxHsyncCalculate(); // iCB: recalculate target count in case overclock is changed rcnts[3].target = (PSXCLK / (FrameRate[Config.PsxType] * HSyncTotal[Config.PsxType])); if(rcnts[1].rate != 1) rcnts[1].rate = (PSXCLK / (FrameRate[Config.PsxType] * HSyncTotal[Config.PsxType])); } return 0; }
int cdrFreeze(gzFile f, int Mode) { uintptr_t tmp; gzfreeze(&cdr, sizeof(cdr)); if (Mode == 1) tmp = cdr.pTransfer - cdr.Transfer; gzfreezel(&tmp); if (Mode == 0) cdr.pTransfer = cdr.Transfer + tmp; return 0; }
int sioFreeze(void *f, int Mode) { gzfreeze(buf, sizeof(buf)); gzfreeze(&StatReg, sizeof(StatReg)); gzfreeze(&ModeReg, sizeof(ModeReg)); gzfreeze(&CtrlReg, sizeof(CtrlReg)); gzfreeze(&BaudReg, sizeof(BaudReg)); gzfreeze(&bufcount, sizeof(bufcount)); gzfreeze(&parp, sizeof(parp)); gzfreeze(&mcdst, sizeof(mcdst)); gzfreeze(&rdwr, sizeof(rdwr)); gzfreeze(&adrH, sizeof(adrH)); gzfreeze(&adrL, sizeof(adrL)); gzfreeze(&padst, sizeof(padst)); return 0; }