diff --git a/src/mame/chess/tasc.cpp b/src/mame/chess/tasc.cpp index b7904cce003..4a90b864f16 100644 --- a/src/mame/chess/tasc.cpp +++ b/src/mame/chess/tasc.cpp @@ -60,7 +60,7 @@ BTANB: #include "machine/ram.h" #include "machine/smartboard.h" #include "machine/timer.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/t6963c.h" #include "speaker.h" @@ -82,7 +82,7 @@ public: m_nvram(*this, "nvram", 0x20000, ENDIANNESS_LITTLE), m_lcd(*this, "lcd"), m_smartboard(*this, "smartboard"), - m_speaker(*this, "speaker"), + m_dac(*this, "dac"), m_disable_bootrom(*this, "disable_bootrom"), m_inputs(*this, "IN.%u", 0U), m_out_leds(*this, "pled%u", 0U) @@ -105,7 +105,7 @@ private: memory_share_creator m_nvram; required_device m_lcd; required_device m_smartboard; - required_device m_speaker; + required_device m_dac; required_device m_disable_bootrom; required_ioport_array<4> m_inputs; output_finder<2> m_out_leds; @@ -212,7 +212,7 @@ void tasc_state::control_w(offs_t offset, u32 data, u32 mem_mask) { m_out_leds[0] = BIT(data, 0); m_out_leds[1] = BIT(data, 1); - m_speaker->level_w((data >> 2) & 3); + m_dac->write((data >> 2) & 3); } COMBINE_DATA(&m_control); @@ -326,10 +326,8 @@ void tasc_state::tasc(machine_config &config) config.set_default_layout(layout_tascr30); // sound hardware - SPEAKER(config, "mono").front_center(); - static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 }; - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); - m_speaker->set_levels(4, speaker_levels); + SPEAKER(config, "speaker").front_center(); + DAC_2BIT_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125); } diff --git a/src/mame/commodore/chessmate.cpp b/src/mame/commodore/chessmate.cpp index 7635a94d304..b92e3269799 100644 --- a/src/mame/commodore/chessmate.cpp +++ b/src/mame/commodore/chessmate.cpp @@ -14,14 +14,16 @@ It was planned to be called "Bobby", pending Bobby Fischer's approval. Although the program was stronger than most other chess computers at the time, Fischer declined the idea after trying out the prototype. -Commodore also licensed Chessmate to Novag, and they released it as the MK II. -The hardware is almost identical and the software is the same(identical ROM labels). -Two designs were made, one jukebox shape, and one brick shape. The one in MAME came -from the jukebox, but both models have the same ROMs. +Commodore also licensed the Chessmate program to Novag, and they released it as +Chess Champion: MK II. The hardware is almost identical and the software is the +same (identical ROM labels). Two designs were made, one jukebox shape, and one +brick shape. The one in MAME came from the jukebox, but both have the same ROMs. Note that like MK I, although it is a Winkler/Auge production, it doesn't involve SciSys company. SciSys was founded by Winkler after MK II. +TEC Schachcomputer from 1981 is also assumed to have the same ROMs. + ================================================================================ Hardware notes: @@ -323,5 +325,5 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS SYST( 1978, chmate, 0, 0, chmate, chmate, chmate_state, empty_init, "Commodore", "Chessmate", MACHINE_SUPPORTS_SAVE ) -SYST( 1979, ccmk2, chmate, 0, mk2, mk2, chmate_state, empty_init, "Commodore / Novag Industries", "Chess Champion: MK II (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1979, ccmk2a, chmate, 0, mk2a, mk2a, chmate_state, empty_init, "Commodore / Novag Industries", "Chess Champion: MK II (set 2)", MACHINE_SUPPORTS_SAVE ) // 1st version (jukebox model), aka version B +SYST( 1979, ccmk2, chmate, 0, mk2, mk2, chmate_state, empty_init, "Novag Industries / Commodore", "Chess Champion: MK II (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1979, ccmk2a, chmate, 0, mk2a, mk2a, chmate_state, empty_init, "Novag Industries / Commodore", "Chess Champion: MK II (set 2)", MACHINE_SUPPORTS_SAVE ) // 1st version (jukebox model), aka version B diff --git a/src/mame/ddr/slc1.cpp b/src/mame/ddr/slc1.cpp index 177fe8ea92d..2877c59dfa1 100644 --- a/src/mame/ddr/slc1.cpp +++ b/src/mame/ddr/slc1.cpp @@ -58,7 +58,7 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "speaker.h" @@ -75,7 +75,7 @@ public: slc1_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_speaker(*this, "speaker") + , m_dac(*this, "dac") , m_inputs(*this, "IN.%u", 0U) , m_display(*this, "display") , m_busyled(*this, "busy_led") @@ -90,7 +90,7 @@ protected: private: required_device m_maincpu; - required_device m_speaker; + required_device m_dac; required_ioport_array<3> m_inputs; required_device m_display; output_finder<> m_busyled; @@ -128,7 +128,7 @@ void slc1_state::control_w(offs_t offset, u8 data) // 7442 0-1,3-6: digit select // 7442 3-5: keypad select // 7442 9: speaker out - m_speaker->level_w(BIT(sel, 9)); + m_dac->write(BIT(sel, 9)); // a0-a2+d7: digit segment data u8 mask = 1 << (offset & 7); @@ -222,8 +222,8 @@ void slc1_state::slc1(machine_config &config) config.set_default_layout(layout_slc1); // sound hardware - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); } diff --git a/src/mame/fidelity/cc7.cpp b/src/mame/fidelity/cc7.cpp index 91f881df74a..75b651a9652 100644 --- a/src/mame/fidelity/cc7.cpp +++ b/src/mame/fidelity/cc7.cpp @@ -55,16 +55,16 @@ D0-D3: keypad row #include "speaker.h" // internal artwork -#include "fidel_bcc.lh" #include "fidel_bkc.lh" +#include "fidel_cc7.lh" namespace { -class bcc_state : public driver_device +class cc7_state : public driver_device { public: - bcc_state(const machine_config &mconfig, device_type type, const char *tag) : + cc7_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_display(*this, "display"), @@ -73,7 +73,7 @@ public: { } // machine configs - void bcc(machine_config &config); + void cc7(machine_config &config); void bkc(machine_config &config); protected: @@ -98,7 +98,7 @@ private: void control_w(offs_t offset, u8 data); }; -void bcc_state::machine_start() +void cc7_state::machine_start() { // register for savestates save_item(NAME(m_inp_mux)); @@ -111,7 +111,7 @@ void bcc_state::machine_start() I/O *******************************************************************************/ -void bcc_state::control_w(offs_t offset, u8 data) +void cc7_state::control_w(offs_t offset, u8 data) { // a0-a2,d7: digit segment data via NE591 u8 mask = 1 << (offset & 7); @@ -127,7 +127,7 @@ void bcc_state::control_w(offs_t offset, u8 data) m_inp_mux = data & 0xf; } -u8 bcc_state::input_r() +u8 cc7_state::input_r() { u8 data = 0; @@ -145,7 +145,7 @@ u8 bcc_state::input_r() Address Maps *******************************************************************************/ -void bcc_state::main_map(address_map &map) +void cc7_state::main_map(address_map &map) { map.unmap_value_high(); map.global_mask(0x3fff); @@ -153,10 +153,10 @@ void bcc_state::main_map(address_map &map) map(0x3000, 0x30ff).mirror(0x0f00).ram(); } -void bcc_state::main_io(address_map &map) +void cc7_state::main_io(address_map &map) { map.global_mask(0x07); - map(0x00, 0x07).rw(FUNC(bcc_state::input_r), FUNC(bcc_state::control_w)); + map(0x00, 0x07).rw(FUNC(cc7_state::input_r), FUNC(cc7_state::control_w)); } @@ -165,7 +165,7 @@ void bcc_state::main_io(address_map &map) Input Ports *******************************************************************************/ -static INPUT_PORTS_START( bcc ) +static INPUT_PORTS_START( cc7 ) PORT_START("IN.0") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) @@ -223,12 +223,12 @@ INPUT_PORTS_END Machine Configs *******************************************************************************/ -void bcc_state::bkc(machine_config &config) +void cc7_state::bkc(machine_config &config) { // basic machine hardware Z80(config, m_maincpu, 3.579545_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &bcc_state::main_map); - m_maincpu->set_addrmap(AS_IO, &bcc_state::main_io); + m_maincpu->set_addrmap(AS_PROGRAM, &cc7_state::main_map); + m_maincpu->set_addrmap(AS_IO, &cc7_state::main_io); // video hardware PWM_DISPLAY(config, m_display).set_size(6, 8); @@ -236,10 +236,10 @@ void bcc_state::bkc(machine_config &config) config.set_default_layout(layout_fidel_bkc); } -void bcc_state::bcc(machine_config &config) +void cc7_state::cc7(machine_config &config) { bkc(config); - config.set_default_layout(layout_fidel_bcc); + config.set_default_layout(layout_fidel_cc7); // sound hardware SPEAKER(config, "speaker").front_center(); @@ -277,7 +277,7 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1980, cc7, 0, 0, bcc, bcc, bcc_state, empty_init, "Fidelity Electronics", "Chess Challenger \"7\" (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1979, cc7a, cc7, 0, bcc, bcc, bcc_state, empty_init, "Fidelity Electronics", "Chess Challenger \"7\" (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1980, cc7, 0, 0, cc7, cc7, cc7_state, empty_init, "Fidelity Electronics", "Chess Challenger \"7\" (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1979, cc7a, cc7, 0, cc7, cc7, cc7_state, empty_init, "Fidelity Electronics", "Chess Challenger \"7\" (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1979, backgamc, 0, 0, bkc, bkc, bcc_state, empty_init, "Fidelity Electronics", "Backgammon Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +SYST( 1979, backgamc, 0, 0, bkc, bkc, cc7_state, empty_init, "Fidelity Electronics", "Backgammon Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/fidelity/vcc.cpp b/src/mame/fidelity/vcc.cpp index 5b7be0767cc..75102dfb47f 100644 --- a/src/mame/fidelity/vcc.cpp +++ b/src/mame/fidelity/vcc.cpp @@ -391,7 +391,7 @@ ROM_START( vcca ) ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END -ROM_START( uvc ) +ROM_START( avvc ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) // MOS // 101-64017 // 3880 ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) // NEC P9Z021 // D2332C 228 // 101-32010, == cn19175n_vcc3 on vcc @@ -429,4 +429,4 @@ ROM_END SYST( 1979, vcc, 0, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger (set 1)", MACHINE_SUPPORTS_SAVE ) SYST( 1979, vcca, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE ) +SYST( 1980, avvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/hegenerglaser/academy.cpp b/src/mame/hegenerglaser/academy.cpp index 48fea7b8a94..c1f3aaa8696 100644 --- a/src/mame/hegenerglaser/academy.cpp +++ b/src/mame/hegenerglaser/academy.cpp @@ -139,7 +139,7 @@ void academy_state::academy(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); HC259(config, m_outlatch); // SN74HC259N - m_outlatch->parallel_out_cb().set("display:dac", FUNC(speaker_sound_device::level_w)).rshift(2).mask(0x03); + m_outlatch->parallel_out_cb().set("display:dac", FUNC(dac_2bit_ones_complement_device::write)).rshift(2).mask(0x03); MEPHISTO_SENSORS_BOARD(config, "board"); // internal MEPHISTO_DISPLAY_MODULE2(config, "display"); // internal diff --git a/src/mame/hegenerglaser/mmdisplay2.cpp b/src/mame/hegenerglaser/mmdisplay2.cpp index b7308e715f7..ce6649acca1 100644 --- a/src/mame/hegenerglaser/mmdisplay2.cpp +++ b/src/mame/hegenerglaser/mmdisplay2.cpp @@ -50,11 +50,9 @@ void mephisto_display2_device::device_add_mconfig(machine_config &config) m_lcd->set_lcd_size(2, 16); m_lcd->set_pixel_update_cb(FUNC(mephisto_display2_device::lcd_pixel_update)); - // sound hardware (using filtered dac because of aliasing) + // sound hardware SPEAKER(config, "speaker").front_center(); - static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 }; - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); - m_dac->set_levels(4, speaker_levels); + DAC_2BIT_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125); } void mephisto_display2_device::lcd_palette(palette_device &palette) const @@ -107,7 +105,7 @@ void mephisto_display2_device::io_w(u8 data) if (BIT(data, 1) && !BIT(m_ctrl, 1)) m_lcd->write(BIT(data, 0), m_latch); - m_dac->level_w(data >> 2 & 3); + m_dac->write(data >> 2 & 3); m_ctrl = data; } diff --git a/src/mame/hegenerglaser/mmdisplay2.h b/src/mame/hegenerglaser/mmdisplay2.h index 94a4b55b177..0cb2004f98f 100644 --- a/src/mame/hegenerglaser/mmdisplay2.h +++ b/src/mame/hegenerglaser/mmdisplay2.h @@ -11,7 +11,7 @@ #pragma once -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/hd44780.h" #include "emupal.h" @@ -37,7 +37,7 @@ protected: private: required_device m_lcd; - required_device m_dac; + required_device m_dac; u8 m_latch; u8 m_ctrl; diff --git a/src/mame/layout/fidel_bcc.lay b/src/mame/layout/fidel_cc7.lay similarity index 100% rename from src/mame/layout/fidel_bcc.lay rename to src/mame/layout/fidel_cc7.lay diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3693b01245d..25d6d3eb685 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18125,7 +18125,7 @@ fscc9c // fscc9ps // @source:fidelity/vcc.cpp -uvc // +avvc // vcc // vcca // diff --git a/src/mame/saitek/blitz.cpp b/src/mame/saitek/blitz.cpp index b86f4f99820..50364cd199f 100644 --- a/src/mame/saitek/blitz.cpp +++ b/src/mame/saitek/blitz.cpp @@ -41,7 +41,7 @@ TODO: #include "cpu/h8/h8325.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "screen.h" @@ -81,7 +81,7 @@ private: required_device m_board; required_device m_led_pwm; required_device m_lcd_pwm; - required_device m_dac; + required_device m_dac; required_ioport m_inputs; output_finder<4, 22> m_out_lcd; @@ -242,7 +242,7 @@ u8 blitz_state::p6_r() void blitz_state::p6_w(u8 data) { // P62: speaker out - m_dac->level_w(BIT(data, 2)); + m_dac->write(BIT(data, 2)); // P60: 74164(1) CP // P61: 74164(1) DSB, outputs to input mux / LED data @@ -331,7 +331,7 @@ void blitz_state::blitz(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); } diff --git a/src/mame/saitek/leonardo.cpp b/src/mame/saitek/leonardo.cpp index 00c103e613a..b7db663e71c 100644 --- a/src/mame/saitek/leonardo.cpp +++ b/src/mame/saitek/leonardo.cpp @@ -67,7 +67,7 @@ to be upgraded with an EMI PCB (power supply related, meaningless for emulation) #include "machine/input_merger.h" #include "machine/nvram.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "speaker.h" @@ -111,7 +111,7 @@ private: required_device m_stb; required_device m_board; required_device m_display; - required_device m_dac; + required_device m_dac; required_device m_rs232; required_ioport_array<9> m_inputs; @@ -185,7 +185,7 @@ void leo_state::mux_w(u8 data) update_display(); // d4: speaker out - m_dac->level_w(BIT(data, 4)); + m_dac->write(BIT(data, 4)); } void leo_state::leds_w(u8 data) @@ -426,7 +426,7 @@ void leo_state::leonardo(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); // expansion module (configure after video) SAITEKOSA_EXPANSION(config, m_expansion, saitekosa_expansion_modules); diff --git a/src/mame/saitek/prisma.cpp b/src/mame/saitek/prisma.cpp index ab208df821e..fadd9f1911b 100644 --- a/src/mame/saitek/prisma.cpp +++ b/src/mame/saitek/prisma.cpp @@ -31,7 +31,7 @@ TODO: #include "cpu/h8/h8325.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "video/sed1500.h" @@ -74,7 +74,7 @@ private: required_device m_led_pwm; required_device m_lcd_pwm; required_device m_lcd; - required_device m_dac; + required_device m_dac; required_ioport_array<4> m_inputs; output_finder<16, 34> m_out_lcd; @@ -180,7 +180,7 @@ void prisma_state::p1_w(u8 data) update_leds(); // P14: speaker out - m_dac->level_w(BIT(data, 4)); + m_dac->write(BIT(data, 4)); // P16: ext power (no need to emulate it) } @@ -350,7 +350,7 @@ void prisma_state::prisma(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); } diff --git a/src/mame/saitek/renaissance.cpp b/src/mame/saitek/renaissance.cpp index 94067372c88..f8f5a75fbef 100644 --- a/src/mame/saitek/renaissance.cpp +++ b/src/mame/saitek/renaissance.cpp @@ -41,7 +41,7 @@ TODO: #include "machine/input_merger.h" #include "machine/nvram.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "video/sed1500.h" @@ -91,7 +91,7 @@ private: required_device m_display; required_device m_lcd_pwm; required_device m_lcd; - required_device m_dac; + required_device m_dac; required_device m_rs232; required_ioport_array<8+1> m_inputs; output_finder<16, 34> m_out_lcd; @@ -215,7 +215,7 @@ void ren_state::leds_w(u8 data) void ren_state::control_w(u8 data) { // d1: speaker out - m_dac->level_w(BIT(data, 1)); + m_dac->write(BIT(data, 1)); // d2: comm led m_led_data[1] = (m_led_data[1] & ~0x4) | (~data & 0x4); @@ -433,7 +433,7 @@ void ren_state::ren(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); // expansion module (configure after video) SAITEKOSA_EXPANSION(config, m_expansion, saitekosa_expansion_modules); diff --git a/src/mame/saitek/risc2500.cpp b/src/mame/saitek/risc2500.cpp index 6f5e82f67d7..1ecb84778a7 100644 --- a/src/mame/saitek/risc2500.cpp +++ b/src/mame/saitek/risc2500.cpp @@ -48,7 +48,7 @@ TODO: #include "machine/ram.h" #include "machine/sensorboard.h" #include "machine/timer.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/sed1520.h" #include "emupal.h" @@ -72,7 +72,7 @@ public: m_ram(*this, "ram"), m_nvram(*this, "nvram"), m_disable_bootrom(*this, "disable_bootrom"), - m_speaker(*this, "speaker"), + m_dac(*this, "dac"), m_lcdc(*this, "lcdc"), m_board(*this, "board"), m_inputs(*this, "IN.%u", 0), @@ -97,7 +97,7 @@ private: required_device m_ram; required_device m_nvram; required_device m_disable_bootrom; - required_device m_speaker; + required_device m_dac; required_device m_lcdc; required_device m_board; required_ioport_array<8> m_inputs; @@ -307,7 +307,7 @@ void risc2500_state::control_w(u32 data) } // speaker - m_speaker->level_w(data >> 28 & 3); + m_dac->write(data >> 28 & 3); // power-off if (BIT(m_control & ~data, 24)) @@ -456,10 +456,8 @@ void risc2500_state::risc2500(machine_config &config) m_lcdc->set_screen_update_cb(FUNC(risc2500_state::screen_update_cb)); // sound hardware - SPEAKER(config, "mono").front_center(); - static const double speaker_levels[4] = { 0.0, 1.0, -1.0, 0.0 }; - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); - m_speaker->set_levels(4, speaker_levels); + SPEAKER(config, "speaker").front_center(); + DAC_2BIT_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125); } void risc2500_state::montreux(machine_config &config) diff --git a/src/mame/saitek/turbo16k.cpp b/src/mame/saitek/turbo16k.cpp index 8b5a7ab8373..727da741372 100644 --- a/src/mame/saitek/turbo16k.cpp +++ b/src/mame/saitek/turbo16k.cpp @@ -60,7 +60,7 @@ SX8(A) program is used in: #include "cpu/m6800/m6801.h" #include "machine/msm5001n.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "speaker.h" @@ -107,7 +107,7 @@ protected: required_device m_board; optional_device_array m_lcd_clock; required_device m_display; - required_device m_dac; + required_device m_dac; required_ioport_array<2> m_inputs; output_finder<2, 4> m_lcd_digits; output_finder<2> m_lcd_colon; @@ -244,7 +244,7 @@ void turbo16k_state::p6_w(u8 data) update_display(); // P67: speaker out - m_dac->level_w(BIT(~data, 7)); + m_dac->write(BIT(~data, 7)); } @@ -446,7 +446,7 @@ void turbo16k_state::compan3(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); } void turbo16k_state::turbo16k(machine_config &config) diff --git a/src/mame/saitek/turbos24k.cpp b/src/mame/saitek/turbos24k.cpp index ecdf9ec6496..0129a419431 100644 --- a/src/mame/saitek/turbos24k.cpp +++ b/src/mame/saitek/turbos24k.cpp @@ -28,7 +28,7 @@ sensor board. #include "machine/msm5001n.h" #include "machine/nvram.h" #include "machine/sensorboard.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" #include "video/pwm.h" #include "speaker.h" @@ -67,7 +67,7 @@ private: required_device m_board; required_device_array m_lcd_clock; required_device m_display; - required_device m_dac; + required_device m_dac; required_ioport_array<9> m_inputs; output_finder<2, 4> m_lcd_digits; output_finder<2> m_lcd_colon; @@ -169,7 +169,7 @@ void turbos24k_state::mux_w(u8 data) update_display(); // d4: speaker out - m_dac->level_w(BIT(data, 4)); + m_dac->write(BIT(data, 4)); } void turbos24k_state::leds_w(u8 data) @@ -326,7 +326,7 @@ void turbos24k_state::turbos24k(machine_config &config) // sound hardware SPEAKER(config, "speaker").front_center(); - SPEAKER_SOUND(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); }