summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2008-09-28 11:03:24 +0000
committer Couriersud <couriersud@users.noreply.github.com>2008-09-28 11:03:24 +0000
commit841649ee4cf3976c9968d85bfcb107b69578a64a (patch)
treeb0bb2657346d42c2a1d5fcb8f7ed0c5a9577b9ff /src
parenta51c28697d59ea2a3143eec10b34139e890f4739 (diff)
02440: abcop, gprider1, rachero: abcop just shows a black flickering screen, rachero gives an error and crashes on exit
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/segaxbd.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c
index bb99d85aaac..5a153bfea33 100644
--- a/src/mame/drivers/segaxbd.c
+++ b/src/mame/drivers/segaxbd.c
@@ -86,14 +86,29 @@ static void xboard_generic_init(running_machine *machine)
static void update_main_irqs(running_machine *machine)
{
- cpunum_set_input_line(machine, 0, 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE);
- cpunum_set_input_line(machine, 0, 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE);
+ int irq = 0;
- if(!gprider_hack)
- cpunum_set_input_line(machine, 0, 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE);
+ if (timer_irq_state)
+ irq |= 2;
+ else
+ cpunum_set_input_line(machine, 0, 2, CLEAR_LINE);
+
+ if (vblank_irq_state)
+ irq |= 4;
+ else
+ cpunum_set_input_line(machine, 0, 4, CLEAR_LINE);
+
+ if (gprider_hack && irq > 4)
+ irq = 4;
- if(timer_irq_state || vblank_irq_state)
+ if (!(irq==6))
+ cpunum_set_input_line(machine, 0, 6, CLEAR_LINE);
+
+ if (irq)
+ {
+ cpunum_set_input_line(machine, 0, irq, ASSERT_LINE);
cpu_boost_interleave(attotime_zero, ATTOTIME_IN_USEC(100));
+ }
}