diff options
author | 2008-09-28 11:03:24 +0000 | |
---|---|---|
committer | 2008-09-28 11:03:24 +0000 | |
commit | 841649ee4cf3976c9968d85bfcb107b69578a64a (patch) | |
tree | b0bb2657346d42c2a1d5fcb8f7ed0c5a9577b9ff /src | |
parent | a51c28697d59ea2a3143eec10b34139e890f4739 (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.c | 25 |
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)); + } } |