INT32 Sf2mdtScanSound(INT32 nAction, INT32 *pnMin) { if (nAction & ACB_MEMORY_RAM) { struct BurnArea ba; memset(&ba, 0, sizeof(ba)); ba.Data = Sf2mdtZ80Ram; ba.nLen = 0x00800; ba.szName = "Sf2mdtZ80Ram"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { ZetScan(nAction); BurnYM2151Scan(nAction); MSM5205Scan(nAction, pnMin); SCAN_VAR(Sf2mdtZ80BankAddress); SCAN_VAR(Sf2mdtSoundLatch); SCAN_VAR(Sf2mdtSampleBuffer1); SCAN_VAR(Sf2mdtSampleBuffer2); SCAN_VAR(Sf2mdtSampleSelect1); SCAN_VAR(Sf2mdtSampleSelect2); SCAN_VAR(Sf2mdtSoundPos); } return 0; }
static int rastanScan(int nAction,int *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x029521; } if (nAction & ACB_VOLATILE) { // Scan volatile ram memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd-RamStart; ba.szName = "All Ram"; BurnAcb(&ba); SekScan(nAction); // Scan 68000 state ZetOpen(0); ZetScan(nAction); // Scan Z80 state ZetClose(); MSM5205Scan(0, nAction); BurnYM2151Scan(nAction); // Scan critical driver variables SCAN_VAR(Z80Bank); SCAN_VAR(nCurrentBank); SCAN_VAR(nCyclesTotal); SCAN_VAR(nCyclesSegment); SCAN_VAR(RastanInputPort0); SCAN_VAR(RastanInputPort1); SCAN_VAR(RastanInputPort2); SCAN_VAR(RastanInput); SCAN_VAR(RastanDip); } return 0; }