From 2323219c5c7b80fefe78c79d14f80a5a1322446d Mon Sep 17 00:00:00 2001 From: angelosa Date: Thu, 28 Jan 2016 23:49:55 +0100 Subject: [PATCH] Added sound irq ack, removed hack (doesn't seem necessary) --- src/mame/drivers/overdriv.cpp | 17 +++++++++++++---- src/mame/includes/overdriv.h | 4 +--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp index d4feb91680c..6af30811242 100644 --- a/src/mame/drivers/overdriv.cpp +++ b/src/mame/drivers/overdriv.cpp @@ -127,9 +127,10 @@ WRITE16_MEMBER(overdriv_state::cpuB_ctrl_w) WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w) { - m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE); + m_audiocpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); } + WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq_x_w) { m_subcpu->set_input_line(5, HOLD_LINE); // likely wrong @@ -167,7 +168,7 @@ static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state ) AM_RANGE(0x238000, 0x238001) AM_WRITE(overdriv_cpuB_irq_x_w) ADDRESS_MAP_END -// HACK ALERT +#if UNUSED_FUNCTION WRITE16_MEMBER( overdriv_state::overdriv_k053246_word_w ) { m_k053246->k053246_word_w(space,offset,data,mem_mask); @@ -190,6 +191,7 @@ WRITE16_MEMBER( overdriv_state::overdriv_k053246_word_w ) //printf("%02x %04x %04x\n", offset, data, mem_mask); } +#endif static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state ) AM_RANGE(0x000000, 0x03ffff) AM_ROM @@ -197,17 +199,24 @@ static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state ) AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM //AM_DEVREADWRITE("k053250_1", k053250_device, ram_r, ram_w) AM_RANGE(0x100000, 0x10000f) AM_DEVREADWRITE("k053250_1", k053250_device, reg_r, reg_w) AM_RANGE(0x108000, 0x10800f) AM_DEVREADWRITE("k053250_2", k053250_device, reg_r, reg_w) - AM_RANGE(0x118000, 0x118fff) AM_RAM AM_SHARE("sprram") //AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) // data gets copied to sprite chip with DMA.. + AM_RANGE(0x118000, 0x118fff) AM_DEVREADWRITE("k053246", k053247_device, k053247_word_r, k053247_word_w) // data gets copied to sprite chip with DMA.. AM_RANGE(0x120000, 0x120001) AM_DEVREAD("k053246", k053247_device, k053246_word_r) AM_RANGE(0x128000, 0x128001) AM_READWRITE(cpuB_ctrl_r, cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */ - AM_RANGE(0x130000, 0x130007) AM_WRITE(overdriv_k053246_word_w) // AM_DEVWRITE("k053246", k053247_device, k053246_word_w) + AM_RANGE(0x130000, 0x130007) AM_DEVREADWRITE8("k053246", k053247_device, k053246_r,k053246_w,0xffff) AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1") AM_RANGE(0x208000, 0x20bfff) AM_RAM AM_RANGE(0x218000, 0x219fff) AM_DEVREAD("k053250_1", k053250_device, rom_r) AM_RANGE(0x220000, 0x221fff) AM_DEVREAD("k053250_2", k053250_device, rom_r) ADDRESS_MAP_END +WRITE8_MEMBER(overdriv_state::sound_ack_w) +{ + m_audiocpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); +} + static ADDRESS_MAP_START( overdriv_sound_map, AS_PROGRAM, 8, overdriv_state ) + AM_RANGE(0x0000, 0x0000) AM_WRITE(sound_ack_w) + // 0x180 AM_RANGE(0x0200, 0x0201) AM_DEVREADWRITE("ymsnd", ym2151_device,read,write) AM_RANGE(0x0400, 0x042f) AM_DEVREADWRITE("k053260_1", k053260_device, read, write) AM_RANGE(0x0600, 0x062f) AM_DEVREADWRITE("k053260_2", k053260_device, read, write) diff --git a/src/mame/includes/overdriv.h b/src/mame/includes/overdriv.h index ad0cceba7a7..21652d9f1c8 100644 --- a/src/mame/includes/overdriv.h +++ b/src/mame/includes/overdriv.h @@ -24,7 +24,6 @@ public: m_k053246(*this, "k053246"), m_k053251(*this, "k053251"), m_k053252(*this, "k053252"), - m_sprram(*this, "sprram"), m_screen(*this, "screen") { } @@ -45,13 +44,13 @@ public: required_device m_k053246; required_device m_k053251; required_device m_k053252; - required_shared_ptr m_sprram; required_device m_screen; DECLARE_WRITE16_MEMBER(eeprom_w); DECLARE_WRITE16_MEMBER(cpuA_ctrl_w); DECLARE_READ16_MEMBER(cpuB_ctrl_r); DECLARE_WRITE16_MEMBER(cpuB_ctrl_w); DECLARE_WRITE16_MEMBER(overdriv_soundirq_w); + DECLARE_WRITE8_MEMBER(sound_ack_w); DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq_x_w); DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq_y_w); virtual void machine_start() override; @@ -60,7 +59,6 @@ public: INTERRUPT_GEN_MEMBER(cpuB_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(overdriv_cpuA_scanline); - DECLARE_WRITE16_MEMBER( overdriv_k053246_word_w ); K051316_CB_MEMBER(zoom_callback_1); K051316_CB_MEMBER(zoom_callback_2); K053246_CB_MEMBER(sprite_callback);