// Checked uint8_t XTDBSync(XTDBHandle* handle,uint8_t diskSync) { _S_FN(sync); if (!DBSync(handle->mainDB,diskSync)) { handle->error = XTDB_IO_ERR; return False; } /*DBClose(handle->mainDB); DBOpen(handle->mainDB,BDBOCREAT|BDBOWRITER);*/ /*HashTableIterator iter; hash_table_iterate(handle->indexes,&iter); while (hash_table_iter_has_more(&iter)) { DataBaseBE* be = hash_table_iter_next(&iter); DBSync(be); }*/ if (!XTDBForAllIDX(handle,XTDBSyncIndexIter,NULL,NULL,&diskSync)) { return False; } if (!DBSync(handle->descDB,diskSync)) { handle->error = XTDB_IO_ERR; return False; } _E_FN(sync); }
static void DBPower(CartInfo *info) { lastmc = -1; memset(DRegs,0x3F,8); DRegs[0]=DRegs[1]=0x1F; DBSync(); setprg8(0xc000,0x3E); setprg8(0xe000,0x3F); }
static int StateAction(StateMem *sm, int load, int data_only) { SFORMAT StateRegs[]={ SFARRAYN(DRegs, 8, "DREG"), SFVARN(cmd, "CMD"), SFVARN(lastA, "LAST"), SFVAR(lastmc), SFEND }; int ret = MDFNSS_StateAction(sm, load, data_only, StateRegs, "MAPR"); if(load) DBSync(); return(ret); }
uint8_t XTDBSyncIndexIter(XTDBHandle* handle,const char* indexName,DataBaseBE* db,void* voidArgs) { return DBSync(db,*((uint8_t*)voidArgs)); }