diff --git a/hash/trs80_quik.xml b/hash/trs80_quik.xml index ad6772f7fbd..5b9a5b14e39 100644 --- a/hash/trs80_quik.xml +++ b/hash/trs80_quik.xml @@ -447,7 +447,7 @@ between them. 1981 Misosys - + @@ -460,7 +460,7 @@ between them. 1981 Misosys - + @@ -473,7 +473,7 @@ between them. 1981 Misosys - + @@ -486,7 +486,7 @@ between them. 1981 Misosys - + @@ -499,7 +499,7 @@ between them. 1981 Misosys - + @@ -512,7 +512,7 @@ between them. 1981 Misosys - + @@ -525,7 +525,7 @@ between them. 1981 Misosys - + @@ -538,7 +538,7 @@ between them. 1981 Misosys - + diff --git a/src/mame/drivers/h01x.cpp b/src/mame/drivers/h01x.cpp index 63069912350..58719f739b3 100644 --- a/src/mame/drivers/h01x.cpp +++ b/src/mame/drivers/h01x.cpp @@ -95,8 +95,6 @@ private: }; -static const double speaker_levels[] = {-1.0, 0.0, 1.0, 0.0}; - void h01x_state::h01x(machine_config &config) { // basic machine hardware @@ -123,7 +121,7 @@ void h01x_state::h01x(machine_config &config) // sound hardware SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).set_levels(4, speaker_levels); + SPEAKER_SOUND(config, m_speaker); m_speaker->add_route(ALL_OUTPUTS, "mono", 0.50); /* devices */ diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp index 2352f586c2e..101f3b4a214 100644 --- a/src/mame/drivers/vtech1.cpp +++ b/src/mame/drivers/vtech1.cpp @@ -450,7 +450,7 @@ INPUT_PORTS_END MACHINE DRIVERS ***************************************************************************/ -static const double speaker_levels[] = {-1.0, 0.0, 1.0, 0.0}; +static const double speaker_levels[] = { 0.0, 1.0, -1.0, 0.0 }; void vtech1_base_state::vtech1(machine_config &config) { diff --git a/src/mame/machine/trs80.cpp b/src/mame/machine/trs80.cpp index a89bd1889ed..1f6e17979f4 100644 --- a/src/mame/machine/trs80.cpp +++ b/src/mame/machine/trs80.cpp @@ -175,12 +175,12 @@ void trs80_state::port_ff_w(u8 data) m_cpl = BIT(data, 3); - static const double speaker_levels[4] = { 0.0, -1.0, 0.0, 1.0 }; - m_speaker->set_levels(4, speaker_levels); - /* Speaker for System-80 MK II - only sounds if relay is off */ if (!(BIT(data, 2))) + { + m_speaker->set_levels(4, levels); m_speaker->level_w(data & 3); + } } /************************************* diff --git a/src/mame/machine/trs80m3.cpp b/src/mame/machine/trs80m3.cpp index ee1f70da20e..842f210bb17 100644 --- a/src/mame/machine/trs80m3.cpp +++ b/src/mame/machine/trs80m3.cpp @@ -411,13 +411,25 @@ void trs80m3_state::port_ff_w(uint8_t data) /* Cassette port d1, d0 Cassette output */ - if (!BIT(m_model4, 2)) // Model 4P has no cassette hardware + static const double levels[4] = { 0.0, 1.0, -1.0, 0.0 }; + + // Model 4P has no cassette hardware, and only one bit for sound + if (BIT(m_model4, 2)) + { + if (!(BIT(m_port_ec, 1))) + m_speaker->level_w(BIT(data, 0)); + } + else + // Others have the same old unofficial sound via the cassette port { - static const double levels[4] = { 0.0, 1.0, -1.0, 0.0 }; m_cassette->output(levels[data & 3]); m_cassette_data &= ~0x80; + if (!(BIT(m_port_ec, 1))) + { + m_speaker->set_levels(4, levels); + m_speaker->level_w(data & 3); + } } - m_speaker->level_w(!(BIT(data, 0))); }