void K053247Scan(INT32 nAction) { struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = K053247Ram; ba.nLen = 0x1000; ba.szName = "K053247 Ram"; BurnAcb(&ba); ba.Data = K053247Regs; ba.nLen = 0x0010 * sizeof(UINT16); ba.szName = "K053247 Regs"; BurnAcb(&ba); ba.Data = K053246Regs; ba.nLen = 0x0008; ba.szName = "K053246 Regs"; BurnAcb(&ba); SCAN_VAR(K053246_OBJCHA_line); SCAN_VAR(K053247_wraparound); } }
// 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; }
static INT32 svg_asic27aScan(INT32 nAction,INT32 *) { struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { ba.Data = PGMARMShareRAM; ba.nLen = 0x0020000; ba.nAddress = 0x400000; ba.szName = "ARM SHARE RAM #0 (address 500000)"; BurnAcb(&ba); ba.Data = PGMARMShareRAM2; ba.nLen = 0x0020000; ba.nAddress = 0x500000; ba.szName = "ARM SHARE RAM #1"; BurnAcb(&ba); ba.Data = PGMARMRAM0; ba.nLen = 0x0000400; ba.nAddress = 0; ba.szName = "ARM RAM 0"; BurnAcb(&ba); ba.Data = PGMARMRAM1; ba.nLen = 0x0040000; ba.nAddress = 0; ba.szName = "ARM RAM 1"; BurnAcb(&ba); ba.Data = PGMARMRAM2; ba.nLen = 0x0000400; ba.nAddress = 0; ba.szName = "ARM RAM 2"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { Arm7Scan(nAction); SCAN_VAR(asic27a_68k_to_arm); SCAN_VAR(asic27a_arm_to_68k); SCAN_VAR(svg_ram_sel); } if (nAction & ACB_WRITE) { SekOpen(0); svg_set_ram_bank(svg_ram_sel); SekClose(); } return 0; }
int konamiCpuScan(int nAction) { #if defined FBA_DEBUG if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konamiCpuScan called without init\n")); #endif struct BurnArea ba; int (*irq_callback)(int irqline); void (*setlines_callback)( int lines ); irq_callback = konami.irq_callback; setlines_callback = konami.setlines_callback; if (nAction & ACB_DRIVER_DATA) { memset(&ba, 0, sizeof(ba)); ba.Data = (unsigned char*)&konami; ba.nLen = sizeof(konami_Regs); ba.szName = "All Registers"; BurnAcb(&ba); SCAN_VAR(ea.w.l); SCAN_VAR(ea.d); } konami.irq_callback = irq_callback; konami.setlines_callback = setlines_callback; 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; }
// 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; }
INT32 UPD7759Scan(INT32 chip, INT32 nAction,INT32 *pnMin) { #if defined FBA_DEBUG if (!DebugSnd_UPD7759Initted) bprintf(PRINT_ERROR, _T("UPD7759Scan called without init\n")); if (chip > nNumChips) bprintf(PRINT_ERROR, _T("UPD7759Scan called with invalid chip %x\n"), chip); #endif struct BurnArea ba; char szName[16]; if ((nAction & ACB_DRIVER_DATA) == 0) { return 1; } if (pnMin != NULL) { *pnMin = 0x029680; } Chip = Chips[chip]; sprintf(szName, "UPD7759 %d", chip); ba.Data = &Chip; ba.nLen = sizeof(struct upd7759_chip); ba.nAddress = 0; ba.szName = szName; BurnAcb(&ba); return 0; }
INT32 AY8910Scan(INT32 nAction, INT32* pnMin) { struct BurnArea ba; INT32 i; #if defined FBA_DEBUG #ifdef __GNUC__ if (!DebugSnd_AY8910Initted) bprintf(PRINT_ERROR, _T("AY8910Scan called without init\n")); #endif #endif if ((nAction & ACB_DRIVER_DATA) == 0) { return 1; } if (pnMin && *pnMin < 0x029496) { // Return minimum compatible version *pnMin = 0x029496; } for (i = 0; i < num; i++) { char szName[16]; sprintf(szName, "AY8910 #%d", i); ba.Data = &AYPSG[i]; ba.nLen = sizeof(struct AY8910); ba.nAddress = 0; ba.szName = szName; BurnAcb(&ba); } return 0; }
static INT32 DrvScan(INT32 nAction, INT32 *pnMin) { struct BurnArea ba; if (pnMin != NULL) { *pnMin = 0x029707; } if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd-AllRam; ba.szName = "All Ram"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { ZetScan(nAction); MSM6295Scan(0, nAction); } if (nAction & ACB_WRITE) { ZetOpen(0); bankswitch(banks[0]); vidram_bankswitch(banks[1]); ZetClose(); oki_bankswitch(banks[2]); DrvRecalc = 1; } return 0; }
// Scan the current PSound z80 state int PsndZScan(int nAction) { struct BurnArea ba; int i=0; ZetScan(nAction); // Scan Z80 SCAN_VAR(nTimerPeriod) SCAN_VAR(nNextTimer) SCAN_VAR(FmReg) SCAN_VAR(nFmSel) SCAN_VAR(nPsndZBank) // Scan Ram memset(&ba,0,sizeof(ba)); ba.szName="PsndZRam"; ba.Data=PsndZRam; ba.nLen=0x800; BurnAcb(&ba); if (nAction&2) { PsndZBankMap(); // If write, bank could have changed CalcTimerPeriod(); // If write, timer registers could have changed // Resend all the registers to the ym2151 if (bPsmOkay) { for (i=0; i<0x100; i++) { YM2151WriteReg(0,i,FmReg[i]); } } } return 0; }
static int DrvScan(int nAction, int *pnMin) { struct BurnArea ba; if (pnMin != NULL) { *pnMin = 0x029707; } if (nAction & ACB_MEMORY_RAM) { ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.nAddress = 0; ba.szName = "All RAM"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { Sh2Scan(nAction); BurnYMF278BScan(nAction, pnMin); SCAN_VAR(sample_offs); } if (nAction & ACB_WRITE) { previous_graphics_bank = -1; graphics_bank(); } return 0; }
static int DrvScan(int nAction,int *pnMin) { struct BurnArea ba; if (pnMin) { *pnMin = 0x029706; } if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = AllRam; ba.nLen = RamEnd - AllRam; ba.szName = "All RAM"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { M6809Scan(nAction); ZetScan(nAction); BurnYM2203Scan(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 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 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; }
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; }
// 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 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; }
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; }
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; }
// 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; }
void K054000Scan(INT32 nAction) { struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = K054000Ram; ba.nLen = 0x20; ba.szName = "K054000 Ram"; BurnAcb(&ba); } }
void K053250Scan(INT32 nAction) { struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = K053250Ram; ba.nLen = 0x6000; ba.szName = "K053250 Ram"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { ba.Data = regs; ba.nLen = 8; ba.szName = "K053250 Regs"; BurnAcb(&ba); SCAN_VAR(page); } }
static int DrvScan(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 = Rom + 0x0000; ba.nLen = 0x0400; ba.szName = "Work Ram"; BurnAcb(&ba); ba.Data = Rom + 0x8000; ba.nLen = 0x0400; ba.szName = "Video Ram"; BurnAcb(&ba); ba.Data = BankRam; ba.nLen = 0x0400; ba.szName = "Bank Ram"; BurnAcb(&ba); m6502Scan(nAction); // Scan m6502 AY8910Scan(nAction, pnMin); // Scan AY8910 // Scan critical driver variables SCAN_VAR(tile_bank); SCAN_VAR(flipscreen); } return 0; }
int s2650Scan(int nAction,int */*pnMin*/) { struct BurnArea ba; if (nAction & ACB_DRIVER_DATA) { memset(&ba, 0, sizeof(ba)); ba.Data = &Store; ba.nLen = sizeof(S) * MAX_S2650; ba.szName = "All Ram"; BurnAcb(&ba); } return 0; }
void PC090OJScan(int nAction) { struct BurnArea ba; if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = PC090OJRam; ba.nLen = 0x4000; ba.szName = "PC090OJ Ram"; BurnAcb(&ba); } if (nAction & ACB_DRIVER_DATA) { SCAN_VAR(PC090OJSpriteCtrl); } }
void TimeKeeperScan(INT32 nAction) { #if defined FBA_DEBUG if (!DebugDev_TimeKprInitted) bprintf(PRINT_ERROR, _T("TimeKeeperScan called without init\n")); #endif struct BurnArea ba; if (nAction & ACB_NVRAM) { memset(&ba, 0, sizeof(ba)); ba.Data = Chip.data; ba.nLen = Chip.size; ba.szName = "Time Keeper RAM"; BurnAcb(&ba); } }
// 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; }
void necScan(int cpu, int nAction) { nec_state_t *nec_state = &sChips[cpu]; if (nAction & ACB_DRIVER_DATA) { struct BurnArea ba; char szText[] = "NEC #0"; szText[5] = '1' + cpu; memset(&ba, 0, sizeof(ba)); ba.Data = (unsigned char*)nec_state; ba.nLen = sizeof(nec_state_t); ba.szName = szText; BurnAcb(&ba); } }
static int DrvScan(int nAction, int *pnMin) { struct BurnArea ba; if (pnMin != NULL) { // Return minimum compatible version *pnMin = 0x029693; } if (nAction & ACB_MEMORY_RAM) { memset(&ba, 0, sizeof(ba)); ba.Data = RamStart; ba.nLen = RamEnd-RamStart; ba.szName = "All Ram"; BurnAcb(&ba); } return 0; }
void saa1099Scan(INT32 chip, INT32 nAction) { #if defined FBA_DEBUG if (!DebugSnd_SAA1099Initted) bprintf(PRINT_ERROR, _T("saa1099Scan called without init\n")); #endif struct BurnArea ba; saa1099_state *saa = &chips[chip]; if (nAction & ACB_VOLATILE) { memset(&ba, 0, sizeof(ba)); ba.Data = (UINT8*)saa; ba.nLen = sizeof(saa1099_state); ba.szName = "SAA data"; BurnAcb(&ba); } }