summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cps1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cps1.cpp')
-rw-r--r--src/mame/drivers/cps1.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index 7d269936621..8589a5ed202 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -339,7 +339,7 @@ INTERRUPT_GEN_MEMBER(cps_state::cps1_interrupt)
/* Strider also has a IRQ4 handler. It is input port related, but the game */
/* works without it. It is the *only* CPS1 game to have that. */
/* ...until we found out that ganbare relies on it, see below */
- device.execute().set_input_line(2, HOLD_LINE);
+ device.execute().set_input_line(2, ASSERT_LINE);
}
TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
@@ -347,7 +347,17 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
/* not sure on the timing or source of this - the game needs it once per frame, */
/* otherwise you get a "HARD ERROR" after boot */
if (param == 0)
- m_maincpu->set_input_line(4, HOLD_LINE);
+ m_maincpu->set_input_line(4, ASSERT_LINE);
+}
+
+IRQ_CALLBACK_MEMBER(cps_state::cps1_int_ack)
+{
+ // clear the IPL1 and IPL2 flip-flops
+ m_maincpu->set_input_line(2, CLEAR_LINE);
+ m_maincpu->set_input_line(4, CLEAR_LINE);
+
+ // assert VPA
+ return M68K_INT_ACK_AUTOVECTOR;
}
@@ -3296,6 +3306,7 @@ static MACHINE_CONFIG_START( cps1_10MHz )
MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sub_map)
@@ -3367,6 +3378,7 @@ static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(qsound_main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(qsound_sub_map)