added flag for imperfect timing (nw)

This commit is contained in:
hap 2017-07-27 21:00:45 +02:00
parent 1aef6917a2
commit ee6f952f19
7 changed files with 19 additions and 9 deletions

View File

@ -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
};
};

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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")));

View File

@ -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 )

View File

@ -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 )