From e62a46a8ee57803b2884bd29efb43d0d1ff98951 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Tue, 9 Dec 2008 07:31:46 +0000 Subject: [PATCH] generic_pulse_line() now takes into account clock scaling and minimum cycles. --- src/emu/machine/generic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/emu/machine/generic.c b/src/emu/machine/generic.c index e45ac377d6a..ee1c10ede12 100644 --- a/src/emu/machine/generic.c +++ b/src/emu/machine/generic.c @@ -610,9 +610,11 @@ static TIMER_CALLBACK( irq_pulse_clear ) void generic_pulse_irq_line(const device_config *device, int irqline) { + int multiplier = cpu_get_clock_multiplier(device); + int clocks = (cpu_get_min_cycles(device) * cpu_get_clock_divider(device) + multiplier - 1) / multiplier; assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET); cpu_set_input_line(device, irqline, ASSERT_LINE); - timer_set(device->machine, cpu_clocks_to_attotime(device, 1), (void *)device, irqline, irq_pulse_clear); + timer_set(device->machine, cpu_clocks_to_attotime(device, MAX(clocks, 1)), (void *)device, irqline, irq_pulse_clear); }