Ejemplo n.º 1
0
static int snapcallback_memory_loader ( const struct xemu_snapshot_definition_st *def, struct xemu_snapshot_block_st *block )
{
	if (block->block_version != C65_MEMORY_BLOCK_VERSION || block->sub_counter != 0 || block->sub_size > sizeof(memory))
		RETURN_XSNAPERR_USER("Bad memory block syntax ver=%d, subcount=%d, size=%d", block->block_version, block->sub_counter, block->sub_size);
	memset(memory, 0xFF, sizeof memory);
	return xemusnap_read_file(memory, block->sub_size);	// read that damn memory dump
}
Ejemplo n.º 2
0
static int snapcallback_memory_loader ( const struct xemu_snapshot_definition_st *def, struct xemu_snapshot_block_st *block )
{
	const struct memblock_st *mem = (const struct memblock_st *)def->user_data;
	if (block->block_version != M65_MEMORY_BLOCK_VERSION || block->sub_counter != 0 || block->sub_size > mem->size)
		RETURN_XSNAPERR_USER("Bad memory block syntax @ %s", def->idstr);
	memset(mem->data, 0xFF, mem->size);
	return xemusnap_read_file(mem->data, block->sub_size);	// read that damn memory dump
}
Ejemplo n.º 3
0
Archivo: sdcard.c Proyecto: MEGA65/xemu
int sdcard_snapshot_load_state ( const struct xemu_snapshot_definition_st *def, struct xemu_snapshot_block_st *block )
{
	Uint8 buffer[SNAPSHOT_SDCARD_BLOCK_SIZE];
	int a;
	if (block->block_version != SNAPSHOT_SDCARD_BLOCK_VERSION || block->sub_counter || block->sub_size != sizeof buffer)
		RETURN_XSNAPERR_USER("Bad SD-Card block syntax");
	a = xemusnap_read_file(buffer, sizeof buffer);
	if (a) return a;
	/* loading state ... */
	memcpy(sd_sector_bytes, buffer, 4);
	memcpy(sd_d81_img1_start, buffer + 4, 4);
	mounted = (int)P_AS_BE32(buffer + 8);
	sdcard_bytes_read = (int)P_AS_BE32(buffer + 12);
	sd_is_read_only = (int)P_AS_BE32(buffer + 16);
	d81_is_read_only = (int)P_AS_BE32(buffer + 20);
	use_d81 = (int)P_AS_BE32(buffer + 24);
	sd_status = buffer[0xFF];
	memcpy(sd_buffer, buffer + 0x100, sizeof sd_buffer);
	return 0;
}