void PBI_MIO_StateSave(void) { StateSav_SaveINT(&PBI_MIO_enabled, 1); if (PBI_MIO_enabled) { StateSav_SaveFNAME(mio_scsi_disk_filename); StateSav_SaveFNAME(mio_rom_filename); StateSav_SaveINT(&mio_ram_size, 1); StateSav_SaveINT(&mio_ram_bank_offset, 1); StateSav_SaveUBYTE(mio_ram, mio_ram_size); StateSav_SaveUBYTE(&mio_rom_bank, 1); StateSav_SaveINT(&mio_ram_enabled, 1); } }
void PBI_StateSave(void) { StateSav_SaveUBYTE(&D1FF_LATCH, 1); StateSav_SaveINT(&PBI_D6D7ram, 1); StateSav_SaveINT(&PBI_IRQ, 1); }
int StateSav_SaveAtariState(const char *filename, const char *mode, UBYTE SaveVerbose) { UBYTE StateVersion = SAVE_VERSION_NUMBER; if (StateFile != NULL) { GZCLOSE(StateFile); StateFile = NULL; } nFileError = Z_OK; StateFile = GZOPEN(filename, mode); if (StateFile == NULL) { Log_print("Could not open %s for state save.", filename); GetGZErrorText(); return FALSE; } if (GZWRITE(StateFile, "ATARI800", 8) == 0) { GetGZErrorText(); GZCLOSE(StateFile); StateFile = NULL; return FALSE; } StateSav_SaveUBYTE(&StateVersion, 1); StateSav_SaveUBYTE(&SaveVerbose, 1); /* The order here is important. Atari800_StateSave must be first because it saves the machine type, and decisions on what to save/not save are made based off that later in the process */ Atari800_StateSave(); CARTRIDGE_StateSave(); SIO_StateSave(); ANTIC_StateSave(); CPU_StateSave(SaveVerbose); GTIA_StateSave(); PIA_StateSave(); POKEY_StateSave(); #ifdef XEP80_EMULATION XEP80_StateSave(); #else { int local_xep80_enabled = FALSE; StateSav_SaveINT(&local_xep80_enabled, 1); } #endif /* XEP80_EMULATION */ PBI_StateSave(); #ifdef PBI_MIO PBI_MIO_StateSave(); #else { int local_mio_enabled = FALSE; StateSav_SaveINT(&local_mio_enabled, 1); } #endif /* PBI_MIO */ #ifdef PBI_BB PBI_BB_StateSave(); #else { int local_bb_enabled = FALSE; StateSav_SaveINT(&local_bb_enabled, 1); } #endif /* PBI_BB */ #ifdef PBI_XLD PBI_XLD_StateSave(); #else { int local_xld_enabled = FALSE; StateSav_SaveINT(&local_xld_enabled, 1); } #endif /* PBI_XLD */ #ifdef DREAMCAST DCStateSave(); #endif if (GZCLOSE(StateFile) != 0) { StateFile = NULL; return FALSE; } StateFile = NULL; if (nFileError != Z_OK) return FALSE; return TRUE; }