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(); } } }
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(); } }
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); } }
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); } }