Пример #1
0
static void hiscore_load (running_machine &machine)
{
	file_error filerr;
	if (is_highscore_enabled(machine))
	{
		astring fname(machine.basename(), ".hi");
		emu_file f = emu_file(machine.options().value(OPTION_HISCORE_DIRECTORY), OPEN_FLAG_READ);
		filerr = f.open(fname);
		state.hiscores_have_been_loaded = 1;
		LOG(("hiscore_load\n"));
		if (filerr == FILERR_NONE)
		{
			memory_range *mem_range = state.mem_range;
			LOG(("loading...\n"));
			while (mem_range)
			{
				UINT8 *data = global_alloc_array(UINT8, mem_range->num_bytes);
				if (data)
				{
					/*  this buffer will almost certainly be small
                        enough to be dynamically allocated, but let's
                        avoid memory trashing just in case */
					f.read(data, mem_range->num_bytes);
					copy_to_memory (machine,mem_range->cpu, mem_range->addr, data, mem_range->num_bytes);
					global_free (data);
				}
				mem_range = mem_range->next;
			}
			f.close();
		}
	}
}
Пример #2
0
static void hiscore_load (running_machine &machine)
{
	file_error filerr;
  	emu_file f(machine.options().hiscore_directory(), OPEN_FLAG_READ);
  	filerr = f.open(machine.basename(), ".hi");				
	state.hiscores_have_been_loaded = 1;

	if (filerr == FILERR_NONE)
	{
		memory_range *mem_range = state.mem_range;

		while (mem_range)
		{
			std::unique_ptr<UINT8[]> data = std::make_unique<UINT8[]>(mem_range->num_bytes);

			if (data)
			{
				/*  this buffer will almost certainly be small
                  	enough to be dynamically allocated, but let's
                  	avoid memory trashing just in case */
          		f.read(data.get(), mem_range->num_bytes);
				copy_to_memory (machine, mem_range->cpu, mem_range->addr, data.get(), mem_range->num_bytes);
				data = nullptr;
			}
			
			mem_range = mem_range->next;
		}
		
		f.close();
	}
}
Пример #3
0
static void hs_load (void)
{
	FILE *f = NULL;
	char path[MAX_PATH];

        sprintf(path, "%shi/%s.hi", launchDir, game_name);

	if ((f = fopen(path, "rb")) == NULL) {
		msg_printf("High score file not found.\n");
	} else {
		struct mem_range *mem_range = state.mem_range;
		unsigned char *data = malloc (state.hiscore_file_size);
		if (data) {
			while (mem_range)
			{
				/*	this buffer will almost certainly be small
					enough to be dynamically allocated, but let's
					avoid memory trashing just in case
				*/
				fread (data, 1, mem_range->num_bytes, f);
				copy_to_memory (mem_range->cpu, mem_range->addr, data, mem_range->num_bytes);
				mem_range = mem_range->next;
			}
			free (data);
			msg_printf("High score loaded.\n");
		} else {
			msg_printf("High score loading failed.\n");
		}
		fclose (f);
	}
}
Пример #4
0
static void hs_load (void)
{
	mame_file *f = mame_fopen (Machine->gamedrv->name, 0, FILETYPE_HIGHSCORE, 0);
	state.hiscores_have_been_loaded = 1;
	LOG(("hs_load\n"));
	if (f)
	{
		struct mem_range *mem_range = state.mem_range;
		LOG(("loading...\n"));
		while (mem_range)
		{
			UINT8 *data = osd_malloc (mem_range->num_bytes);
			if (data)
			{
				/*	this buffer will almost certainly be small
					enough to be dynamically allocated, but let's
					avoid memory trashing just in case
				*/
				mame_fread (f, data, mem_range->num_bytes);
				copy_to_memory (mem_range->cpu, mem_range->addr, data, mem_range->num_bytes);
				free (data);
			}
			mem_range = mem_range->next;
		}
		mame_fclose (f);
	}
}