Display correct software load messages depending of supported attribute value (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2012-08-12 12:14:49 +00:00
parent e6bad2ec08
commit b2bf27c8ac
3 changed files with 21 additions and 1 deletions

View File

@ -79,6 +79,7 @@ struct _romload_private
memory_region * region; /* info about current region */ memory_region * region; /* info about current region */
astring errorstring; /* error string */ astring errorstring; /* error string */
astring softwarningstring; /* software warning string */
}; };
@ -1299,15 +1300,18 @@ void load_software_part_region(device_t *device, char *swlist, char *swname, rom
assert(device != NULL); assert(device != NULL);
romdata->errorstring.reset(); romdata->errorstring.reset();
romdata->softwarningstring.reset();
if (software_get_support(device->machine().options(), swlist, swname) == SOFTWARE_SUPPORTED_PARTIAL) if (software_get_support(device->machine().options(), swlist, swname) == SOFTWARE_SUPPORTED_PARTIAL)
{ {
romdata->errorstring.catprintf("WARNING: support for software %s (in list %s) is only partial\n", swname, swlist); romdata->errorstring.catprintf("WARNING: support for software %s (in list %s) is only partial\n", swname, swlist);
romdata->softwarningstring.catprintf("Support for software %s (in list %s) is only partial\n", swname, swlist);
romdata->warnings++; romdata->warnings++;
} }
if (software_get_support(device->machine().options(), swlist, swname) == SOFTWARE_SUPPORTED_NO) if (software_get_support(device->machine().options(), swlist, swname) == SOFTWARE_SUPPORTED_NO)
{ {
romdata->errorstring.catprintf("WARNING: support for software %s (in list %s) is only preliminary\n", swname, swlist); romdata->errorstring.catprintf("WARNING: support for software %s (in list %s) is only preliminary\n", swname, swlist);
romdata->softwarningstring.catprintf("Support for software %s (in list %s) is only preliminary\n", swname, swlist);
romdata->warnings++; romdata->warnings++;
} }
@ -1490,6 +1494,16 @@ int rom_load_warnings(running_machine &machine)
} }
/*-------------------------------------------------
software_load_warnings_message - return the
software load warnings we generated
-------------------------------------------------*/
astring& software_load_warnings_message(running_machine &machine)
{
return machine.romload_data->softwarningstring;
}
/*------------------------------------------------- /*-------------------------------------------------
rom_load_knownbad - return the number of rom_load_knownbad - return the number of
BAD_DUMP/NO_DUMP warnings we generated BAD_DUMP/NO_DUMP warnings we generated

View File

@ -264,6 +264,7 @@ void rom_init(running_machine &machine);
/* return the number of warnings we generated */ /* return the number of warnings we generated */
int rom_load_warnings(running_machine &machine); int rom_load_warnings(running_machine &machine);
astring& software_load_warnings_message(running_machine &machine);
/* return the number of BAD_DUMP/NO_DUMP warnings we generated */ /* return the number of BAD_DUMP/NO_DUMP warnings we generated */
int rom_load_knownbad(running_machine &machine); int rom_load_knownbad(running_machine &machine);

View File

@ -909,7 +909,7 @@ static astring &warnings_string(running_machine &machine, astring &string)
string.reset(); string.reset();
/* if no warnings, nothing to return */ /* if no warnings, nothing to return */
if (rom_load_warnings(machine) == 0 && rom_load_knownbad(machine) == 0 && !(machine.system().flags & WARNING_FLAGS)) if (rom_load_warnings(machine) == 0 && rom_load_knownbad(machine) == 0 && !(machine.system().flags & WARNING_FLAGS) && software_load_warnings_message(machine).len()==0)
return string; return string;
/* add a warning if any ROMs were loaded with warnings */ /* add a warning if any ROMs were loaded with warnings */
@ -922,6 +922,11 @@ static astring &warnings_string(running_machine &machine, astring &string)
string.cat("\n"); string.cat("\n");
} }
if (software_load_warnings_message(machine).len()) {
string.cat(software_load_warnings_message(machine));
if (machine.system().flags & WARNING_FLAGS)
string.cat("\n");
}
/* if we have at least one warning flag, print the general header */ /* if we have at least one warning flag, print the general header */
if ((machine.system().flags & WARNING_FLAGS) || rom_load_knownbad(machine) > 0) if ((machine.system().flags & WARNING_FLAGS) || rom_load_knownbad(machine) > 0)
{ {