static INTERRUPT_GEN( simpsons_irq ) { if (K053246_is_IRQ_enabled()) { simpsons_objdma(); // 32+256us delay at 8MHz dotclock; artificially shortened since actual V-blank length is unknown timer_set(TIME_IN_USEC(30), 0, dmaend_callback); } if (K052109_is_IRQ_enabled()) cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); }
static INTERRUPT_GEN(dbz2_interrupt) { switch (cpu_getiloops()) { case 0: cpunum_set_input_line(0, MC68000_IRQ_2, HOLD_LINE); break; case 1: if (K053246_is_IRQ_enabled()) cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); break; } }
static INTERRUPT_GEN( dbz_interrupt ) { switch (cpu_getiloops(device)) { case 0: cpu_set_input_line(device, M68K_IRQ_2, HOLD_LINE); break; case 1: if (K053246_is_IRQ_enabled()) cpu_set_input_line(device, M68K_IRQ_4, HOLD_LINE); break; } }
static int simpsons_irq(void) { if (cpu_getiloops() == 0) { if (simpsons_firq_enabled && K053246_is_IRQ_enabled()) return KONAMI_INT_FIRQ; } else { if (K052109_is_IRQ_enabled()) return KONAMI_INT_IRQ; } return ignore_interrupt(); }
static INTERRUPT_GEN( gijoe_interrupt ) { // global interrupt masking (*this game only) if (!K056832_is_IRQ_enabled(0)) return; if (K053246_is_IRQ_enabled()) { gijoe_objdma(); // 42.7us(clr) + 341.3us(xfer) delay at 6Mhz dotclock timer_adjust(dmadelay_timer, TIME_IN_USEC(JOE_DMADELAY), 0, 0); } // trigger V-blank interrupt if (cur_control2 & 0x0080) cpunum_set_input_line(0, 5, HOLD_LINE); }