Esempio n. 1
0
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;
}
Esempio n. 2
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;
}
Esempio n. 3
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;
}