From a730d77354d031624bbaa63651c436fe2be1ea3d Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Wed, 31 May 2017 19:28:05 +1000 Subject: Add validation check for contradictory flags, fix things it caught (nw) --- src/emu/validity.cpp | 10 +++++++++- src/mame/drivers/bpmmicro.cpp | 2 +- src/mame/drivers/d6809.cpp | 2 +- src/mame/drivers/hpz80unk.cpp | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index 58f068cf93b..b4fca6495b1 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -1424,8 +1424,16 @@ void validity_checker::validate_driver() // make sure sound-less drivers are flagged sound_interface_iterator iter(m_current_config->root_device()); - if ((m_current_driver->flags & MACHINE_IS_BIOS_ROOT) == 0 && iter.first() == nullptr && (m_current_driver->flags & MACHINE_NO_SOUND) == 0 && (m_current_driver->flags & MACHINE_NO_SOUND_HW) == 0) + if ((m_current_driver->flags & MACHINE_IS_BIOS_ROOT) == 0 && !iter.first() && (m_current_driver->flags & (MACHINE_NO_SOUND | MACHINE_NO_SOUND_HW)) == 0) osd_printf_error("Driver is missing MACHINE_NO_SOUND flag\n"); + + // catch invalid flag combinations + if ((m_current_driver->flags & MACHINE_WRONG_COLORS) && (m_current_driver->flags & MACHINE_IMPERFECT_COLORS)) + osd_printf_error("Driver cannot have colours that are both completely wrong and imperfect\n"); + if ((m_current_driver->flags & MACHINE_NO_SOUND_HW) && (m_current_driver->flags & (MACHINE_NO_SOUND | MACHINE_IMPERFECT_SOUND))) + osd_printf_error("Machine without sound hardware cannot have unemulated sound\n"); + if ((m_current_driver->flags & MACHINE_NO_SOUND) && (m_current_driver->flags & MACHINE_IMPERFECT_SOUND)) + osd_printf_error("Driver cannot have sound emulation that's both imperfect and not present\n"); } diff --git a/src/mame/drivers/bpmmicro.cpp b/src/mame/drivers/bpmmicro.cpp index b35369eabde..cbf5ed5beaf 100644 --- a/src/mame/drivers/bpmmicro.cpp +++ b/src/mame/drivers/bpmmicro.cpp @@ -414,4 +414,4 @@ ROM_END ******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1992, bp1200, 0, 0, bpmmicro, bpmmicro, bpmmicro_state, bp1200, "BP Microsystems", "BP-1200", MACHINE_IS_SKELETON | MACHINE_NO_SOUND_HW ) +COMP( 1992, bp1200, 0, 0, bpmmicro, bpmmicro, bpmmicro_state, bp1200, "BP Microsystems", "BP-1200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp index a433c42684e..0de3a24adfd 100644 --- a/src/mame/drivers/d6809.cpp +++ b/src/mame/drivers/d6809.cpp @@ -164,4 +164,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1983, d6809, 0, 0, d6809, d6809, d6809_state, 0, "Dunfield", "6809 Portable", MACHINE_IS_SKELETON | MACHINE_NO_SOUND_HW ) +COMP( 1983, d6809, 0, 0, d6809, d6809, d6809_state, 0, "Dunfield", "6809 Portable", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/hpz80unk.cpp b/src/mame/drivers/hpz80unk.cpp index 4a6f78632d5..3fbfa6e2406 100644 --- a/src/mame/drivers/hpz80unk.cpp +++ b/src/mame/drivers/hpz80unk.cpp @@ -156,4 +156,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS -COMP( 1977, hpz80unk, 0, 0, hpz80unk, hpz80unk, hpz80unk_state, 0, "Hewlett-Packard", "unknown Z80-based mainframe", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) +COMP( 1977, hpz80unk, 0, 0, hpz80unk, hpz80unk, hpz80unk_state, 0, "Hewlett-Packard", "unknown Z80-based mainframe", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW ) -- cgit v1.2.3