diff options
author | 2016-09-26 13:27:16 +0200 | |
---|---|---|
committer | 2016-09-26 13:27:16 +0200 | |
commit | 883cc63eb1fbb82eb9f45d9fd3e166562820cc30 (patch) | |
tree | 23e5299c68db636a95d0c6d00cff52c11900286b | |
parent | 084af3883b718eb36b9e60c9ab2f9116015a87fc (diff) |
Proposal for new system flags for 0.179 dev-cycle:
* MACHINE_NODEVICE_MICROPHONE
For unemulated microphone;
* MACHINE_NODEVICE_CAMERA
For unemulated camera;
* MACHINE_NODEVICE_PRINTER
For unemulated printer
* MACHINE_NODEVICE_LAN
For unemulated linking multi-cabinet capabilities;
* MACHINE_NODEVICE_WAN
For unemulated networking capabilities;
Restructured MACHINE_FLAGS into FATAL / WARNING / BTANB main categories, in order to make them easier to expose.
List of ToDo:
* MACHINE_IS_SKELETON / MACHINE_IS_SKELETON_MECHANICAL needs to be sorted or nuked, your call;
* Verify outputted text for the new flags.
* Define if BTANB type flags should have yellow warning or not.
* Add examples (will do in next commit).
-rw-r--r-- | src/emu/gamedrv.h | 10 | ||||
-rw-r--r-- | src/frontend/mame/ui/info.cpp | 34 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.cpp | 5 |
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; |