From f7b263de20594fd720a8ff49b7528c48a64ddb9d Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Wed, 19 Aug 2020 19:33:13 -0700 Subject: Sound and other improvements to Sega G-80 games. (#7103) Sound and other improvements to Sega G-80 games: [Aaron Giles, couriersud] * Added netlist-based sound to Eliminator, Zektor, Space Fury, and Astro Blaster. * Split the Sega Universal Sound Board and Speech Boards into their own separate files. * Improved Universal Sound Board implementation for better accuracy in Star Trek and Tac/Scan. * Wrote netlist-based backend for Universal Sound Board; currently disabled due to limitations in the system. * Wrote netlist-based backend for Speech Board; currently disabled pending future sound system changes. * Implemented wait states and the vector DRAW flag to help improve timing. SP0250 Improvements: [Aaron Giles] * Matched clock divider to real chip measurements. * Fixed behavior when not fed enough data; addresses "gapping" in speech in Sega games. * Implemented accurate LFR noise generator according to real chip measurements. * Added pulse-width modulation DAC output mode for future consumption by netlist. Netlist additions: [Aaron Giles] * Added compile-time option to record nltool-compatible CSV files. * Improved CD4020 implementation. * Fixed CD4053 behavior. * Added 74139 device. * Added TL082 device. 8253 PIT changes: [Aaron Giles] * Added explicit synchronization to all writes. * Cleaned up some timing calculations to avoid double<->attotime conversions. --- src/lib/netlist/nl_setup.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/lib/netlist/nl_setup.cpp') diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index 394d5008f00..70860747f93 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -448,7 +448,12 @@ namespace netlist pstring model = plib::ucase(plib::trim(plib::left(model_in, pos))); pstring def = plib::trim(model_in.substr(pos + 1)); if (!m_abstract.m_models.insert({model, def}).second) - throw nl_exception(MF_MODEL_ALREADY_EXISTS_1(model_in)); + { + // FIXME: Add an directive MODEL_OVERWRITE to netlist language + //throw nl_exception(MF_MODEL_ALREADY_EXISTS_1(model_in)); + log().info(MI_MODEL_OVERWRITE_1(model, model_in)); + m_abstract.m_models[model] = def; + } } @@ -1623,6 +1628,7 @@ void setup_t::prepare_to_run() // resolve inputs resolve_inputs(); +#if 0 log().verbose("looking for two terms connected to rail nets ..."); for (auto & t : m_nlstate.get_device_list()) { @@ -1638,6 +1644,7 @@ void setup_t::prepare_to_run() #endif } } +#endif log().verbose("looking for unused hints ..."); for (auto &h : m_abstract.m_hints) -- cgit v1.2.3-70-g09d2