diff options
| author | 2019-02-15 16:04:20 +0900 | |
|---|---|---|
| committer | 2019-02-15 16:04:20 +0900 | |
| commit | c7b8147628e2e403ef3c16b67ebb8394dc11f576 (patch) | |
| tree | 7d43341486b9a92eedfe34b0f852347075af7eac /src/devices | |
| parent | 98657cf5d35d6a6141e8aac539e46d4389c3dd3b (diff) | |
ay8910.cpp : Updates
Use shorter / correct type values, Remove unnecessary arguments in handlers, Duplicates
device/bus/coco/cococart.cpp : Allow various types of delegates for install handler
5clown.cpp : Remove unnecessary arguments in some handler
kchamp.cpp : Remove unnecessary arguments in some handler
Diffstat (limited to 'src/devices')
| -rw-r--r-- | src/devices/bus/a2bus/a2arcadebd.cpp | 6 | ||||
| -rw-r--r-- | src/devices/bus/a2bus/a2mockingboard.cpp | 50 | ||||
| -rw-r--r-- | src/devices/bus/a2bus/ssprite.cpp | 6 | ||||
| -rw-r--r-- | src/devices/bus/cbus/pc9801_amd98.cpp | 16 | ||||
| -rw-r--r-- | src/devices/bus/coco/coco_ssc.cpp | 6 | ||||
| -rw-r--r-- | src/devices/bus/coco/cococart.cpp | 34 | ||||
| -rw-r--r-- | src/devices/bus/coco/cococart.h | 32 | ||||
| -rw-r--r-- | src/devices/bus/coco/dragon_jcbsnd.cpp | 4 | ||||
| -rw-r--r-- | src/devices/bus/cpc/playcity.cpp | 12 | ||||
| -rw-r--r-- | src/devices/bus/intv/ecs.cpp | 4 | ||||
| -rw-r--r-- | src/devices/bus/nes/sunsoft.cpp | 4 | ||||
| -rw-r--r-- | src/devices/bus/spectrum/fuller.cpp | 4 | ||||
| -rw-r--r-- | src/devices/bus/spectrum/melodik.cpp | 4 | ||||
| -rw-r--r-- | src/devices/sound/ay8910.cpp | 79 | ||||
| -rw-r--r-- | src/devices/sound/ay8910.h | 86 |
15 files changed, 166 insertions, 181 deletions
diff --git a/src/devices/bus/a2bus/a2arcadebd.cpp b/src/devices/bus/a2bus/a2arcadebd.cpp index 4bdd0a6911b..169971ea3e5 100644 --- a/src/devices/bus/a2bus/a2arcadebd.cpp +++ b/src/devices/bus/a2bus/a2arcadebd.cpp @@ -97,7 +97,7 @@ uint8_t a2bus_arcboard_device::read_c0nx(uint8_t offset) return m_tms->register_read(); case 6: - return m_ay->read_data(); + return m_ay->data_r(); } return 0xff; @@ -118,11 +118,11 @@ void a2bus_arcboard_device::write_c0nx(uint8_t offset, uint8_t data) break; case 5: - m_ay->write_address(data); + m_ay->address_w(data); break; case 6: - m_ay->write_data(data); + m_ay->data_w(data); break; } } diff --git a/src/devices/bus/a2bus/a2mockingboard.cpp b/src/devices/bus/a2bus/a2mockingboard.cpp index c1d67bfa7d3..c4c45b6975b 100644 --- a/src/devices/bus/a2bus/a2mockingboard.cpp +++ b/src/devices/bus/a2bus/a2mockingboard.cpp @@ -238,7 +238,7 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b ) { if (!BIT(data, 2)) { - m_ay1->reset_w(space, 0, 0); + m_ay1->reset_w(); } else { @@ -248,15 +248,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b ) break; case 1: // BDIR=0, BC1=1 (read PSG) - m_porta1 = m_ay1->read_data(); + m_porta1 = m_ay1->data_r(); break; case 2: // BDIR=1, BC1=0 (write PSG) - m_ay1->write_data(m_porta1); + m_ay1->data_w(m_porta1); break; case 3: // BDIR=1, BC1=1 (latch) - m_ay1->write_address(m_porta1); + m_ay1->address_w(m_porta1); break; } } @@ -266,10 +266,10 @@ WRITE8_MEMBER( a2bus_phasor_device::via1_out_b ) { if (!(data & 4)) { - m_ay1->reset_w(space, 0, 0); + m_ay1->reset_w(); if (m_native) { - m_ay2->reset_w(space, 0, 0); + m_ay2->reset_w(); } } else @@ -289,23 +289,23 @@ WRITE8_MEMBER( a2bus_phasor_device::via1_out_b ) case 1: // BDIR=0, BC1=1 (read PSG) if (BIT(chip_sel, 0)) - m_porta1 = m_ay1->read_data(); + m_porta1 = m_ay1->data_r(); if (BIT(chip_sel, 1)) - m_porta1 = m_ay2->read_data(); + m_porta1 = m_ay2->data_r(); break; case 2: // BDIR=1, BC1=0 (write PSG) if (BIT(chip_sel, 0)) - m_ay1->write_data(m_porta1); + m_ay1->data_w(m_porta1); if (BIT(chip_sel, 1)) - m_ay2->write_data(m_porta1); + m_ay2->data_w(m_porta1); break; case 3: // BDIR=1, BC1=1 (latch) if (BIT(chip_sel, 0)) - m_ay1->write_address(m_porta1); + m_ay1->address_w(m_porta1); if (BIT(chip_sel, 1)) - m_ay2->write_address(m_porta1); + m_ay2->address_w(m_porta1); break; } } @@ -320,7 +320,7 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b ) { if (!BIT(data, 2)) { - m_ay2->reset_w(space, 0, 0); + m_ay2->reset_w(); } else { @@ -330,15 +330,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b ) break; case 1: // BDIR=0, BC1=1 (read PSG) - m_porta2 = m_ay2->read_data(); + m_porta2 = m_ay2->data_r(); break; case 2: // BDIR=1, BC1=0 (write PSG) - m_ay2->write_data(m_porta2); + m_ay2->data_w(m_porta2); break; case 3: // BDIR=1, BC1=1 (latch) - m_ay2->write_data(m_porta2); + m_ay2->data_w(m_porta2); break; } } @@ -350,12 +350,12 @@ WRITE8_MEMBER( a2bus_phasor_device::via2_out_b ) { if (m_native) { - m_ay3->reset_w(space, 0, 0); - m_ay4->reset_w(space, 0, 0); + m_ay3->reset_w(); + m_ay4->reset_w(); } else { - m_ay2->reset_w(space, 0, 0); + m_ay2->reset_w(); } } else @@ -375,23 +375,23 @@ WRITE8_MEMBER( a2bus_phasor_device::via2_out_b ) case 1: // BDIR=0, BC1=1 (read PSG) if (BIT(chip_sel, 0)) - m_porta2 = m_ay3->read_data(); + m_porta2 = m_ay3->data_r(); if (BIT(chip_sel, 1)) - m_porta2 = m_ay4->read_data(); + m_porta2 = m_ay4->data_r(); break; case 2: // BDIR=1, BC1=0 (write PSG) if (BIT(chip_sel, 0)) - m_ay3->write_data(m_porta2); + m_ay3->data_w(m_porta2); if (BIT(chip_sel, 1)) - m_ay4->write_data(m_porta2); + m_ay4->data_w(m_porta2); break; case 3: // BDIR=1, BC1=1 (latch) if (BIT(chip_sel, 0)) - m_ay3->write_address(m_porta2); + m_ay3->address_w(m_porta2); if (BIT(chip_sel, 1)) - m_ay4->write_address(m_porta2); + m_ay4->address_w(m_porta2); break; } } diff --git a/src/devices/bus/a2bus/ssprite.cpp b/src/devices/bus/a2bus/ssprite.cpp index 818bde14b89..69e12dc98dd 100644 --- a/src/devices/bus/a2bus/ssprite.cpp +++ b/src/devices/bus/a2bus/ssprite.cpp @@ -104,7 +104,7 @@ uint8_t a2bus_ssprite_device::read_c0nx(uint8_t offset) return 0x1f | m_tms5220->status_r(); case 14: case 15: - return m_ay->read_data(); + return m_ay->data_r(); } return 0xff; @@ -125,11 +125,11 @@ void a2bus_ssprite_device::write_c0nx(uint8_t offset, uint8_t data) break; case 12: case 13: - m_ay->write_data(data); + m_ay->data_w(data); break; case 14: case 15: - m_ay->write_address(data); + m_ay->address_w(data); break; } } diff --git a/src/devices/bus/cbus/pc9801_amd98.cpp b/src/devices/bus/cbus/pc9801_amd98.cpp index f7207aabd21..ca7b32e7b4e 100644 --- a/src/devices/bus/cbus/pc9801_amd98.cpp +++ b/src/devices/bus/cbus/pc9801_amd98.cpp @@ -149,9 +149,9 @@ READ8_MEMBER(pc9801_amd98_device::read) switch(offset) { case 2: - return m_ay1->data_r(space,0); + return m_ay1->data_r(); case 3: - return m_ay2->data_r(space,0); + return m_ay2->data_r(); } printf("%02x\n",offset); @@ -164,16 +164,16 @@ WRITE8_MEMBER(pc9801_amd98_device::write) switch(offset) { case 0: - m_ay1->address_w(space,0,data); + m_ay1->address_w(data); break; case 1: - m_ay2->address_w(space,0,data); + m_ay2->address_w(data); break; case 2: - m_ay1->data_w(space,0,data); + m_ay1->data_w(data); break; case 3: - m_ay2->data_w(space,0,data); + m_ay2->data_w(data); break; default: printf("%02x %02x\n",offset,data); @@ -192,11 +192,11 @@ WRITE8_MEMBER(pc9801_amd98_device::ay3_data_latch_w) { case 0x47: //printf("%02x addr\n",m_ay3_latch); - m_ay3->address_w(space,0,m_ay3_latch); + m_ay3->address_w(m_ay3_latch); break; case 0x43: //printf("%02x data\n",m_ay3_latch); - m_ay3->data_w(space,0,m_ay3_latch); + m_ay3->data_w(m_ay3_latch); break; } } diff --git a/src/devices/bus/coco/coco_ssc.cpp b/src/devices/bus/coco/coco_ssc.cpp index d9546f61553..6dcd34a8f03 100644 --- a/src/devices/bus/coco/coco_ssc.cpp +++ b/src/devices/bus/coco/coco_ssc.cpp @@ -438,12 +438,12 @@ WRITE8_MEMBER(coco_ssc_device::ssc_port_c_w) { if( (data & (C_BDR|C_BC1)) == (C_BDR|C_BC1) ) /* BDIR = 1, BC1 = 1: latch address */ { - m_ay->address_w(space, 0, m_tms7000_portd); + m_ay->address_w(m_tms7000_portd); } if( ((data & C_BDR) == C_BDR) && ((data & C_BC1) == 0) ) /* BDIR = 1, BC1 = 0: write data */ { - m_ay->data_w(space, 0, m_tms7000_portd); + m_ay->data_w(m_tms7000_portd); } } @@ -493,7 +493,7 @@ READ8_MEMBER(coco_ssc_device::ssc_port_d_r) { if( ((m_tms7000_portc & C_BDR) == 0) && ((m_tms7000_portc & C_BC1) == C_BC1) ) /* psg read data */ { - m_tms7000_portd = m_ay->data_r(space, 0); + m_tms7000_portd = m_ay->data_r(); } } diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp index 2c009aa8724..93045e85230 100644 --- a/src/devices/bus/coco/cococart.cpp +++ b/src/devices/bus/coco/cococart.cpp @@ -597,40 +597,6 @@ address_space &device_cococart_interface::cartridge_space() //------------------------------------------------- -// install_read_handler -//------------------------------------------------- - -void device_cococart_interface::install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler) -{ - address_space &space(cartridge_space()); - space.install_read_handler(addrstart, addrend, rhandler); -} - - -//------------------------------------------------- -// install_write_handler -//------------------------------------------------- - -void device_cococart_interface::install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler) -{ - address_space &space(cartridge_space()); - space.install_write_handler(addrstart, addrend, whandler); -} - - -//------------------------------------------------- -// install_readwrite_handler -//------------------------------------------------- - -void device_cococart_interface::install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler) -{ - address_space &space(cartridge_space()); - space.install_read_handler(addrstart, addrend, rhandler); - space.install_write_handler(addrstart, addrend, whandler); -} - - -//------------------------------------------------- // set_line_value //------------------------------------------------- diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h index 3eb6f2874c1..cae4f333529 100644 --- a/src/devices/bus/coco/cococart.h +++ b/src/devices/bus/coco/cococart.h @@ -187,9 +187,35 @@ protected: // cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently // of the SCS or CTS lines address_space &cartridge_space(); - void install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler); - void install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler); - void install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler); + template<typename R> void install_read_handler(u16 addrstart, u16 addrend, R rhandler) + { + address_space &space(cartridge_space()); + space.install_read_handler(addrstart, addrend, rhandler); + } + template<typename W> void install_write_handler(u16 addrstart, u16 addrend, W whandler) + { + address_space &space(cartridge_space()); + space.install_write_handler(addrstart, addrend, whandler); + } + template<typename R, typename W> void install_readwrite_handler(u16 addrstart, u16 addrend, R rhandler, W whandler) + { + address_space &space(cartridge_space()); + space.install_read_handler(addrstart, addrend, rhandler); + space.install_write_handler(addrstart, addrend, whandler); + } + + void install_read_handler(u16 addrstart, u16 addrend, read8_delegate rhandler) { install_read_handler<read8_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8_delegate whandler) { install_write_handler<write8_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8m_delegate rhandler) { install_read_handler<read8m_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8m_delegate whandler) { install_write_handler<write8m_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8s_delegate rhandler) { install_read_handler<read8s_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8s_delegate whandler) { install_write_handler<write8s_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8sm_delegate rhandler) { install_read_handler<read8sm_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8sm_delegate whandler) { install_write_handler<write8sm_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8mo_delegate rhandler) { install_read_handler<read8mo_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8mo_delegate whandler) { install_write_handler<write8mo_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8smo_delegate rhandler) { install_read_handler<read8smo_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8smo_delegate whandler) { install_write_handler<write8smo_delegate>(addrstart, addrend, whandler); } // setting line values void set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value); diff --git a/src/devices/bus/coco/dragon_jcbsnd.cpp b/src/devices/bus/coco/dragon_jcbsnd.cpp index e24a9e08d3e..efb2bc42a62 100644 --- a/src/devices/bus/coco/dragon_jcbsnd.cpp +++ b/src/devices/bus/coco/dragon_jcbsnd.cpp @@ -53,8 +53,8 @@ dragon_jcbsnd_device::dragon_jcbsnd_device(const machine_config &mconfig, const void dragon_jcbsnd_device::device_start() { - install_write_handler(0xfefe, 0xfefe, write8_delegate(FUNC(ay8910_device::address_w), (ay8910_device *)m_ay8910)); - install_readwrite_handler(0xfeff, 0xfeff, read8_delegate(FUNC(ay8910_device::data_r), (ay8910_device *)m_ay8910), write8_delegate(FUNC(ay8910_device::data_w), (ay8910_device *)m_ay8910)); + install_write_handler(0xfefe, 0xfefe, write8smo_delegate(FUNC(ay8910_device::address_w), (ay8910_device *)m_ay8910)); + install_readwrite_handler(0xfeff, 0xfeff, read8smo_delegate(FUNC(ay8910_device::data_r), (ay8910_device *)m_ay8910), write8smo_delegate(FUNC(ay8910_device::data_w), (ay8910_device *)m_ay8910)); set_line_value(line::CART, line_value::Q); } diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp index f9d225ef7b6..1e6f3b0cfa6 100644 --- a/src/devices/bus/cpc/playcity.cpp +++ b/src/devices/bus/cpc/playcity.cpp @@ -99,32 +99,32 @@ WRITE8_MEMBER(cpc_playcity_device::ctc_w) WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w) { - m_ymz1->address_w(space,offset,data); + m_ymz1->address_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz2_address_w) { - m_ymz2->address_w(space,offset,data); + m_ymz2->address_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz1_data_w) { - m_ymz1->data_w(space,offset,data); + m_ymz1->data_w(data); } WRITE8_MEMBER(cpc_playcity_device::ymz2_data_w) { - m_ymz2->data_w(space,offset,data); + m_ymz2->data_w(data); } READ8_MEMBER(cpc_playcity_device::ymz1_data_r) { - return m_ymz1->data_r(space,offset); + return m_ymz1->data_r(); } READ8_MEMBER(cpc_playcity_device::ymz2_data_r) { - return m_ymz2->data_r(space,offset); + return m_ymz2->data_r(); } void cpc_playcity_device::update_ymz_clock() diff --git a/src/devices/bus/intv/ecs.cpp b/src/devices/bus/intv/ecs.cpp index 2df95ae032e..0bb3be4cf09 100644 --- a/src/devices/bus/intv/ecs.cpp +++ b/src/devices/bus/intv/ecs.cpp @@ -167,7 +167,7 @@ READ16_MEMBER(intv_ecs_device::read_romf0) READ16_MEMBER(intv_ecs_device::read_ay) { if (ACCESSING_BITS_0_7) - return m_snd->read(space, offset, mem_mask); + return m_snd->read(offset); else return 0xffff; } @@ -179,7 +179,7 @@ READ16_MEMBER(intv_ecs_device::read_ay) WRITE16_MEMBER(intv_ecs_device::write_ay) { if (ACCESSING_BITS_0_7) - return m_snd->write(space, offset, data, mem_mask); + return m_snd->write(offset, data); } diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp index f62fa24e67d..3ce39de4295 100644 --- a/src/devices/bus/nes/sunsoft.cpp +++ b/src/devices/bus/nes/sunsoft.cpp @@ -585,10 +585,10 @@ WRITE8_MEMBER(nes_sunsoft_5_device::write_h) switch (offset & 0x6000) { case 0x4000: - m_ym2149->address_w(space, 0, data & 0x0f); + m_ym2149->address_w(data & 0x0f); break; case 0x6000: - m_ym2149->data_w(space, 0, data); + m_ym2149->data_w(data); break; default: fme7_write(space, offset, data, mem_mask); diff --git a/src/devices/bus/spectrum/fuller.cpp b/src/devices/bus/spectrum/fuller.cpp index 36275ccc4cd..bf3630dc9ff 100644 --- a/src/devices/bus/spectrum/fuller.cpp +++ b/src/devices/bus/spectrum/fuller.cpp @@ -92,8 +92,8 @@ void spectrum_fuller_device::device_reset() { m_exp->set_io_space(&io_space()); - io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8_delegate(FUNC(ay8910_device::address_w), m_psg.target())); - io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8_delegate(FUNC(ay8910_device::data_w), m_psg.target())); + io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target())); + io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target())); io_space().install_read_handler(0x7f, 0x7f, 0, 0xff00, 0, read8_delegate(FUNC(spectrum_fuller_device::joystick_r), this)); } diff --git a/src/devices/bus/spectrum/melodik.cpp b/src/devices/bus/spectrum/melodik.cpp index 8303d4c436c..0a7e04371fe 100644 --- a/src/devices/bus/spectrum/melodik.cpp +++ b/src/devices/bus/spectrum/melodik.cpp @@ -68,8 +68,8 @@ void spectrum_melodik_device::device_reset() { m_exp->set_io_space(&io_space()); - io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8_delegate(FUNC(ay8910_device::address_w), m_psg.target())); - io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8_delegate(FUNC(ay8910_device::data_w), m_psg.target())); + io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target())); + io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target())); } //************************************************************************** diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp index 1d594a06c2c..00e9f324f87 100644 --- a/src/devices/sound/ay8910.cpp +++ b/src/devices/sound/ay8910.cpp @@ -120,7 +120,7 @@ /*************************************************************************** - ay8910.c + ay8910.cpp Emulation of the AY-3-8910 / YM2149 sound chip. @@ -785,7 +785,7 @@ static const ay8910_device::mosfet_param ay8910_mosfet_param = * *************************************/ -static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, const ay8910_device::ay_ym_param *par_env, int normalize, double factor, int zero_is_off, int32_t *tab) +static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, const ay8910_device::ay_ym_param *par_env, int normalize, double factor, int zero_is_off, s32 *tab) { double min = 10.0, max = 0.0; @@ -844,7 +844,7 @@ static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *p /* for (e=0;e<16;e++) printf("%d %d\n",e<<10, tab[e<<10]); */ } -static inline void build_single_table(double rl, const ay8910_device::ay_ym_param *par, int normalize, int32_t *tab, int zero_is_off) +static inline void build_single_table(double rl, const ay8910_device::ay_ym_param *par, int normalize, s32 *tab, int zero_is_off) { int j; double rt; @@ -883,7 +883,7 @@ static inline void build_single_table(double rl, const ay8910_device::ay_ym_para } -static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param &par, const double rd, int32_t *tab) +static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param &par, const double rd, s32 *tab) { int j; @@ -907,7 +907,7 @@ static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param } -uint16_t ay8910_device::mix_3D() +u16 ay8910_device::mix_3D() { int indx = 0, chan; @@ -1262,7 +1262,7 @@ void ay8910_device::device_start() m_streams = 1; } - m_vol3d_table = make_unique_clear<int32_t[]>(8*32*32*32); + m_vol3d_table = make_unique_clear<s32[]>(8*32*32*32); build_mixer_table(); @@ -1293,7 +1293,7 @@ void ay8910_device::ay8910_reset_ym() m_count_env = 0; m_prescale_noise = 0; m_last_enable = -1; /* force a write */ - for (i = 0;i < AY_PORTA;i++) + for (i = 0; i < AY_PORTA; i++) ay8910_write_reg(i,0); m_ready = 1; #if ENABLE_REGISTER_TEST @@ -1338,7 +1338,7 @@ void ay8910_device::device_clock_changed() ay_set_clock(clock()); } -void ay8910_device::ay8910_write_ym(int addr, uint8_t data) +void ay8910_device::ay8910_write_ym(int addr, u8 data) { if (addr & 1) { @@ -1369,7 +1369,7 @@ void ay8910_device::ay8910_write_ym(int addr, uint8_t data) } } -uint8_t ay8910_device::ay8910_read_ym() +u8 ay8910_device::ay8910_read_ym() { device_type chip_type = type(); int r = m_register_latch; @@ -1418,13 +1418,13 @@ uint8_t ay8910_device::ay8910_read_ym() - YM2149: no anomaly */ if (chip_type == AY8910) { - const uint8_t mask[0x10]={ + const u8 mask[0x10]={ 0xff,0x0f,0xff,0x0f,0xff,0x0f,0x1f,0xff,0x1f,0x1f,0x1f,0xff,0xff,0x0f,0xff,0xff }; return m_regs[r] & mask[r]; } else if (chip_type == AY8914) { - const uint8_t mask[0x10]={ + const u8 mask[0x10]={ 0xff,0x0f,0xff,0x0f,0xff,0x0f,0x1f,0xff,0x3f,0x3f,0x3f,0xff,0xff,0x0f,0xff,0xff }; return m_regs[r] & mask[r]; @@ -1454,74 +1454,69 @@ void ay8910_device::device_reset() * *************************************/ -READ8_MEMBER( ay8910_device::data_r ) -{ - return ay8910_read_ym(); -} - -WRITE8_MEMBER( ay8910_device::address_w ) +void ay8910_device::address_w(u8 data) { #if ENABLE_REGISTER_TEST return; #else - data_address_w(space, 1, data); + ay8910_write_ym(0, data); #endif } -WRITE8_MEMBER( ay8910_device::data_w ) +void ay8910_device::data_w(u8 data) { #if ENABLE_REGISTER_TEST return; #else - data_address_w(space, 0, data); + ay8910_write_ym(1, data); #endif } // here, BC1 is hooked up to A0 on the host and BC2 is hooked up to A1 -WRITE8_MEMBER( ay8910_device::write_bc1_bc2 ) +void ay8910_device::write_bc1_bc2(offs_t offset, u8 data) { switch (offset & 3) { case 0: // latch address - address_w(space, 0, data); + address_w(data); break; case 1: // inactive break; case 2: // write to psg - data_w(space, 0, data); + data_w(data); break; case 3: // latch address - address_w(space, 0, data); + address_w(data); break; } } -static const int mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8, 9, 10, 14, 15 }; +static const u8 mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8, 9, 10, 14, 15 }; -READ8_MEMBER( ay8914_device::read ) +u8 ay8914_device::read(offs_t offset) { - uint16_t rv; - address_w(space, 0, mapping8914to8910[offset & 0xf]); - rv = (uint16_t) data_r(space, 0); + u8 rv; + address_w(mapping8914to8910[offset & 0xf]); + rv = data_r(); return rv; } -WRITE8_MEMBER( ay8914_device::write ) +void ay8914_device::write(offs_t offset, u8 data) { - address_w(space, 0, mapping8914to8910[offset & 0xf]); - data_w(space, 0, data & 0xff); + address_w(mapping8914to8910[offset & 0xf]); + data_w(data & 0xff); } DEFINE_DEVICE_TYPE(AY8910, ay8910_device, "ay8910", "AY-3-8910A PSG") -ay8910_device::ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ay8910_device::ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, AY8910, tag, owner, clock, PSG_TYPE_AY, 3, 2) { } -ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, +ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, psg_type_t psg_type, int streams, int ioports) : device_t(mconfig, type, tag, owner, clock), device_sound_interface(mconfig, *this), @@ -1589,7 +1584,7 @@ void ay8910_device::set_type(psg_type_t psg_type) DEFINE_DEVICE_TYPE(AY8912, ay8912_device, "ay8912", "AY-3-8912A PSG") -ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, AY8912, tag, owner, clock, PSG_TYPE_AY, 3, 1) { } @@ -1597,7 +1592,7 @@ ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(AY8913, ay8913_device, "ay8913", "AY-3-8913 PSG") -ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, AY8913, tag, owner, clock, PSG_TYPE_AY, 3, 0) { } @@ -1605,7 +1600,7 @@ ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(AY8914, ay8914_device, "ay8914", "AY-3-8914A PSG") -ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, AY8914, tag, owner, clock, PSG_TYPE_AY, 3, 2) { } @@ -1613,7 +1608,7 @@ ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(AY8930, ay8930_device, "ay8930", "AY8930 EPSG") -ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, AY8930, tag, owner, clock, PSG_TYPE_AY, 3, 2) { } @@ -1621,7 +1616,7 @@ ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(YM2149, ym2149_device, "ym2149", "YM2149 SSG") -ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, YM2149, tag, owner, clock, PSG_TYPE_YM, 3, 2) { } @@ -1629,7 +1624,7 @@ ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(YM3439, ym3439_device, "ym3439", "YM3439 SSGC") -ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, YM3439, tag, owner, clock, PSG_TYPE_YM, 3, 2) { } @@ -1637,7 +1632,7 @@ ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(YMZ284, ymz284_device, "ymz284", "YMZ284 SSGL") -ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, YMZ284, tag, owner, clock, PSG_TYPE_YM, 1, 0) { } @@ -1645,7 +1640,7 @@ ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, dev DEFINE_DEVICE_TYPE(YMZ294, ymz294_device, "ymz294", "YMZ294 SSGLP") -ymz294_device::ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +ymz294_device::ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : ay8910_device(mconfig, YMZ294, tag, owner, clock, PSG_TYPE_YM, 1, 0) { } diff --git a/src/devices/sound/ay8910.h b/src/devices/sound/ay8910.h index 63a8575f1fa..c1bbf718245 100644 --- a/src/devices/sound/ay8910.h +++ b/src/devices/sound/ay8910.h @@ -62,7 +62,7 @@ public: }; // construction/destruction - ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // configuration helpers void set_flags(int flags) { m_flags = flags; } @@ -73,24 +73,21 @@ public: auto port_a_write_callback() { return m_port_a_write_cb.bind(); } auto port_b_write_callback() { return m_port_b_write_cb.bind(); } - DECLARE_READ8_MEMBER( data_r ); - DECLARE_WRITE8_MEMBER( address_w ); - DECLARE_WRITE8_MEMBER( data_w ); - u8 read_data() { return ay8910_read_ym(); } - void write_address(u8 data) { ay8910_write_ym(0, data); } - void write_data(u8 data) { ay8910_write_ym(1, data); } + u8 data_r() { return ay8910_read_ym(); } + void address_w(u8 data); + void data_w(u8 data); /* /RES */ - DECLARE_WRITE8_MEMBER( reset_w ) { ay8910_reset_ym(); } + void reset_w(u8 data = 0) { ay8910_reset_ym(); } // use this when BC1 == A0; here, BC1=0 selects 'data' and BC1=1 selects 'latch address' - DECLARE_WRITE8_MEMBER( data_address_w ) { ay8910_write_ym(~offset & 1, data); } // note that directly connecting BC1 to A0 puts data on 0 and address on 1 + void data_address_w(offs_t offset, u8 data) { ay8910_write_ym(~offset & 1, data); } // note that directly connecting BC1 to A0 puts data on 0 and address on 1 // use this when BC1 == !A0; here, BC1=0 selects 'latch address' and BC1=1 selects 'data' - DECLARE_WRITE8_MEMBER( address_data_w ) { ay8910_write_ym(offset & 1, data); } + void address_data_w(offs_t offset, u8 data) { ay8910_write_ym(offset & 1, data); } // bc1=a0, bc2=a1 - DECLARE_WRITE8_MEMBER(write_bc1_bc2); + void write_bc1_bc2(offs_t offset, u8 data); void set_volume(int channel,int volume); void ay_set_clock(int clock); @@ -113,13 +110,10 @@ public: // internal interface for PSG component of YM device // FIXME: these should be private, but vector06 accesses them directly - void ay8910_write_ym(int addr, uint8_t data); - uint8_t ay8910_read_ym(); - void ay8910_reset_ym(); protected: ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, - uint32_t clock, psg_type_t psg_type, int streams, int ioports); + u32 clock, psg_type_t psg_type, int streams, int ioports); // device-level overrides virtual void device_start() override; @@ -140,11 +134,15 @@ private: // internal helpers void set_type(psg_type_t psg_type); - inline uint16_t mix_3D(); + inline u16 mix_3D(); void ay8910_write_reg(int r, int v); void build_mixer_table(); void ay8910_statesave(); + void ay8910_write_ym(int addr, u8 data); + u8 ay8910_read_ym(); + void ay8910_reset_ym(); + // internal state psg_type_t m_type; int m_streams; @@ -152,29 +150,29 @@ private: int m_ready; sound_stream *m_channel; bool m_active; - int32_t m_register_latch; - uint8_t m_regs[16]; - int32_t m_last_enable; - int32_t m_count[NUM_CHANNELS]; - uint8_t m_output[NUM_CHANNELS]; - uint8_t m_prescale_noise; - int32_t m_count_noise; - int32_t m_count_env; - int8_t m_env_step; - uint32_t m_env_volume; - uint8_t m_hold,m_alternate,m_attack,m_holding; - int32_t m_rng; - uint8_t m_mode; - uint8_t m_env_step_mask; + s32 m_register_latch; + u8 m_regs[16]; + s32 m_last_enable; + s32 m_count[NUM_CHANNELS]; + u8 m_output[NUM_CHANNELS]; + u8 m_prescale_noise; + s32 m_count_noise; + s32 m_count_env; + s8 m_env_step; + u32 m_env_volume; + u8 m_hold,m_alternate,m_attack,m_holding; + s32 m_rng; + u8 m_mode; + u8 m_env_step_mask; /* init parameters ... */ int m_step; int m_zero_is_off; - uint8_t m_vol_enabled[NUM_CHANNELS]; + u8 m_vol_enabled[NUM_CHANNELS]; const ay_ym_param *m_par; const ay_ym_param *m_par_env; - int32_t m_vol_table[NUM_CHANNELS][16]; - int32_t m_env_table[NUM_CHANNELS][32]; - std::unique_ptr<int32_t[]> m_vol3d_table; + s32 m_vol_table[NUM_CHANNELS][16]; + s32 m_env_table[NUM_CHANNELS][32]; + std::unique_ptr<s32[]> m_vol3d_table; int m_flags; /* Flags */ int m_res_load[3]; /* Load on channel in ohms */ devcb_read8 m_port_a_read_cb; @@ -188,7 +186,7 @@ DECLARE_DEVICE_TYPE(AY8910, ay8910_device) class ay8912_device : public ay8910_device { public: - ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(AY8912, ay8912_device) @@ -196,7 +194,7 @@ DECLARE_DEVICE_TYPE(AY8912, ay8912_device) class ay8913_device : public ay8910_device { public: - ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(AY8913, ay8913_device) @@ -204,11 +202,11 @@ DECLARE_DEVICE_TYPE(AY8913, ay8913_device) class ay8914_device : public ay8910_device { public: - ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); /* AY8914 handlers needed due to different register map */ - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + u8 read(offs_t offset); + void write(offs_t offset, u8 data); }; DECLARE_DEVICE_TYPE(AY8914, ay8914_device) @@ -216,7 +214,7 @@ DECLARE_DEVICE_TYPE(AY8914, ay8914_device) class ay8930_device : public ay8910_device { public: - ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(AY8930, ay8930_device) @@ -224,7 +222,7 @@ DECLARE_DEVICE_TYPE(AY8930, ay8930_device) class ym2149_device : public ay8910_device { public: - ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(YM2149, ym2149_device) @@ -232,7 +230,7 @@ DECLARE_DEVICE_TYPE(YM2149, ym2149_device) class ym3439_device : public ay8910_device { public: - ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(YM3439, ym3439_device) @@ -240,7 +238,7 @@ DECLARE_DEVICE_TYPE(YM3439, ym3439_device) class ymz284_device : public ay8910_device { public: - ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(YMZ284, ymz284_device) @@ -248,7 +246,7 @@ DECLARE_DEVICE_TYPE(YMZ284, ymz284_device) class ymz294_device : public ay8910_device { public: - ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; DECLARE_DEVICE_TYPE(YMZ294, ymz294_device) |
