summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/gamedrv.h10
-rw-r--r--src/frontend/mame/ui/info.cpp34
-rw-r--r--src/frontend/mame/ui/ui.cpp5
3 files changed, 30 insertions, 19 deletions
diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h
index 30b0cdd91a1..8a44276252c 100644
--- a/src/emu/gamedrv.h
+++ b/src/emu/gamedrv.h
@@ -45,12 +45,18 @@ const UINT32 MACHINE_TYPE_OTHER = 0x00200000; // any other emul
const UINT32 MACHINE_IMPERFECT_KEYBOARD = 0x00400000; // keyboard is known to be wrong
const UINT32 MACHINE_CLICKABLE_ARTWORK = 0x00800000; // marking that artwork is clickable and require mouse cursor
const UINT32 MACHINE_IS_INCOMPLETE = 0x01000000; // any official game/system with blantantly incomplete HW or SW should be marked with this
+const UINT32 MACHINE_NODEVICE_MICROPHONE = 0x02000000; // any game/system that has unemulated recording voice device peripheral
+const UINT32 MACHINE_NODEVICE_CAMERA = 0x04000000; // any game/system that has unemulated capturing image device peripheral
+const UINT32 MACHINE_NODEVICE_PRINTER = 0x08000000; // any game/system that has unemulated grabbing of screen content device
+const UINT32 MACHINE_NODEVICE_LAN = 0x10000000; // any game/system that has unemulated multi-linking capability
+const UINT32 MACHINE_NODEVICE_WAN = 0x20000000; // any game/system that has unemulated networking capability
// useful combinations of flags
const UINT32 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // mask for skelly games
const UINT32 MACHINE_IS_SKELETON_MECHANICAL = MACHINE_IS_SKELETON | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK; // mask for skelly mechanical games
-
-
+const UINT32 MACHINE_FATAL_FLAGS = MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL; // red disclaimer
+const UINT32 MACHINE_WARNING_FLAGS = MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_MICROPHONE | MACHINE_NODEVICE_CAMERA | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_LAN | MACHINE_NODEVICE_WAN; // yellow disclaimer
+const UINT32 MACHINE_BTANB_FLAGS = MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND_HW; // default disclaimer
//**************************************************************************
// TYPE DEFINITIONS
diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp
index fe0cee9af64..8041ce29136 100644
--- a/src/frontend/mame/ui/info.cpp
+++ b/src/frontend/mame/ui/info.cpp
@@ -59,19 +59,7 @@ machine_info::machine_info(running_machine &machine)
std::string machine_info::warnings_string()
{
- constexpr UINT32 warning_flags = ( MACHINE_NOT_WORKING |
- MACHINE_UNEMULATED_PROTECTION |
- MACHINE_MECHANICAL |
- MACHINE_WRONG_COLORS |
- MACHINE_IMPERFECT_COLORS |
- MACHINE_REQUIRES_ARTWORK |
- MACHINE_NO_SOUND |
- MACHINE_IMPERFECT_SOUND |
- MACHINE_IMPERFECT_GRAPHICS |
- MACHINE_IMPERFECT_KEYBOARD |
- MACHINE_NO_COCKTAIL |
- MACHINE_IS_INCOMPLETE |
- MACHINE_NO_SOUND_HW );
+ constexpr UINT32 warning_flags = ( MACHINE_FATAL_FLAGS | MACHINE_WARNING_FLAGS | MACHINE_BTANB_FLAGS );
// if no warnings, nothing to return
if (m_machine.rom_load().warnings() == 0 && m_machine.rom_load().knownbad() == 0 && !(m_machine.system().flags & warning_flags) && m_machine.rom_load().software_load_warnings_message().length() == 0)
@@ -120,7 +108,7 @@ std::string machine_info::warnings_string()
// check if external artwork is present before displaying this warning?
if (m_machine.system().flags & MACHINE_REQUIRES_ARTWORK) {
- buf << _("The machine requires external artwork files\n");
+ buf << _("The machine requires external artwork files.\n");
}
if (m_machine.system().flags & MACHINE_IS_INCOMPLETE )
@@ -128,13 +116,29 @@ std::string machine_info::warnings_string()
buf << _("This machine was never completed. It may exhibit strange behavior or missing elements that are not bugs in the emulation.\n");
}
+ if (m_machine.system().flags & MACHINE_NODEVICE_MICROPHONE )
+ buf << _("This machine has unemulated microphone device.\n");
+
+ if (m_machine.system().flags & MACHINE_NODEVICE_CAMERA )
+ buf << _("This machine has unemulated camera device.\n");
+
+ if (m_machine.system().flags & MACHINE_NODEVICE_PRINTER )
+ buf << _("This machine has unemulated printer device.\n");
+
+ if (m_machine.system().flags & MACHINE_NODEVICE_LAN )
+ buf << _("This machine has unemulated linking capabilities.\n");
+
+ if (m_machine.system().flags & MACHINE_NODEVICE_WAN )
+ buf << _("This machine has unemulated networking capabilities.\n");
+
if (m_machine.system().flags & MACHINE_NO_SOUND_HW )
{
buf << _("This machine has no sound hardware, MAME will produce no sounds, this is expected behaviour.\n");
}
+
// if there's a NOT WORKING, UNEMULATED PROTECTION or GAME MECHANICAL warning, make it stronger
- if (m_machine.system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
+ if (m_machine.system().flags & (MACHINE_FATAL_FLAGS))
{
// add the strings for these warnings
if (m_machine.system().flags & MACHINE_UNEMULATED_PROTECTION) {
diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp
index 85374c14c64..2613aeeb6f0 100644
--- a/src/frontend/mame/ui/ui.cpp
+++ b/src/frontend/mame/ui/ui.cpp
@@ -312,9 +312,10 @@ void mame_ui_manager::display_startup_screens(bool first_time)
if (!messagebox_text.empty())
{
set_handler(ui_callback_type::MODAL, std::bind(&mame_ui_manager::handler_messagebox_anykey, this, _1));
- if (machine().system().flags & (MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND))
+ // TODO: don't think BTANB should be marked yellow? Also move this snippet to specific getter
+ if (machine().system().flags & (MACHINE_WARNING_FLAGS|MACHINE_BTANB_FLAGS))
messagebox_backcolor = UI_YELLOW_COLOR;
- if (machine().system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
+ if (machine().system().flags & (MACHINE_FATAL_FLAGS))
messagebox_backcolor = UI_RED_COLOR;
}
break;