summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/validity.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2017-05-31 19:28:05 +1000
committer Vas Crabb <vas@vastheman.com>2017-05-31 19:30:44 +1000
commita730d77354d031624bbaa63651c436fe2be1ea3d (patch)
tree1bc8e99c073a0ed01779d850f9a6a76e94b28679 /src/emu/validity.cpp
parent2c2458bbacc1d3eb37b3588f27fade29e9fd952e (diff)
Add validation check for contradictory flags, fix things it caught (nw)
Diffstat (limited to 'src/emu/validity.cpp')
-rw-r--r--src/emu/validity.cpp10
1 files changed, 9 insertions, 1 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");
}