summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/superqix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/superqix.c')
-rw-r--r--src/mame/drivers/superqix.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index d3d68973b84..5809d0e7f08 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -1014,20 +1014,30 @@ static const ay8910_interface bootleg_ay8910_interface_2 =
DEVCB_NULL
};
+static INTERRUPT_GEN( vblank_irq )
+{
+ superqix_state *state = device->machine().driver_data<superqix_state>();
+ if(state->m_nmi_mask)
+ device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
+}
-static INTERRUPT_GEN( sqix_interrupt )
+static INTERRUPT_GEN( sqix_timer_irq )
{
+ superqix_state *state = device->machine().driver_data<superqix_state>();
+
/* highly suspicious... */
- if (cpu_getiloops(device) <= 3)
- nmi_line_assert(device);
+ if (cpu_getiloops(device) <= 3 && state->m_nmi_mask)
+ device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
}
-static INTERRUPT_GEN( bootleg_interrupt )
+static INTERRUPT_GEN( sqixbl_timer_irq )
{
+ superqix_state *state = device->machine().driver_data<superqix_state>();
+
/* highly suspicious... */
- if (cpu_getiloops(device) <= 3)
- nmi_line_pulse(device);
+ if (cpu_getiloops(device) <= 3 && state->m_nmi_mask)
+ device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
@@ -1036,7 +1046,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(pbillian_port_map)
- MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
+ MCFG_CPU_VBLANK_INT("screen", vblank_irq)
MCFG_MACHINE_START(pbillian)
@@ -1069,7 +1079,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(hotsmash_port_map)
- MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse)
+ MCFG_CPU_VBLANK_INT("screen", vblank_irq)
MCFG_CPU_ADD("mcu", M68705, 4000000) /* ???? */
MCFG_CPU_PROGRAM_MAP(m68705_map)
@@ -1107,7 +1117,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_CPU_ADD("maincpu", Z80, 12000000/2) /* 6 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(sqix_port_map)
- MCFG_CPU_VBLANK_INT_HACK(sqix_interrupt,6) /* ??? */
+ MCFG_CPU_VBLANK_INT_HACK(sqix_timer_irq,6) /* ??? */
MCFG_CPU_ADD("mcu", I8751, 12000000/3) /* ??? */
MCFG_CPU_IO_MAP(bootleg_mcu_io_map)
@@ -1156,7 +1166,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_CPU_ADD("maincpu", Z80, 12000000/2) /* 6 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(bootleg_port_map)
- MCFG_CPU_VBLANK_INT_HACK(bootleg_interrupt,6) /* ??? */
+ MCFG_CPU_VBLANK_INT_HACK(sqixbl_timer_irq,6) /* ??? */
MCFG_MACHINE_START(superqix)