void konamiSetIrqLine(int line, int state) { if (state == KONAMI_HOLD_LINE) { konami_set_irq_line(line, KONAMI_HOLD_LINE); konamiRun(0); konami_set_irq_line(line, KONAMI_CLEAR_LINE); konamiRun(0); } else { konami_set_irq_line(line, state); } }
static void thunderx_1f98_w(unsigned char data) { K052109RMRDLine = data & 0x01; if ((data & 4) && !(thunderx_1f98_data & 4)) { calculate_collisions(); konamiRun(10); konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_HOLD_LINE); // must be delayed } thunderx_1f98_data = data; }