diff --git a/src/emu/softlist.c b/src/emu/softlist.c index a8579070be4..c417816066c 100644 --- a/src/emu/softlist.c +++ b/src/emu/softlist.c @@ -2000,6 +2000,8 @@ void validate_softlists(emu_options &options) break; } + softlist_map part_names; + for (software_part *swpart = software_find_part(swinfo, NULL, NULL); swpart != NULL; swpart = software_part_next(swpart)) { if (swpart->interface_ == NULL) @@ -2013,6 +2015,12 @@ void validate_softlists(emu_options &options) mame_printf_error("%s: %s has a part (%s) with no data\n", list->file->filename(), swinfo->shortname, swpart->name); error = TRUE; } + + if (part_names.add(swpart->name, swinfo, FALSE) == TMERR_DUPLICATE) + { + mame_printf_error("%s: %s has a part (%s) whose name is duplicate\n", list->file->filename(), swinfo->shortname, swpart->name); + error = TRUE; + } for (struct rom_entry *swdata = software_find_romdata(swpart, NULL); swdata != NULL; swdata = software_romdata_next(swdata)) {