gboolean savestate_load_from_file(const gchar *file, GError **err) { g_return_val_if_fail(err == NULL || *err == NULL, FALSE); gzFile gzFile = gzopen(file, "rb"); if (gzFile == NULL) { SaveStateError code = G_SAVESTATE_ERROR_FAILED; if (errno == ENOENT) { code = G_SAVESTATE_NOT_FOUND; } g_set_error(err, SAVESTATE_ERROR, code, "Failed to load state: %s", g_strerror(errno)); return FALSE; } gboolean res = CPUReadState(gzFile, err); gzclose(gzFile); return res; }
bool retro_unserialize(const void *data, size_t size) { return CPUReadState((uint8_t*)data, size); }