From 841649ee4cf3976c9968d85bfcb107b69578a64a Mon Sep 17 00:00:00 2001 From: Couriersud Date: Sun, 28 Sep 2008 11:03:24 +0000 Subject: [PATCH] 02440: abcop, gprider1, rachero: abcop just shows a black flickering screen, rachero gives an error and crashes on exit --- src/mame/drivers/segaxbd.c | 25 ++++++++++++++++++++----- 1 file 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(timer_irq_state || vblank_irq_state) + if (gprider_hack && irq > 4) + irq = 4; + + 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)); + } }