From cfb9af8564609ffba308e6bdbc7e8944f1be8488 Mon Sep 17 00:00:00 2001 From: hap Date: Tue, 2 Jul 2019 21:28:13 +0200 Subject: fidelbase: remove sound handling (nw) --- src/mame/drivers/aci_ggm.cpp | 12 +++--- src/mame/drivers/fidel_as12.cpp | 3 ++ src/mame/drivers/fidel_cc7.cpp | 7 +++- src/mame/drivers/fidel_chesster.cpp | 21 +++++++++- src/mame/drivers/fidel_csc.cpp | 32 ++++++++++++++- src/mame/drivers/fidel_dames.cpp | 5 ++- src/mame/drivers/fidel_desdis.cpp | 23 ++++++----- src/mame/drivers/fidel_eag68k.cpp | 9 +++++ src/mame/drivers/fidel_elite.cpp | 27 +++++++++++++ src/mame/drivers/fidel_excel.cpp | 30 ++++++++++++++- src/mame/drivers/fidel_phantom.cpp | 5 ++- src/mame/drivers/fidel_sc12.cpp | 3 ++ src/mame/drivers/fidel_sc6.cpp | 3 ++ src/mame/drivers/fidel_sc8.cpp | 7 +++- src/mame/drivers/fidel_sc9.cpp | 7 ++++ src/mame/drivers/fidel_vcc.cpp | 17 +++++++- src/mame/drivers/fidel_vsc.cpp | 26 ++++++++++++- src/mame/drivers/intellect02.cpp | 13 +++---- src/mame/drivers/novag_delta1.cpp | 4 +- src/mame/drivers/novag_mk1.cpp | 7 +++- src/mame/drivers/novag_presto.cpp | 4 +- src/mame/drivers/novag_sexpert.cpp | 6 +-- src/mame/includes/fidelbase.h | 16 +------- src/mame/layout/novag_cforte.lay | 77 ++++++++++++++++++------------------- src/mame/layout/novag_sforte.lay | 1 - src/mame/layout/scisys_cp2000.lay | 7 ++-- src/mame/machine/fidelbase.cpp | 5 --- 27 files changed, 271 insertions(+), 106 deletions(-) diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp index 45a5963dc0c..0bb68a6d5c2 100644 --- a/src/mame/drivers/aci_ggm.cpp +++ b/src/mame/drivers/aci_ggm.cpp @@ -105,12 +105,6 @@ private: void update_display(); TIMER_DEVICE_CALLBACK_MEMBER(ca1_off) { m_via->write_ca1(0); } - u8 m_inp_mux; - u16 m_digit_data; - u8 m_shift_data; - u8 m_shift_clock; - u32 m_cart_mask; - DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cartridge); DECLARE_READ8_MEMBER(cartridge_r); @@ -120,6 +114,12 @@ private: DECLARE_WRITE_LINE_MEMBER(shift_clock_w); DECLARE_WRITE_LINE_MEMBER(shift_data_w); + + u8 m_inp_mux; + u16 m_digit_data; + u8 m_shift_data; + u8 m_shift_clock; + u32 m_cart_mask; }; void ggm_state::machine_start() diff --git a/src/mame/drivers/fidel_as12.cpp b/src/mame/drivers/fidel_as12.cpp index 45a66a11982..d0591705d66 100644 --- a/src/mame/drivers/fidel_as12.cpp +++ b/src/mame/drivers/fidel_as12.cpp @@ -22,6 +22,7 @@ magnetic chess board sensors. See fidel_sc12.cpp for a more technical descriptio #include "cpu/m6502/r65c02.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -40,6 +41,7 @@ public: as12_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), + m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -49,6 +51,7 @@ public: private: // devices/pointers required_device m_irq_on; + required_device m_dac; required_device m_cart; // address maps diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp index d8550d1084e..59396d5313a 100644 --- a/src/mame/drivers/fidel_cc7.cpp +++ b/src/mame/drivers/fidel_cc7.cpp @@ -48,6 +48,7 @@ D0-D3: keypad row #include "includes/fidelbase.h" #include "cpu/z80/z80.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -62,7 +63,8 @@ class bcc_state : public fidelbase_state { public: bcc_state(const machine_config &mconfig, device_type type, const char *tag) : - fidelbase_state(mconfig, type, tag) + fidelbase_state(mconfig, type, tag), + m_dac(*this, "dac") { } // machine drivers @@ -70,6 +72,9 @@ public: void bkc(machine_config &config); private: + // devices/pointers + optional_device m_dac; + // address maps void main_map(address_map &map); void main_io(address_map &map); diff --git a/src/mame/drivers/fidel_chesster.cpp b/src/mame/drivers/fidel_chesster.cpp index 0662d3a4e3b..5627c302638 100644 --- a/src/mame/drivers/fidel_chesster.cpp +++ b/src/mame/drivers/fidel_chesster.cpp @@ -31,6 +31,7 @@ the S14001A in the 70s), this time a 65C02 software solution. #include "cpu/m6502/r65c02.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -55,6 +56,9 @@ public: void init_chesster(); +protected: + virtual void machine_start() override; + private: // devices/pointers required_device m_irq_on; @@ -67,11 +71,12 @@ private: template TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); } template TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); } - int m_numbanks; - // I/O handlers DECLARE_WRITE8_MEMBER(control_w); DECLARE_READ8_MEMBER(input_r); + + int m_numbanks; + u8 m_speech_bank; }; void chesster_state::init_chesster() @@ -80,6 +85,18 @@ void chesster_state::init_chesster() m_rombank->configure_entries(0, m_numbanks, memregion("rombank")->base(), 0x4000); } +void chesster_state::machine_start() +{ + fidelbase_state::machine_start(); + + // zerofill + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_bank)); +} + + /****************************************************************************** Devices, I/O diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index 60d7780b14a..6b58c2f41cc 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -199,6 +199,8 @@ PCB label 510-1035A01 #include "cpu/m6502/m6502.h" #include "machine/6821pia.h" #include "machine/timer.h" +#include "sound/s14001a.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -210,13 +212,19 @@ PCB label 510-1035A01 namespace { +// CSC / shared + class csc_state : public fidelbase_state { public: csc_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), - m_pia(*this, "pia%u", 0) + m_pia(*this, "pia%u", 0), + m_dac(*this, "dac"), + m_speech(*this, "speech"), + m_speech_rom(*this, "speech"), + m_language(*this, "language") { } // machine drivers @@ -226,9 +234,15 @@ public: void rsc(machine_config &config); protected: + virtual void machine_start() override; + // devices/pointers required_device m_irq_on; optional_device_array m_pia; + required_device m_dac; + optional_device m_speech; + optional_region_ptr m_speech_rom; + optional_region_ptr m_language; // address maps void csc_map(address_map &map); @@ -253,8 +267,23 @@ protected: DECLARE_WRITE8_MEMBER(pia1_pb_w); DECLARE_READ8_MEMBER(pia1_pb_r); DECLARE_WRITE_LINE_MEMBER(pia1_ca2_w); + + u8 m_speech_bank; }; +void csc_state::machine_start() +{ + fidelbase_state::machine_start(); + + // zerofill + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_bank)); +} + +// SU9 + class su9_state : public csc_state { public: @@ -283,6 +312,7 @@ void su9_state::su9_set_cpu_freq() } + /****************************************************************************** Devices, I/O ******************************************************************************/ diff --git a/src/mame/drivers/fidel_dames.cpp b/src/mame/drivers/fidel_dames.cpp index 84773c93836..e29f2c0274b 100644 --- a/src/mame/drivers/fidel_dames.cpp +++ b/src/mame/drivers/fidel_dames.cpp @@ -22,6 +22,7 @@ It's a checkers game for once instead of chess #include "cpu/z80/z80.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -36,7 +37,8 @@ class dsc_state : public fidelbase_state public: dsc_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), - m_irq_on(*this, "irq_on") + m_irq_on(*this, "irq_on"), + m_dac(*this, "dac") { } // machine drivers @@ -45,6 +47,7 @@ public: private: // devices/pointers required_device m_irq_on; + required_device m_dac; // address maps void main_map(address_map &map); diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp index 4238b791d60..972a79f1151 100644 --- a/src/mame/drivers/fidel_desdis.cpp +++ b/src/mame/drivers/fidel_desdis.cpp @@ -44,6 +44,7 @@ Designer Mach IV Master 2325 (model 6129) overview: #include "cpu/m6502/m65sc02.h" #include "cpu/m68000/m68000.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -55,13 +56,16 @@ Designer Mach IV Master 2325 (model 6129) overview: namespace { +// Designer Display / shared + class desdis_state : public fidelbase_state { public: desdis_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), - m_rombank(*this, "rombank") + m_rombank(*this, "rombank"), + m_dac(*this, "dac") { } // machine drivers @@ -74,6 +78,7 @@ protected: // devices/pointers required_device m_irq_on; optional_memory_bank m_rombank; + required_device m_dac; // address maps void fdes2100d_map(address_map &map); @@ -88,6 +93,13 @@ protected: virtual DECLARE_READ8_MEMBER(input_r); }; +void desdis_state::init_fdes2100d() +{ + m_rombank->configure_entries(0, 2, memregion("rombank")->base(), 0x4000); +} + +// Designer Master + class desmas_state : public desdis_state { public: @@ -111,14 +123,6 @@ private: virtual DECLARE_WRITE8_MEMBER(lcd_w) override { desdis_state::lcd_w(space, offset, ~data); } }; - -// init - -void desdis_state::init_fdes2100d() -{ - m_rombank->configure_entries(0, 2, memregion("rombank")->base(), 0x4000); -} - void desmas_state::init_fdes2265() { u16 *rom = (u16*)memregion("maincpu")->base(); @@ -136,6 +140,7 @@ void desmas_state::init_fdes2265() } + /****************************************************************************** Devices, I/O ******************************************************************************/ diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp index 74ed1cdbd52..11246e95fc1 100644 --- a/src/mame/drivers/fidel_eag68k.cpp +++ b/src/mame/drivers/fidel_eag68k.cpp @@ -159,6 +159,7 @@ B0000x-xxxxxx: see V7, -800000 #include "machine/ram.h" #include "machine/nvram.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -172,6 +173,8 @@ B0000x-xxxxxx: see V7, -800000 namespace { +// EAG / shared + class eag_state : public fidelbase_state { public: @@ -180,6 +183,7 @@ public: m_maincpu(*this, "maincpu"), m_irq_on(*this, "irq_on"), m_ram(*this, "ram"), + m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -201,6 +205,7 @@ protected: required_device m_maincpu; optional_device m_irq_on; optional_device m_ram; + required_device m_dac; optional_device m_cart; // address maps @@ -223,6 +228,8 @@ protected: DECLARE_WRITE8_MEMBER(digit_w); }; +// EAG V5 + class eagv5_state : public eag_state { public: @@ -252,6 +259,8 @@ private: DECLARE_READ8_MEMBER(sub_ack_r); }; +// Excel 68000 + class excel68k_state : public eag_state { public: diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index 486e3104edb..3b1d98d9206 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -53,6 +53,8 @@ It was probably only released in Germany. #include "machine/i8255.h" #include "machine/nvram.h" #include "machine/timer.h" +#include "sound/s14001a.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -76,6 +78,10 @@ public: m_irq_on(*this, "irq_on"), m_ppi8255(*this, "ppi8255"), m_rombank(*this, "rombank"), + m_dac(*this, "dac"), + m_speech(*this, "speech"), + m_speech_rom(*this, "speech"), + m_language(*this, "language"), m_cart(*this, "cartslot") { } @@ -88,11 +94,18 @@ public: void init_eag2100(); +protected: + virtual void machine_start() override; + private: // devices/pointers required_device m_irq_on; optional_device m_ppi8255; optional_memory_bank m_rombank; + required_device m_dac; + required_device m_speech; + required_region_ptr m_speech_rom; + required_region_ptr m_language; required_device m_cart; // address maps @@ -116,6 +129,8 @@ private: DECLARE_WRITE8_MEMBER(ppi_porta_w); DECLARE_READ8_MEMBER(ppi_portb_r); DECLARE_WRITE8_MEMBER(ppi_portc_w); + + u8 m_speech_bank; }; void elite_state::init_eag2100() @@ -123,6 +138,18 @@ void elite_state::init_eag2100() m_rombank->configure_entries(0, 4, memregion("rombank")->base(), 0x2000); } +void elite_state::machine_start() +{ + fidelbase_state::machine_start(); + + // zerofill + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_bank)); +} + + /****************************************************************************** Devices, I/O diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp index 4e4e1530936..ccba4744720 100644 --- a/src/mame/drivers/fidel_excel.cpp +++ b/src/mame/drivers/fidel_excel.cpp @@ -134,6 +134,8 @@ Designer 2100 (model 6103): exactly same, but running at 5MHz #include "cpu/m6502/r65c02.h" #include "cpu/m6502/m65sc02.h" #include "machine/timer.h" +#include "sound/s14001a.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -150,7 +152,10 @@ class excel_state : public fidelbase_state public: excel_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), - m_irq_on(*this, "irq_on") + m_irq_on(*this, "irq_on"), + m_dac(*this, "dac"), + m_speech(*this, "speech"), + m_speech_rom(*this, "speech") { } // machine drivers @@ -166,9 +171,15 @@ public: DECLARE_INPUT_CHANGED_MEMBER(speech_bankswitch); +protected: + virtual void machine_start() override; + private: // devices/pointers required_device m_irq_on; + required_device m_dac; + optional_device m_speech; + optional_region_ptr m_speech_rom; // address maps void fexcel_map(address_map &map); @@ -182,8 +193,25 @@ private: DECLARE_READ8_MEMBER(speech_r); DECLARE_WRITE8_MEMBER(ttl_w); DECLARE_READ8_MEMBER(ttl_r); + + u8 m_speech_data; + u8 m_speech_bank; }; +void excel_state::machine_start() +{ + fidelbase_state::machine_start(); + + // zerofill + m_speech_data = 0; + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_data)); + save_item(NAME(m_speech_bank)); +} + + /****************************************************************************** Devices, I/O diff --git a/src/mame/drivers/fidel_phantom.cpp b/src/mame/drivers/fidel_phantom.cpp index c516dc6090f..dd07c7b1f14 100644 --- a/src/mame/drivers/fidel_phantom.cpp +++ b/src/mame/drivers/fidel_phantom.cpp @@ -28,6 +28,7 @@ Fidelity Phantom (model 6100) overview: #include "includes/fidelbase.h" #include "cpu/m6502/r65c02.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -42,7 +43,8 @@ class phantom_state : public fidelbase_state public: phantom_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), - m_rombank(*this, "rombank") + m_rombank(*this, "rombank"), + m_dac(*this, "dac") { } void fphantom(machine_config &config); @@ -54,6 +56,7 @@ protected: private: // devices/pointers required_memory_bank m_rombank; + required_device m_dac; void main_map(address_map &map); }; diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp index c5285922089..9e6c1e9dec4 100644 --- a/src/mame/drivers/fidel_sc12.cpp +++ b/src/mame/drivers/fidel_sc12.cpp @@ -53,6 +53,7 @@ If control Q4 is set, printer data can be read from I0. #include "includes/fidelbase.h" #include "cpu/m6502/r65c02.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "machine/timer.h" #include "bus/generic/slot.h" @@ -72,6 +73,7 @@ public: sc12_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), + m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -82,6 +84,7 @@ public: private: // devices/pointers required_device m_irq_on; + required_device m_dac; required_device m_cart; // address maps diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp index 948277d4aad..f3e0b425162 100644 --- a/src/mame/drivers/fidel_sc6.cpp +++ b/src/mame/drivers/fidel_sc6.cpp @@ -26,6 +26,7 @@ SC6 program is contained in BO6 and CG6. #include "includes/fidelbase.h" #include "cpu/mcs48/mcs48.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -44,6 +45,7 @@ public: sc6_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -53,6 +55,7 @@ public: private: // devices/pointers required_device m_maincpu; + required_device m_dac; required_device m_cart; // address maps diff --git a/src/mame/drivers/fidel_sc8.cpp b/src/mame/drivers/fidel_sc8.cpp index 8c0ee763dcf..a2a0a3c08dd 100644 --- a/src/mame/drivers/fidel_sc8.cpp +++ b/src/mame/drivers/fidel_sc8.cpp @@ -19,6 +19,7 @@ Fidelity Sensory Chess Challenger 8 overview: #include "includes/fidelbase.h" #include "cpu/z80/z80.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -32,13 +33,17 @@ class scc_state : public fidelbase_state { public: scc_state(const machine_config &mconfig, device_type type, const char *tag) : - fidelbase_state(mconfig, type, tag) + fidelbase_state(mconfig, type, tag), + m_dac(*this, "dac") { } // machine drivers void scc(machine_config &config); private: + // devices/pointers + required_device m_dac; + // address maps void main_map(address_map &map); void main_io(address_map &map); diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp index 935730b43ac..37b70749a1a 100644 --- a/src/mame/drivers/fidel_sc9.cpp +++ b/src/mame/drivers/fidel_sc9.cpp @@ -42,6 +42,7 @@ IRQ and write strobe are unused. Maximum known size is 16KB. #include "cpu/m6502/m6502.h" #include "machine/timer.h" +#include "sound/dac.h" #include "sound/volt_reg.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -55,12 +56,15 @@ IRQ and write strobe are unused. Maximum known size is 16KB. namespace { +// SC9 / shared + class sc9_state : public fidelbase_state { public: sc9_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), + m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -73,6 +77,7 @@ public: protected: // devices/pointers required_device m_irq_on; + required_device m_dac; required_device m_cart; // address maps @@ -93,6 +98,8 @@ protected: DECLARE_READ8_MEMBER(input_d7_r); }; +// SC9C + class sc9c_state : public sc9_state { public: diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index f80bc8d0a04..73825b3dd4e 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -107,6 +107,7 @@ determination and give you a language option on power up or something. #include "cpu/z80/z80.h" #include "machine/i8255.h" +#include "sound/s14001a.h" #include "speaker.h" // internal artwork @@ -120,7 +121,10 @@ class vcc_state : public fidelbase_state public: vcc_state(const machine_config &mconfig, device_type type, const char *tag) : fidelbase_state(mconfig, type, tag), - m_ppi8255(*this, "ppi8255") + m_ppi8255(*this, "ppi8255"), + m_speech(*this, "speech"), + m_speech_rom(*this, "speech"), + m_language(*this, "language") { } // RE button is tied to Z80 RESET pin @@ -135,6 +139,9 @@ protected: private: // devices/pointers required_device m_ppi8255; + required_device m_speech; + required_region_ptr m_speech_rom; + required_region_ptr m_language; // address maps void main_map(address_map &map); @@ -148,12 +155,20 @@ private: DECLARE_WRITE8_MEMBER(ppi_portb_w); DECLARE_READ8_MEMBER(ppi_portc_r); DECLARE_WRITE8_MEMBER(ppi_portc_w); + + u8 m_speech_bank; }; void vcc_state::machine_start() { fidelbase_state::machine_start(); + // zerofill + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_bank)); + // game relies on RAM filled with FF at power-on for (int i = 0; i < 0x400; i++) m_maincpu->space(AS_PROGRAM).write_byte(i + 0x4000, 0xff); diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index fb77e377b01..8498ac68913 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -158,6 +158,7 @@ IFP: Impact Printer - also compatible with C64 apparently. #include "machine/i8255.h" #include "machine/z80pio.h" #include "machine/timer.h" +#include "sound/s14001a.h" #include "speaker.h" // internal artwork @@ -173,17 +174,26 @@ public: fidelbase_state(mconfig, type, tag), m_irq_on(*this, "irq_on"), m_z80pio(*this, "z80pio"), - m_ppi8255(*this, "ppi8255") + m_ppi8255(*this, "ppi8255"), + m_speech(*this, "speech"), + m_speech_rom(*this, "speech"), + m_language(*this, "language") { } // machine drivers void vsc(machine_config &config); +protected: + virtual void machine_start() override; + private: // devices/pointers required_device m_irq_on; required_device m_z80pio; required_device m_ppi8255; + required_device m_speech; + required_region_ptr m_speech_rom; + required_region_ptr m_language; // address maps void main_map(address_map &map); @@ -204,8 +214,22 @@ private: DECLARE_READ8_MEMBER(pio_porta_r); DECLARE_READ8_MEMBER(pio_portb_r); DECLARE_WRITE8_MEMBER(pio_portb_w); + + u8 m_speech_bank; }; +void vsc_state::machine_start() +{ + fidelbase_state::machine_start(); + + // zerofill + m_speech_bank = 0; + + // register for savestates + save_item(NAME(m_speech_bank)); +} + + /****************************************************************************** Devices, I/O diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp index edaac71698b..6079031582d 100644 --- a/src/mame/drivers/intellect02.cpp +++ b/src/mame/drivers/intellect02.cpp @@ -84,21 +84,20 @@ private: required_device m_cart; required_ioport_array<2> m_inputs; - DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); - - // display stuff - void update_display(); - u8 m_digit_data; - u8 m_led_select; - // address maps void main_map(address_map &map); void main_io(address_map &map); + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + // I/O handlers + void update_display(); DECLARE_READ8_MEMBER(input_r); DECLARE_WRITE8_MEMBER(digit_w); DECLARE_WRITE8_MEMBER(control_w); + + u8 m_digit_data; + u8 m_led_select; }; void intel02_state::machine_start() diff --git a/src/mame/drivers/novag_delta1.cpp b/src/mame/drivers/novag_delta1.cpp index 098e52c0672..3ab5b49493f 100644 --- a/src/mame/drivers/novag_delta1.cpp +++ b/src/mame/drivers/novag_delta1.cpp @@ -53,6 +53,8 @@ private: void main_map(address_map &map); void main_io(address_map &map); + TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); } + // I/O handlers void update_display(); DECLARE_WRITE8_MEMBER(mux_w); @@ -65,8 +67,6 @@ private: u8 m_7seg_data; bool m_7seg_rc; bool m_blink; - - TIMER_DEVICE_CALLBACK_MEMBER(blink) { m_blink = !m_blink; update_display(); } }; void delta1_state::machine_start() diff --git a/src/mame/drivers/novag_mk1.cpp b/src/mame/drivers/novag_mk1.cpp index 99b7bdfe621..9bfba67f1c6 100644 --- a/src/mame/drivers/novag_mk1.cpp +++ b/src/mame/drivers/novag_mk1.cpp @@ -95,12 +95,13 @@ public: m_inputs(*this, "IN.%u", 0) { } + DECLARE_INPUT_CHANGED_MEMBER(reset_switch) { update_reset(newval); } + + // machine drivers void cmpchess(machine_config &config); void mk1(machine_config &config); void cnc(machine_config &config); - DECLARE_INPUT_CHANGED_MEMBER(reset_switch) { update_reset(newval); } - protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -113,6 +114,7 @@ private: optional_device m_beeper; required_ioport_array<4> m_inputs; + // address maps void main_map(address_map &map); void main_io(address_map &map); void cnc_io(address_map &map); @@ -122,6 +124,7 @@ private: void update_display(); void update_reset(ioport_value state); + // I/O handlers DECLARE_READ8_MEMBER(beeper_r); DECLARE_WRITE8_MEMBER(input_w); DECLARE_READ8_MEMBER(input_r); diff --git a/src/mame/drivers/novag_presto.cpp b/src/mame/drivers/novag_presto.cpp index 3b8293589c2..cb4e3d57600 100644 --- a/src/mame/drivers/novag_presto.cpp +++ b/src/mame/drivers/novag_presto.cpp @@ -53,6 +53,8 @@ public: void octo(machine_config &config); protected: + virtual void machine_start() override; + // devices/pointers required_device m_maincpu; required_device m_display; @@ -69,8 +71,6 @@ protected: bool m_kp_select; u8 m_inp_mux; u8 m_led_select; - - virtual void machine_start() override; }; void presto_state::machine_start() diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp index 2990a4e3448..0caf493bb2e 100644 --- a/src/mame/drivers/novag_sexpert.cpp +++ b/src/mame/drivers/novag_sexpert.cpp @@ -70,6 +70,9 @@ public: DECLARE_INPUT_CHANGED_MEMBER(sexpert_cpu_freq) { sexpert_set_cpu_freq(); } protected: + virtual void machine_start() override; + virtual void machine_reset() override; + // devices/pointers required_device m_maincpu; required_device m_irq_on; @@ -83,9 +86,6 @@ protected: required_device m_beeper; required_ioport_array<8> m_inputs; - virtual void machine_start() override; - virtual void machine_reset() override; - void sexpert_set_cpu_freq(); // address maps diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h index 12703476197..ff82c666d80 100644 --- a/src/mame/includes/fidelbase.h +++ b/src/mame/includes/fidelbase.h @@ -15,9 +15,6 @@ #include "includes/chessbase.h" #include "machine/bankdev.h" -#include "machine/timer.h" -#include "sound/dac.h" -#include "sound/s14001a.h" class fidelbase_state : public chessbase_state { @@ -25,11 +22,7 @@ public: fidelbase_state(const machine_config &mconfig, device_type type, const char *tag) : chessbase_state(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_mainmap(*this, "mainmap"), - m_speech(*this, "speech"), - m_speech_rom(*this, "speech"), - m_language(*this, "language"), - m_dac(*this, "dac") + m_mainmap(*this, "mainmap") { } DECLARE_INPUT_CHANGED_MEMBER(div_changed) { div_refresh(newval); } @@ -38,13 +31,6 @@ protected: // devices/pointers required_device m_maincpu; optional_device m_mainmap; - optional_device m_speech; - optional_region_ptr m_speech_rom; - optional_region_ptr m_language; - optional_device m_dac; - - u8 m_speech_data; - u8 m_speech_bank; // speech rom higher address bits // dynamic cpu divider void div_trampoline_w(offs_t offset, u8 data); diff --git a/src/mame/layout/novag_cforte.lay b/src/mame/layout/novag_cforte.lay index 1116cfd9c18..a9ad65fa3c3 100644 --- a/src/mame/layout/novag_cforte.lay +++ b/src/mame/layout/novag_cforte.lay @@ -4,7 +4,6 @@ - @@ -447,52 +446,50 @@ - + - - - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/novag_sforte.lay b/src/mame/layout/novag_sforte.lay index 3b1bd194ea7..0c39a77a6b5 100644 --- a/src/mame/layout/novag_sforte.lay +++ b/src/mame/layout/novag_sforte.lay @@ -5,7 +5,6 @@ - diff --git a/src/mame/layout/scisys_cp2000.lay b/src/mame/layout/scisys_cp2000.lay index de2ac7fa740..d6addead971 100644 --- a/src/mame/layout/scisys_cp2000.lay +++ b/src/mame/layout/scisys_cp2000.lay @@ -597,13 +597,12 @@ - + - - + - + diff --git a/src/mame/machine/fidelbase.cpp b/src/mame/machine/fidelbase.cpp index 5bac54d1cae..547ea7bd5f8 100644 --- a/src/mame/machine/fidelbase.cpp +++ b/src/mame/machine/fidelbase.cpp @@ -31,7 +31,6 @@ Read the official manual(s) on how to play. #include "emu.h" #include "includes/fidelbase.h" -#include "machine/timer.h" // machine start/reset @@ -41,12 +40,8 @@ void fidelbase_state::machine_start() chessbase_state::machine_start(); // zerofill/register for savestates - m_speech_data = 0; - m_speech_bank = 0; m_div_config = 0; - save_item(NAME(m_speech_data)); - save_item(NAME(m_speech_bank)); save_item(NAME(m_div_status)); save_item(NAME(m_div_config)); save_item(NAME(m_div_scale)); -- cgit v1.2.3