int cbm2_snapshot_write(const char *name, int save_roms, int save_disks, int event_mode) { snapshot_t *s; s = snapshot_create(name, SNAP_MAJOR, SNAP_MINOR, machine_get_name()); if (s == NULL) { return -1; } sound_snapshot_prepare(); if (maincpu_snapshot_write_module(s) < 0 || cbm2_snapshot_write_module(s, save_roms) < 0 || crtc_snapshot_write_module(s) < 0 || ciacore_snapshot_write_module(machine_context.cia1, s) < 0 || tpicore_snapshot_write_module(machine_context.tpi1, s) < 0 || tpicore_snapshot_write_module(machine_context.tpi2, s) < 0 || acia1_snapshot_write_module(s) < 0 || sid_snapshot_write_module(s) < 0 || drive_snapshot_write_module(s, save_disks, save_roms) < 0 || event_snapshot_write_module(s, event_mode) < 0 || tape_snapshot_write_module(s, save_disks) < 0 || keyboard_snapshot_write_module(s) || joystick_snapshot_write_module(s)) { snapshot_close(s); ioutil_remove(name); return -1; } snapshot_close(s); return 0; }
int aciacart_snapshot_write_module(struct snapshot_s *p) { #if defined(HAVE_RS232DEV) || defined(HAVE_RS232NET) if (acia1_snapshot_write_module(p) < 0) { return -1; } #endif return 0; }
int pet_snapshot_write(const char *name, int save_roms, int save_disks, int event_mode) { snapshot_t *s; int ef = 0; s = snapshot_create(name, SNAP_MAJOR, SNAP_MINOR, machine_name); if (s == NULL) { return -1; } sound_snapshot_prepare(); if (maincpu_snapshot_write_module(s) < 0 || cpu6809_snapshot_write_module(s) < 0 || pet_snapshot_write_module(s, save_roms) < 0 || crtc_snapshot_write_module(s) < 0 || pia1_snapshot_write_module(s) < 0 || pia2_snapshot_write_module(s) < 0 || petdww_snapshot_write_module(s) < 0 || viacore_snapshot_write_module(machine_context.via, s) < 0 || drive_snapshot_write_module(s, save_disks, save_roms) < 0 || event_snapshot_write_module(s, event_mode) < 0 || tapeport_snapshot_write_module(s, save_disks) < 0 || keyboard_snapshot_write_module(s) < 0 || userport_snapshot_write_module(s) < 0) { ef = -1; } if ((!ef) && petres.superpet) { ef = acia1_snapshot_write_module(s); } snapshot_close(s); if (ef) { ioutil_remove(name); } return ef; }