Пример #1
0
void nvram_save(running_machine &machine)
{
    if (machine.config().m_nvram_handler != NULL)
    {
        astring filename;
        emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
        if (file.open(nvram_filename(machine,filename), ".nv") == FILERR_NONE)
        {
            (*machine.config().m_nvram_handler)(machine, &file, TRUE);
            file.close();
        }
    }

    device_nvram_interface *nvram = NULL;
    if (machine.devicelist().first(nvram))
    {
        for (bool gotone = (nvram != NULL); gotone; gotone = nvram->next(nvram))
        {
            astring filename;
            emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
            if (file.open(nvram_filename(nvram->device(),filename)) == FILERR_NONE)
            {
                nvram->nvram_save(file);
                file.close();
            }
        }
    }
}
Пример #2
0
void nvram_save(running_machine &machine)
{
	if (machine.config().m_nvram_handler != NULL)
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
		if (file.open(nvram_filename(filename, machine.root_device()), ".nv") == FILERR_NONE)
		{
			(*machine.config().m_nvram_handler)(machine, &file, TRUE);
			file.close();
		}
	}

	nvram_interface_iterator iter(machine.root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
		if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			nvram->nvram_save(file);
			file.close();
		}
	}
}
Пример #3
0
void nvram_load(running_machine &machine)
{
	if (machine.config().m_nvram_handler != NULL)
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
		if (file.open(nvram_filename(filename, machine.root_device()), ".nv") == FILERR_NONE)
		{
			(*machine.config().m_nvram_handler)(machine, &file, FALSE);
			file.close();
		}
		else
		{
			(*machine.config().m_nvram_handler)(machine, NULL, FALSE);
		}
	}

	nvram_interface_iterator iter(machine.root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
		if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			nvram->nvram_load(file);
			file.close();
		}
		else
			nvram->nvram_reset();
	}
}
Пример #4
0
void nvram_load(running_machine &machine)
{
	int overrideNVram = 0;
	if(netCommon) {
          if(nvram_size(machine)>=32*1024*1024) {
            overrideNVram=1;
            ui_popup_time(3, "The NVRAM for this game is too big, not loading NVRAM.");
          }
	}

	if (machine.config().m_nvram_handler != NULL)
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
		if (!overrideNVram && file.open(nvram_filename(filename, machine.root_device()), ".nv") == FILERR_NONE)
		{
			(*machine.config().m_nvram_handler)(machine, &file, FALSE);
			file.close();
		}
		else
		{
			(*machine.config().m_nvram_handler)(machine, NULL, FALSE);
		}
	}

	nvram_interface_iterator iter(machine.root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
		if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			astring filename;
			emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
			if (!overrideNVram && file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			nvram->nvram_load(file);
			file.close();
		}
		else
			{
				nvram->nvram_reset();
			}
		}
		else
			nvram->nvram_reset();
	}
}
Пример #5
0
void running_machine::nvram_save()
{
	nvram_interface_iterator iter(root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
	{
		astring filename;
		emu_file file(options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
		if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			nvram->nvram_save(file);
			file.close();
		}
	}
}
Пример #6
0
void nvram_load(running_machine &machine)
{
    if (machine.config().m_nvram_handler != NULL)
    {
        astring filename;
        emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
        if (file.open(nvram_filename(machine,filename),".nv") == FILERR_NONE)
        {
            (*machine.config().m_nvram_handler)(machine, &file, FALSE);
            file.close();
        }
        else
        {
            (*machine.config().m_nvram_handler)(machine, NULL, FALSE);
        }
    }

    device_nvram_interface *nvram = NULL;
    if (machine.devicelist().first(nvram))
    {
        for (bool gotone = (nvram != NULL); gotone; gotone = nvram->next(nvram))
        {
            astring filename;
            emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
            if (file.open(nvram_filename(nvram->device(),filename)) == FILERR_NONE)
            {
                nvram->nvram_load(file);
                file.close();
            }
            else
            {
                nvram->nvram_reset();
            }
        }
    }
}
Пример #7
0
void nvram_save(running_machine &machine)
{
  static bool first=true;
	if(netCommon) {
          if(nvram_size(machine)>=32*1024*1024) {
            if(first) {
              ui_popup_time(3, "The NVRAM for this game is too big, not saving NVRAM.");
              first = false;
            }
            return;
          }
	}

	if (machine.config().m_nvram_handler != NULL)
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
		if (file.open(nvram_filename(filename, machine.root_device()), ".nv") == FILERR_NONE)
		{
			(*machine.config().m_nvram_handler)(machine, &file, TRUE);
			file.close();
		}
	}

	nvram_interface_iterator iter(machine.root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
		if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
		{
			nvram->nvram_save(file);
			file.close();
		}
	}
}
Пример #8
0
int nvram_size(running_machine &machine) {
	int retval=0;
	if (machine.config().m_nvram_handler != NULL)
	{
		astring filename;
		emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
		if (file.open(nvram_filename(filename, machine.root_device()),".nv") == FILERR_NONE)
		{
			retval += file.size();
		}
	}

	nvram_interface_iterator iter(machine.root_device());
	for (device_nvram_interface *nvram = iter.first(); nvram != NULL; nvram = iter.next())
		{
			astring filename;
			emu_file file(machine.options().nvram_directory(), OPEN_FLAG_READ);
			if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
			{
				retval += file.size();
			}
		}
	return retval;
}