diff options
author | smf- <smf-@users.noreply.github.com> | 2013-05-11 13:20:38 +0000 |
---|---|---|
committer | smf- <smf-@users.noreply.github.com> | 2013-05-11 13:20:38 +0000 |
commit | 3a8b7344f0af1a77c60fc54dbe69f5d6fce6ff5c (patch) | |
tree | a560a31ab109e6d28501b556bac5cce3fe2e47a3 /src/mess/drivers/pc8801.c | |
parent | 725996afbd42bed3fbd2d8ec80f37511c9d7f9c8 (diff) |
modernised YM2203 [smf]
Diffstat (limited to 'src/mess/drivers/pc8801.c')
-rw-r--r-- | src/mess/drivers/pc8801.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index 247893692c9..f393e098ef1 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -305,7 +305,8 @@ public: m_rtc(*this, UPD1990A_TAG), m_cassette(*this, "cassette"), m_beeper(*this, "beeper"), - m_opna(*this, "opna") + m_opna(*this, "opna"), + m_opn(*this, "opn") { } required_device<cpu_device> m_maincpu; @@ -315,6 +316,7 @@ public: required_device<cassette_image_device> m_cassette; required_device<beep_device> m_beeper; required_device<ym2608_device> m_opna; + required_device<ym2203_device> m_opn; UINT8 *m_work_ram; UINT8 *m_hi_work_ram; UINT8 *m_ext_work_ram; @@ -1700,7 +1702,7 @@ READ8_MEMBER(pc8801_state::pc8801_sound_board_r) if(m_has_opna) return m_opna->read(space, offset); - return (offset & 2) ? 0xff : ym2203_r(machine().device("opn"), space, offset); + return (offset & 2) ? 0xff : m_opn->read(space, offset); } WRITE8_MEMBER(pc8801_state::pc8801_sound_board_w) @@ -1708,7 +1710,7 @@ WRITE8_MEMBER(pc8801_state::pc8801_sound_board_w) if(m_has_opna) m_opna->write(space, offset,data); else if((offset & 2) == 0) - ym2203_w(machine().device("opn"), space, offset,data); + m_opn->write(space, offset, data); } READ8_MEMBER(pc8801_state::pc8801_opna_r) @@ -2588,20 +2590,17 @@ READ8_MEMBER(pc8801_state::opn_porta_r) } READ8_MEMBER(pc8801_state::opn_portb_r){ return ioport("OPN_PB")->read(); } -static const ym2203_interface pc88_ym2203_intf = +static const ay8910_interface ay8910_config = { - { - AY8910_LEGACY_OUTPUT, - AY8910_DEFAULT_LOADS, - DEVCB_DRIVER_MEMBER(pc8801_state,opn_porta_r), - DEVCB_DRIVER_MEMBER(pc8801_state,opn_portb_r), - DEVCB_NULL, - DEVCB_NULL - }, - DEVCB_DRIVER_LINE_MEMBER(pc8801_state,pc8801_sound_irq) + AY8910_LEGACY_OUTPUT, + AY8910_DEFAULT_LOADS, + DEVCB_DRIVER_MEMBER(pc8801_state,opn_porta_r), + DEVCB_DRIVER_MEMBER(pc8801_state,opn_portb_r), + DEVCB_NULL, + DEVCB_NULL }; -static const ay8910_interface ay8910_config = +static const ay8910_interface single_ay8910_config = { AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT, AY8910_DEFAULT_LOADS, @@ -2702,12 +2701,13 @@ static MACHINE_CONFIG_START( pc8801, pc8801_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("opn", YM2203, MASTER_CLOCK) - MCFG_SOUND_CONFIG(pc88_ym2203_intf) + MCFG_YM2203_IRQ_HANDLER(WRITELINE(pc8801_state, pc8801_sound_irq)) + MCFG_YM2203_AY8910_INTF(&ay8910_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ADD("opna", YM2608, MASTER_CLOCK*2) MCFG_YM2608_IRQ_HANDLER(WRITELINE(pc8801_state, pc8801_sound_irq)) - MCFG_YM2608_AY8910_INTF(&ay8910_config) + MCFG_YM2608_AY8910_INTF(&single_ay8910_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) MCFG_SOUND_ADD("beeper", BEEP, 0) |