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); }
static INTERRUPT_GEN( gijoe_interrupt ) { gijoe_state *state = device->machine->driver_data<gijoe_state>(); // global interrupt masking (*this game only) if (!k056832_is_irq_enabled(state->k056832, 0)) return; if (k053246_is_irq_enabled(state->k053246)) { gijoe_objdma(device->machine); // 42.7us(clr) + 341.3us(xfer) delay at 6Mhz dotclock timer_adjust_oneshot(state->dmadelay_timer, JOE_DMADELAY, 0); } // trigger V-blank interrupt if (state->cur_control2 & 0x0080) cpu_set_input_line(device, 5, HOLD_LINE); }