Example #1
0
bool BackupDevice::load_state(EMUFILE* is)
{
	u32 version;
	if(read32le(&version,is)!=1) return false;
	if(version>=0)
	{
		readbool(&write_enable,is);
		read32le(&com,is);
		read32le(&addr_size,is);
		read32le(&addr_counter,is);
		u32 temp;
		read32le(&temp,is);
		state = (STATE)temp;
		readbuffer(data,is);
		readbuffer(data_autodetect,is);
	}
	if(version>=1)
		read32le(&addr,is);
	if(version>=2)
	{
		read8le(&motionInitState,is);
		read8le(&motionFlag,is);
	}

	return true;
}
Example #2
0
bool BackupDevice::load_state(EMUFILE* is)
{
	u32 version;
	u32 temp;
	std::vector<u8> data;

	if(read32le(&version,is)!=1) return false;
	if(version>=0)
	{
		readbool(&write_enable,is);
		read32le(&com,is);
		read32le(&addr_size,is);
		read32le(&addr_counter,is);
		read32le(&temp,is);
		state = (STATE)temp;
		readbuffer(data,is);
		readbuffer(data_autodetect,is);
	}
	if(version>=1)
		read32le(&addr,is);
	
	if(version>=2)
	{
		read8le(&motionInitState,is);
		read8le(&motionFlag,is);
	}

	if(version>=3)
	{
		readbool(&reset_command_state,is);
	}

	if(version>=4)
	{
		read8le(&write_protect,is);
	}

	fsize = data.size();
#ifndef _DONT_SAVE_BACKUP
	fpMC->fseek(0, SEEK_SET);
	if(data.size()!=0)
		fwrite((char*)&data[0], 1, fsize, fpMC->get_fp());
	ensure(data.size(), fpMC);
#endif

	if(version>=5)
	{
		read32le(&temp,is);
		fpMC->fseek(temp, SEEK_SET);
	}
	else
		fpMC->fseek(addr, SEEK_SET);

	return true;
}
Example #3
0
bool SNAPSHOT::skipLoad(EMUFILE *is)
{
	uint8 tmp1;
	// skip vars
	if (is->fseek(sizeof(int) +	// keyframe
				sizeof(int) +	// start_frame
				sizeof(int) +	// end_frame
				sizeof(int) +	// consecutivenessTag
				sizeof(int) +	// recordedJoypadDifferenceBits
				sizeof(int)		// mod_type
				, SEEK_CUR)) return true;
	// skip description
	if (!read8le(&tmp1, is)) return true;
	if (tmp1 >= SNAPSHOT_DESCRIPTION_MAX_LEN) return true;
	if (is->fseek(tmp1, SEEK_CUR) != 0) return true;
	// skip InputLog data
	if (inputlog.skipLoad(is)) return true;
	// skip LagLog data
	if (laglog.skipLoad(is)) return true;
	// skip Markers data
	if (markers.skipLoad(is)) return true;
	return false;
}
Example #4
0
// returns true if couldn't load
bool SNAPSHOT::load(EMUFILE *is)
{
	uint8 tmp;
	// read vars
	if (!read32le(&keyFrame, is)) return true;
	if (!read32le(&startFrame, is)) return true;
	if (!read32le(&endFrame, is)) return true;
	if (!read32le(&consecutivenessTag, is)) return true;
	if (!read32le(&recordedJoypadDifferenceBits, is)) return true;
	if (!read32le(&modificationType, is)) return true;
	// read description
	if (!read8le(&tmp, is)) return true;
	if (tmp >= SNAPSHOT_DESCRIPTION_MAX_LEN) return true;
	if (is->fread(&description[0], tmp) != tmp) return true;
	description[tmp] = 0;		// add '0' because it wasn't saved in the file
	// load InputLog data
	if (inputlog.load(is)) return true;
	// load LagLog data
	if (laglog.load(is)) return true;
	// load Markers data
	if (markers.load(is)) return true;
	return false;
}