static INT32 DrvScan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; if (pnMin != NULL) { *pnMin = 0x029707; } if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); ZetScan(nAction); BurnYM3812Scan(nAction, pnMin); SCAN_VAR(nCyclesDone); SCAN_VAR(demonwld_hack); } return 0; }
static INT32 DrvScan(INT32 nAction, INT32 *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x020902; } EEPROMScan(nAction, pnMin); // Scan EEPROM if (nAction & ACB_VOLATILE) { // Scan volatile ram memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd - RamStart; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); // scan 68000 states YMZ280BScan(); SCAN_VAR(nVideoIRQ); SCAN_VAR(nSoundIRQ); SCAN_VAR(nUnknownIRQ); SCAN_VAR(bVBlank); SCAN_VAR(korokoro_hopper); CaveScanGraphics(); } return 0; }
static INT32 DrvScan(INT32 nAction,INT32 *pnMin) { struct BurnArea ba; if (pnMin) { *pnMin = 0x029732; } if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.szName = "All Ram"; BurnAcb(&ba); SekScan(nAction); YMZ280BScan(); KonamiICScan(nAction); SCAN_VAR(control_data); SCAN_VAR(control_data2); } return 0; }
// Scan ram static INT32 DrvScan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x029497; } 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 states ZetScan(nAction); // Scan Z80 MSM6295Scan(0, nAction); BurnYM2151Scan(nAction); ToaScanGP9001(nAction, pnMin); SCAN_VAR(DrvInput); } return 0; }
// Scan RAM static int SupermanScan(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); } if (nAction & ACB_DRIVER_DATA) { SekScan(nAction); // Scan 68000 ZetScan(nAction); // Scan Z80 BurnYM2610Scan(nAction, pnMin); // Scan critical driver variables SCAN_VAR(SupermanInput); SCAN_VAR(SupermanDip); SCAN_VAR(Z80Bank); SCAN_VAR(nCurrentBank); SCAN_VAR(nCycles68KSync); } return 0; }
// Scan ram static INT32 DrvScan(INT32 nAction,INT32 *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x020997; } 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 states MSM6295Scan(0, nAction); MSM6295Scan(1, nAction); ToaScanGP9001(nAction, pnMin); SCAN_VAR(nPreviousOkiBank); } if (nAction & ACB_WRITE) { INT32 nBank = nPreviousOkiBank; nPreviousOkiBank = -1; oki_set_bank(nBank); } return 0; }
// Scan ram static INT32 DrvScan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; if (pnMin != NULL) { // Return minimum compatible version *pnMin = 0x029402; } if (nAction & ACB_VOLATILE) { // Scan volatile ram memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd - RamStart; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); // scan 68000 states ZetScan(nAction); // Scan Z80 BurnYM3812Scan(nAction, pnMin); SCAN_VAR(DrvInput); SCAN_VAR(nCyclesDone); } return 0; }
// Scan ram static int DrvScan(int nAction, int *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x020902; } EEPROMScan(nAction, pnMin); // Scan EEPROM if (nAction & ACB_VOLATILE) { // Scan volatile ram memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd - RamStart; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); // scan 68000 states MSM6295Scan(0, nAction); MSM6295Scan(1, nAction); SCAN_VAR(nVideoIRQ); SCAN_VAR(nSoundIRQ); SCAN_VAR(nUnknownIRQ); SCAN_VAR(bVBlank); CaveScanGraphics(); SCAN_VAR(DrvInput); } return 0; }
// Scan ram static INT32 DrvScan(INT32 nAction,INT32 *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x020997; } 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 states ToaScanGP9001(nAction, pnMin); #ifdef TOAPLAN_SOUND_SAMPLES_HACK BurnSampleScan(nAction, pnMin); #endif ToaRecalcPalette = 1; bDrawScreen = true; // get background back ? } return 0; }
// Scan the current state of the CPS1/2 machine INT32 CpsAreaScan(INT32 nAction, INT32 *pnMin) { struct BurnArea ba; if (CpsMem == NULL) return 1; if (pnMin) // Return minimum compatible version *pnMin = 0x029521; if (nAction & ACB_MEMORY_ROM) { memset(&ba, 0, sizeof(ba)); ba.Data = CpsRom; ba.nLen = nCpsRomLen; ba.szName = "CpsRom"; BurnAcb(&ba); if (nCpsZRomLen) { ba.Data = CpsZRom; ba.nLen = nCpsZRomLen; ba.szName = "CpsZRom"; BurnAcb(&ba); } } EEPROMScan(nAction, pnMin); if (nAction & ACB_MEMORY_RAM) { ScanRam(); memset(&ba, 0, sizeof(ba)); ba.Data = CpsRam660; ba.nLen = 0x004000; ba.szName = "CpsRam660"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { // Scan volatile variables/registers/RAM SekScan(nAction); // Scan 68000 state if (nAction & ACB_WRITE) { // Palette could have changed CpsRecalcPal = 1; } } if (!Cps2DisableQSnd) { // Scan QSound chips QsndScan(nAction); } if (CpsMemScanCallbackFunction) { CpsMemScanCallbackFunction(nAction, pnMin); } return 0; }
// Scan ram static INT32 drvScan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x029496; } if (nAction & ACB_VOLATILE) { // Scan volatile ram memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd - RamStart; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); // Scan 68000 ZetScan(nAction); // Scan Z80 SCAN_VAR(nCurrentBank); MSM6295Scan(0, nAction); MSM6295Scan(1, nAction); BurnYM2151Scan(nAction); ToaScanGP9001(nAction, pnMin); SCAN_VAR(nIRQPending); SCAN_VAR(nTextROMStatus); SCAN_VAR(drvInput); if (nAction & ACB_WRITE) { INT32 n = nTextROMStatus; nTextROMStatus = -1; SekOpen(0); Map68KTextROM(n); SekClose(); n = nCurrentBank; nCurrentBank = -1; ZetOpen(0); drvZ80Bankswitch(n); ZetClose(); } } return 0; }
int TmntScan(int nAction,int *pnMin) { if (nAction&4) // Scan volatile ram { struct BurnArea ba; if (pnMin!=NULL) *pnMin=0x010601; // Return minimum compatible version memset(&ba,0,sizeof(ba)); ba.Data=RamStart; ba.nLen=RamEnd-RamStart; ba.szName="All Ram"; BurnAcb(&ba); SekScan(nAction&3); // scan 68000 states SCAN_VAR(bInt5); } return 0; }
static int twinhawkScan(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); } if (nAction & ACB_DRIVER_DATA) { SekScan(nAction); // Scan 68000 state ZetOpen(0); ZetScan(nAction); // Scan Z80 state ZetClose(); SCAN_VAR(nCyclesTotal); SCAN_VAR(nCyclesSegment); // Scan critical driver variables SCAN_VAR(twinhawkInputPort0); SCAN_VAR(twinhawkInputPort1); SCAN_VAR(twinhawkInputPort2); SCAN_VAR(twinhawkInput); SCAN_VAR(twinhawkDip); SCAN_VAR(Z80Bank); SCAN_VAR(nCurrentBank); BurnYM2151Scan(nAction); } return 0; }
// Scan ram static int DrvScan(int nAction,int *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x020997; } 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 states ToaScanGP9001(nAction, pnMin); } return 0; }
// Scan ram static INT32 DrvScan(INT32 nAction,INT32 *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x029497; } if (nAction & ACB_VOLATILE) { // Scan volatile data memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd-RamStart; ba.szName = "All Ram"; BurnAcb(&ba); SekScan(nAction); // scan 68000 states ZetScan(nAction); // Scan Z80 SCAN_VAR(nCurrentBank); MSM6295Scan(0, nAction); BurnYM2151Scan(nAction); ToaScanGP9001(nAction, pnMin); SCAN_VAR(DrvInput); SCAN_VAR(nSoundCommand); SCAN_VAR(nIRQPending); if (nAction & ACB_WRITE) { INT32 nBank = nCurrentBank; nCurrentBank = -1; ZetOpen(0); // March 28, 2014: Fix for crash on savestate load - dink drvZ80Bankswitch(nBank); ZetClose(); } } return 0; }
static INT32 DrvScan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; if (pnMin != NULL) { *pnMin = 0x029707; } if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); #ifdef TOAPLAN_SOUND_SAMPLES_HACK BurnSampleScan(nAction, pnMin); SCAN_VAR(FadeoutReady); SCAN_VAR(FadeoutStop); SCAN_VAR(Playing1); SCAN_VAR(Playing2); SCAN_VAR(Play1); SCAN_VAR(Counter1); SCAN_VAR(Vol1); SCAN_VAR(Wait); SCAN_VAR(Start); SCAN_VAR(Start2); #endif SCAN_VAR(nCyclesDone); ToaScanBCU2(nAction, pnMin); ToaRecalcPalette = 1; bDrawScreen = true; // get background back ? } return 0; }
static int DrvScan(int nAction, int* pnMin) { struct BurnArea ba; if (pnMin != NULL) { *pnMin = 0x029707; } if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.szName = "RAM"; BurnAcb(&ba); SekScan(nAction); // BurnYM3812Scan(nAction, pnMin); SCAN_VAR(nCyclesDone); } return 0; }
// Scan ram static int DrvScan(int nAction,int *pnMin) { struct BurnArea ba; if (pnMin) { // Return minimum compatible version *pnMin = 0x029497; } if (nAction & ACB_VOLATILE) { // Scan volatile data memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd-RamStart; ba.szName = "All Ram"; BurnAcb(&ba); SekScan(nAction); // scan 68000 states ZetScan(nAction); // Scan Z80 SCAN_VAR(nCurrentBank); MSM6295Scan(0, nAction); BurnYM2151Scan(nAction); ToaScanGP9001(nAction, pnMin); SCAN_VAR(DrvInput); SCAN_VAR(nSoundCommand); SCAN_VAR(nIRQPending); if (nAction & ACB_WRITE) { int nBank = nCurrentBank; nCurrentBank = -1; drvZ80Bankswitch(nBank); } } return 0; }
static int DrvScan(int nAction,int *pnMin) { if (pnMin) *pnMin = 0x029671; struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { // Scan all memory, devices & variables memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd-RamStart; ba.szName = "All Ram"; BurnAcb(&ba); if (nAction & ACB_WRITE) bRecalcPalette = 1; } if (nAction & ACB_DRIVER_DATA) { SekScan(nAction); // Scan 68000 state SCAN_VAR(DrvInput); SCAN_VAR(scrollx); SCAN_VAR(scrolly); SCAN_VAR(m6295bank); MSM6295Scan(0, nAction); MSM6295Scan(1, nAction); if (nAction & ACB_WRITE) { } } return 0; }
// Scan the current state of the CPS1/2 machine INT32 CpsAreaScan(INT32 nAction, INT32 *pnMin) { struct BurnArea ba; if (CpsMem == NULL) { return 1; } if (pnMin) { // Return minimum compatible version *pnMin = 0x029521; } if (nAction & ACB_MEMORY_ROM) { memset(&ba, 0, sizeof(ba)); ba.Data = CpsRom; ba.nLen = nCpsRomLen; ba.szName = "CpsRom"; BurnAcb(&ba); if (nCpsZRomLen) { ba.Data = CpsZRom; ba.nLen = nCpsZRomLen; ba.szName = "CpsZRom"; BurnAcb(&ba); } } if (Cps == 2 || Cps1Qs == 1 || PangEEP == 1 || CpsBootlegEEPROM == 1) { // Scan EEPROM EEPROMScan(nAction, pnMin); } if (nAction & ACB_MEMORY_RAM) { ScanRam(); if (Cps == 2) { memset(&ba, 0, sizeof(ba)); ba.Data = CpsRam660; ba.nLen = 0x004000; ba.szName = "CpsRam660"; BurnAcb(&ba); } } if (nAction & ACB_DRIVER_DATA) { // Scan volatile variables/registers/RAM SekScan(nAction); // Scan 68000 state if (Cps1OverrideLayers) { SCAN_VAR(nCps1Layers); SCAN_VAR(nCps1LayerOffs); } if (nAction & ACB_WRITE) { // Palette could have changed CpsRecalcPal = 1; } } if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) { // Scan QSound chips QsndScan(nAction); } else { // Scan PSound chips if ((Cps & 1) && !Cps1DisablePSnd) PsndScan(nAction); } if (CpsMemScanCallbackFunction) { CpsMemScanCallbackFunction(nAction, pnMin); } return 0; }