Example #1
0
bool BackupDevice::save_state(EMUFILE* os)
{
	u32 savePos = fpMC->ftell();
	std::vector<u8> data(fsize);
	fpMC->fseek(0, SEEK_SET);
	fread((char*)&data[0], 1, fsize, fpMC->get_fp());

	u32 version = 5;
	//v0
	write32le(version,os);
	write32le(write_enable,os);
	write32le(com,os);
	write32le(addr_size,os);
	write32le(addr_counter,os);
	write32le((u32)state,os);
	writebuffer(data,os);
	writebuffer(data_autodetect,os);
	//v1
	write32le(addr,os);
	//v2
	write8le(motionInitState,os);
	write8le(motionFlag,os);
	//v3
	writebool(reset_command_state,os);
	//v4
	write8le(write_protect,os);
	//v5
	write32le(savePos,os);

	fpMC->fseek(savePos, SEEK_SET);

	data.clear();

	return true;
}
Example #2
0
bool BackupDevice::save_state(EMUFILE* os)
{
	size_t elements_read;
	u32 version = 5;
	u32 savePos = fpMC->ftell();
	std::vector<u8> data(fsize);

	fpMC->fseek(0, SEEK_SET);
	if (data.size() != 0)
		elements_read = fread(&data[0], 1, fsize, fpMC->get_fp());
	if (elements_read != fsize)
		printf(
			"Expected %u bytes from saved state but read %lu.\n",
			fsize,
			elements_read
		);

	//v0
	write32le(version,os);
	write32le(write_enable,os);
	write32le(com,os);
	write32le(addr_size,os);
	write32le(addr_counter,os);
	write32le((u32)state,os);
	writebuffer(data,os);
	writebuffer(data_autodetect,os);
	//v1
	write32le(addr,os);
	//v2
	write8le(motionInitState,os);
	write8le(motionFlag,os);
	//v3
	writebool(reset_command_state,os);
	//v4
	write8le(write_protect,os);
	//v5
	write32le(savePos,os);

	fpMC->fseek(savePos, SEEK_SET);

	data.clear();

	return true;
}
Example #3
0
bool BackupDevice::save_state(EMUFILE* os)
{
	u32 version = 2;
	//v0
	write32le(version,os);
	write32le(write_enable,os);
	write32le(com,os);
	write32le(addr_size,os);
	write32le(addr_counter,os);
	write32le((u32)state,os);
	writebuffer(data,os);
	writebuffer(data_autodetect,os);
	//v1
	write32le(addr,os);
	//v2
	write8le(motionInitState,os);
	write8le(motionFlag,os);
	return true;
}
Example #4
0
void SNAPSHOT::save(EMUFILE *os)
{
	// write vars
	write32le(keyFrame, os);
	write32le(startFrame, os);
	write32le(endFrame, os);
	write32le(consecutivenessTag, os);
	write32le(recordedJoypadDifferenceBits, os);
	write32le(modificationType, os);
	// write description
	int len = strlen(description);
	write8le(len, os);
	os->fwrite(&description[0], len);
	// save InputLog data
	inputlog.save(os);
	// save LagLog data
	laglog.save(os);
	// save Markers data
	markers.save(os);
}
Example #5
0
void EMUFILE::write8le(u8* val)
{
	write8le(*val);
}