From 243bbdc1521c86fcf4383ad7c5b80d61ed3bbdd9 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 1 Jun 2018 16:33:51 -0400 Subject: seta.cpp: Acknowledge more interrupts (nw) --- src/mame/drivers/seta.cpp | 19 ++++++++++++++----- src/mame/includes/seta.h | 1 + 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp index f08af229961..bee40948f5e 100644 --- a/src/mame/drivers/seta.cpp +++ b/src/mame/drivers/seta.cpp @@ -1724,14 +1724,23 @@ void seta_state::tndrcade_map(address_map &map) (with slight variations, and Meta Fox protection hooked in) ***************************************************************************/ +WRITE8_MEMBER(seta_state::twineagl_ctrl_w) +{ + if ((data & 0x30) == 0) + { + m_maincpu->set_input_line(1, CLEAR_LINE); + m_maincpu->set_input_line(3, CLEAR_LINE); + } +} + void seta_state::downtown_map(address_map &map) { map(0x000000, 0x09ffff).rom(); // ROM map(0x100000, 0x103fff).rw(m_x1, FUNC(x1_010_device::word_r), FUNC(x1_010_device::word_w)); // Sound map(0x200000, 0x200001).noprw(); // watchdog? (twineagl) - map(0x300000, 0x300001).nopw(); // IRQ enable/acknowledge? + map(0x300000, 0x300001).w(this, FUNC(seta_state::ipl1_ack_w)); map(0x400000, 0x400007).w(this, FUNC(seta_state::twineagl_tilebank_w)); // special tile banking to animate water in twineagl - map(0x500000, 0x500001).nopw(); // ? + map(0x500001, 0x500001).w(this, FUNC(seta_state::twineagl_ctrl_w)); map(0x600000, 0x600003).r(this, FUNC(seta_state::seta_dsw_r)); // DSW map(0x700000, 0x7003ff).ram().share("paletteram1"); // Palette map(0x800000, 0x800005).writeonly().share("vctrl_0");// VRAM Ctrl @@ -7893,7 +7902,7 @@ MACHINE_CONFIG_START(seta_state::twineagl) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ MCFG_DEVICE_PROGRAM_MAP(downtown_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_assert) MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ MCFG_DEVICE_PROGRAM_MAP(twineagl_sub_map) @@ -7939,7 +7948,7 @@ MACHINE_CONFIG_START(seta_state::downtown) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(downtown_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("m_scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert) MCFG_DEVICE_ADD("sub", M65C02, XTAL(16'000'000)/8) /* verified on pcb */ MCFG_DEVICE_PROGRAM_MAP(downtown_sub_map) @@ -8131,7 +8140,7 @@ MACHINE_CONFIG_START(seta_state::metafox) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ MCFG_DEVICE_PROGRAM_MAP(downtown_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_assert) MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ MCFG_DEVICE_PROGRAM_MAP(metafox_sub_map) diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h index a2f08d5fd2c..d8bc752e5e5 100644 --- a/src/mame/includes/seta.h +++ b/src/mame/includes/seta.h @@ -167,6 +167,7 @@ public: DECLARE_READ8_MEMBER(downtown_ip_r); DECLARE_WRITE8_MEMBER(calibr50_sub_bankswitch_w); DECLARE_WRITE8_MEMBER(calibr50_soundlatch2_w); + DECLARE_WRITE8_MEMBER(twineagl_ctrl_w); DECLARE_READ16_MEMBER(twineagl_debug_r); DECLARE_READ16_MEMBER(twineagl_200100_r); DECLARE_WRITE16_MEMBER(twineagl_200100_w); -- cgit v1.2.3