summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-07-27 21:00:45 +0200
committer hap <happppp@users.noreply.github.com>2017-07-27 21:01:07 +0200
commitee6f952f19640177ddeaa4efe9ddb397a5c7c51c (patch)
treee388991e3e347df2fd6c505ad881a76c9d97d030
parent1aef6917a2dd00f47413929f7fc9676844a77b66 (diff)
added flag for imperfect timing (nw)
-rw-r--r--src/emu/device.h3
-rw-r--r--src/emu/gamedrv.h4
-rw-r--r--src/frontend/mame/info.cpp5
-rw-r--r--src/frontend/mame/ui/info.cpp3
-rw-r--r--src/frontend/mame/ui/selgame.cpp5
-rw-r--r--src/mame/drivers/fidel6502.cpp4
-rw-r--r--src/mame/drivers/fidel68k.cpp4
7 files changed, 19 insertions, 9 deletions
diff --git a/src/emu/device.h b/src/emu/device.h
index de321265908..1f645777d60 100644
--- a/src/emu/device.h
+++ b/src/emu/device.h
@@ -90,9 +90,10 @@ struct device_feature
PRINTER = u32(1) << 10,
LAN = u32(1) << 11,
WAN = u32(1) << 12,
+ TIMING = u32(1) << 13,
NONE = u32(0),
- ALL = (u32(1) << 13) - 1U
+ ALL = (u32(1) << 14) - 1U
};
};
diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h
index ed2814a8b9d..655301acd04 100644
--- a/src/emu/gamedrv.h
+++ b/src/emu/gamedrv.h
@@ -88,6 +88,7 @@ constexpr u64 MACHINE_IMPERFECT_CONTROLS = 0x00000040'00000000; // cont
constexpr u64 MACHINE_NODEVICE_MICROPHONE = 0x00000080'00000000; // any game/system that has unemulated audio capture device
constexpr u64 MACHINE_NODEVICE_PRINTER = 0x00000100'00000000; // any game/system that has unemulated hardcopy output device
constexpr u64 MACHINE_NODEVICE_LAN = 0x00000200'00000000; // any game/system that has unemulated local networking
+constexpr u64 MACHINE_IMPERFECT_TIMING = 0x00000400'00000000; // timing is known to be imperfectly emulated
// useful combinations of flags
constexpr u64 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // flag combination for skeleton drivers
@@ -145,7 +146,8 @@ public:
((flags & MACHINE_IMPERFECT_COLORS) ? device_t::feature::PALETTE : device_t::feature::NONE) |
((flags & MACHINE_IMPERFECT_GRAPHICS) ? device_t::feature::GRAPHICS : device_t::feature::NONE) |
((flags & MACHINE_IMPERFECT_SOUND) ? device_t::feature::SOUND : device_t::feature::NONE) |
- ((flags & MACHINE_IMPERFECT_CONTROLS) ? device_t::feature::CONTROLS : device_t::feature::NONE);
+ ((flags & MACHINE_IMPERFECT_CONTROLS) ? device_t::feature::CONTROLS : device_t::feature::NONE) |
+ ((flags & MACHINE_IMPERFECT_TIMING) ? device_t::feature::TIMING : device_t::feature::NONE);
}
device_type type; // static type info for driver class
diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp
index 9d2963c68c9..a6d63c34847 100644
--- a/src/frontend/mame/info.cpp
+++ b/src/frontend/mame/info.cpp
@@ -156,7 +156,7 @@ const char info_xml_creator::s_dtd_string[] =
"\t\t\t<!ATTLIST driver protection (good|imperfect|preliminary) #IMPLIED>\n"
"\t\t\t<!ATTLIST driver savestate (supported|unsupported) #REQUIRED>\n"
"\t\t<!ELEMENT feature EMPTY>\n"
-"\t\t\t<!ATTLIST feature type (protection|palette|graphics|sound|controls|keyboard|mouse|microphone|camera|disk|printer|lan|wan) #REQUIRED>\n"
+"\t\t\t<!ATTLIST feature type (protection|palette|graphics|sound|controls|keyboard|mouse|microphone|camera|disk|printer|lan|wan|timing) #REQUIRED>\n"
"\t\t\t<!ATTLIST feature status (unemulated|imperfect) #IMPLIED>\n"
"\t\t\t<!ATTLIST feature overall (unemulated|imperfect) #IMPLIED>\n"
"\t\t<!ELEMENT device (instance*, extension*)>\n"
@@ -1597,7 +1597,8 @@ void info_xml_creator::output_features(device_type type, device_t::feature_type
{ device_t::feature::DISK, "disk" },
{ device_t::feature::PRINTER, "printer" },
{ device_t::feature::LAN, "lan" },
- { device_t::feature::WAN, "wan" } };
+ { device_t::feature::WAN, "wan" },
+ { device_t::feature::TIMING, "timing" } };
device_t::feature_type const flags(type.unemulated_features() | type.imperfect_features() | unemulated | imperfect);
for (auto const &feature : features)
diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp
index 14eb59a3135..415489f6e79 100644
--- a/src/frontend/mame/ui/info.cpp
+++ b/src/frontend/mame/ui/info.cpp
@@ -38,7 +38,8 @@ constexpr std::pair<device_t::feature_type, char const *> FEATURE_NAMES[] = {
{ device_t::feature::DISK, __("disk") },
{ device_t::feature::PRINTER, __("printer") },
{ device_t::feature::LAN, __("LAN") },
- { device_t::feature::WAN, __("WAN") } };
+ { device_t::feature::WAN, __("WAN") },
+ { device_t::feature::TIMING, __("timing") } };
} // anonymous namespace
diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp
index 3ae33d00d03..891003a9ac6 100644
--- a/src/frontend/mame/ui/selgame.cpp
+++ b/src/frontend/mame/ui/selgame.cpp
@@ -1273,6 +1273,11 @@ void menu_select_game::general_info(const game_driver *driver, std::string &buff
else if (flags.imperfect_features() & device_t::feature::WAN)
str << _("WAN\tImperfect\n");
+ if (flags.unemulated_features() & device_t::feature::TIMING)
+ str << _("Timing\tUnimplemented\n");
+ else if (flags.imperfect_features() & device_t::feature::TIMING)
+ str << _("Timing\tImperfect\n");
+
util::stream_format(str, _("Mechanical Machine\t%1$s\n"), ((flags.machine_flags() & machine_flags::MECHANICAL) ? _("Yes") : _("No")));
util::stream_format(str, _("Requires Artwork\t%1$s\n"), ((flags.machine_flags() & machine_flags::REQUIRES_ARTWORK) ? _("Yes") : _("No")));
util::stream_format(str, _("Requires Clickable Artwork\t%1$s\n"), ((flags.machine_flags() & machine_flags::CLICKABLE_ARTWORK) ? _("Yes") : _("No")));
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index 8b0eb2453b7..04ccac69501 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -2368,8 +2368,8 @@ CONS( 1982, fscc9b, fscc9, 0, sc9b, sc9, fidel6502_state, 0,
CONS( 1982, fscc9c, fscc9, 0, sc9c, sc9c, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, fidel6502_state, 0, "Fidelity Electronics", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) // Fidelity West Germany
-CONS( 1984, fscc12, 0, 0, sc12, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1984, fscc12b, fscc12, 0, sc12b, sc12b, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1984, fscc12, 0, 0, sc12, sc12, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 1984, fscc12b, fscc12, 0, sc12b, sc12b, fidel6502_state, 0, "Fidelity Electronics", "Sensory Chess Challenger 12-B", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
CONS( 1987, fexcel, 0, 0, fexcelb, fexcelb, fidel6502_state, 0, "Fidelity Electronics", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, fidel6502_state, 0, "Fidelity Electronics", "Voice Excellence", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index 8149546be99..a8b736a8a94 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -582,5 +582,5 @@ CONS( 1989, feagv2, 0, 0, eag, eag, fidel68k_state, eag, "Fidel
CONS( 1989, feagv2a, feagv2, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
-CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )
+CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING )