int memcard_insert(int index) { file_error filerr; mame_file *file; char name[16]; astring *fname; /* if a card is already inserted, eject it first */ if (memcard_inserted != -1) memcard_eject(Machine); assert(memcard_inserted == -1); /* create a name */ memcard_name(index, name); fname = astring_assemble_3(astring_alloc(), Machine->basename, PATH_SEPARATOR, name); /* open the file; if we can't, it's an error */ filerr = mame_fopen(SEARCHPATH_MEMCARD, astring_c(fname), OPEN_FLAG_READ, &file); astring_free(fname); if (filerr != FILERR_NONE) return 1; /* initialize and then load the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(Machine, file, MEMCARD_INSERT); /* close the file */ mame_fclose(file); memcard_inserted = index; return 0; }
int memcard_insert(running_machine &machine, int index) { generic_machine_private *state = machine.generic_machine_data; char name[16]; /* if a card is already inserted, eject it first */ if (state->memcard_inserted != -1) memcard_eject(machine); assert(state->memcard_inserted == -1); /* create a name */ memcard_name(index, name); /* open the file; if we can't, it's an error */ emu_file file(machine.options().memcard_directory(), OPEN_FLAG_READ); file_error filerr = file.open(machine.basename(), PATH_SEPARATOR, name); if (filerr != FILERR_NONE) return 1; /* initialize and then load the card */ if (machine.config().m_memcard_handler) (*machine.config().m_memcard_handler)(machine, file, MEMCARD_INSERT); /* close the file */ state->memcard_inserted = index; return 0; }
int memcard_insert(int index) { mame_file *file; char name[16]; /* if a card is already inserted, eject it first */ if (memcard_inserted != -1) memcard_eject(); assert(memcard_inserted == -1); /* create a name */ memcard_name(index, name); /* open the file; if we can't, it's an error */ file = mame_fopen(Machine->gamedrv->name, name, FILETYPE_MEMCARD, FALSE); if (file == NULL) return 1; /* initialize and then load the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(file, MEMCARD_INSERT); /* close the file */ mame_fclose(file); memcard_inserted = index; return 0; }