/* Generate interrups only if they have been enabled */ int getstar_interrupt(void) { if (getstar_sh_intenabled) return nmi_interrupt(); else return ignore_interrupt(); }
static int bzone_interrupt(void) { if (readinputport(0) & 0x10) return nmi_interrupt(); else return ignore_interrupt(); }
int skychut_interrupt(void) { if (readinputport(2) & 1) /* Left Coin */ return nmi_interrupt(); else return interrupt(); }
int jackal_interrupt(void) { if (intenable & 0x02) return nmi_interrupt(); if (intenable & 0x08) return M6809_INT_IRQ; if (intenable & 0x10) return M6809_INT_FIRQ; return ignore_interrupt(); }
int skydiver_interrupt(void) { if (skydiver_nmion) return nmi_interrupt(); else return ignore_interrupt(); }
int lasso_interrupt( void ) { if (cpu_getiloops() == 0) return interrupt(); else return nmi_interrupt(); // coin input }
static int kingobox_interrupt( void ) { if ( kingofb_nmi_enable ) return nmi_interrupt(); return ignore_interrupt(); }
int venture_interrupt(void) { static int first_time = 1; static int interrupt_counter = 0; exidy_collision = (exidy_collision | 0x80) & exidy_collision_mask; if (first_time) { first_time=0; return nmi_interrupt(); } interrupt_counter = (interrupt_counter + 1) % 32; if (interrupt_counter == 0) { exidy_collision &= 0x7F; return interrupt(); } if (exidy_collision_counter>0) { exidy_collision_counter--; return interrupt(); } return 0; }
int asteroid_interrupt (void) { /* Turn off interrupts if self-test is enabled */ if (readinputport(0) & 0x80) return ignore_interrupt(); else return nmi_interrupt(); }
static int sharkatt_interrupt(void) { /* SLAM switch causes an NMI if it's pressed */ if ((input_port_3_r(0) & 0x10) == 0) return nmi_interrupt(); return interrupt(); }
int llander_interrupt (void) { /* Turn off interrupts if self-test is enabled */ if (readinputport(0) & 0x02) return nmi_interrupt(); else return ignore_interrupt(); }
/*************************************************************************** subs_interrupt ***************************************************************************/ int subs_interrupt(void) { /* only do NMI interrupt if not in TEST mode */ if ((input_port_2_r(0) & 0x40)==0x40) return nmi_interrupt(); return 0; }
int zn_interrupt( void ) { if( queue_len == 2 ) { soundlatch_w( 0, queue_data >> 8 ); queue_len--; return nmi_interrupt(); }
int shaolins_interrupt(void) { if (cpu_getiloops() == 0) return interrupt(); else if (cpu_getiloops() % 2) { if (*shaolins_nmi_enable & 0x02) return nmi_interrupt(); } return ignore_interrupt(); }
static int pinbo_interrupt(void) { if (cpu_getiloops() != 0) { /* user asks to insert coin: generate a NMI interrupt. */ if (readinputport(3) & 0x30) return nmi_interrupt(); else return ignore_interrupt(); } else return interrupt(); /* one IRQ per frame */ }
static int labyrunr_interrupt(void) { if (cpu_getiloops() == 0) { if (K007121_ctrlram[0][0x07] & 0x02) return HD6309_INT_IRQ; } else if (cpu_getiloops() % 2) { if (K007121_ctrlram[0][0x07] & 0x01) return nmi_interrupt(); } return ignore_interrupt(); }
static int ironhors_interrupt(void) { if (cpu_getiloops() == 0) { if (*ironhors_interrupt_enable & 4) return M6809_INT_FIRQ; } else if (cpu_getiloops() % 2) { if (*ironhors_interrupt_enable & 1) return nmi_interrupt(); } return ignore_interrupt(); }
static int finalizr_interrupt(void) { if (cpu_getiloops() == 0) { if (*finalizr_interrupt_enable & 2) return M6809_INT_IRQ; } else if (cpu_getiloops() % 2) { if (*finalizr_interrupt_enable & 1) return nmi_interrupt(); } return ignore_interrupt(); }
static int pingpong_interrupt(void) { if (cpu_getiloops() == 0) { if (*intenable & 0x04) return interrupt(); } else if (cpu_getiloops() % 2) { if (*intenable & 0x08) return nmi_interrupt(); } return ignore_interrupt(); }
static int exprraid_interrupt(void) { static int coin = 0; if ( ( ~readinputport( 3 ) ) & 0xc0 ) { if ( coin == 0 ) { coin = 1; return nmi_interrupt(); } } else coin = 0; return ignore_interrupt(); }
int exidy_interrupt(void) { static int first_time = 1; exidy_collision = (exidy_collision | 0x80) & exidy_collision_mask; if (first_time) { first_time=0; return nmi_interrupt(); } return interrupt(); }
int brkthru_interrupt(void) { if (cpu_getiloops() == 0) { if (nmi_enable) return nmi_interrupt(); } else { /* generate IRQ on coin insertion */ if ((readinputport(2) & 0xe0) != 0xe0) return interrupt(); } return ignore_interrupt(); }
static int redalert_interrupt(void) { static int lastcoin = 0; int newcoin; newcoin = input_port_4_r(0); if (newcoin) { if ((newcoin & 0x01) && !(lastcoin & 0x01)) { lastcoin = newcoin; return nmi_interrupt(); } if ((newcoin & 0x02) && !(lastcoin & 0x02)) { lastcoin = newcoin; return nmi_interrupt(); } } lastcoin = newcoin; return interrupt(); }
static int ssozumo_interrupt(void) { static int coin; if ((readinputport(0) & 0xc0) != 0xc0) { if (coin == 0) { coin = 1; return nmi_interrupt(); } } else coin = 0; return interrupt(); }
static int renegade_interrupt(void){ /* static int coin; int port = readinputport(1) & 0xc0; if (port != 0xc0 ){ if (coin == 0){ coin = 1; return interrupt(); } } else coin = 0; */ static int count; count = !count; if( count ) return nmi_interrupt(); return interrupt(); }
static int tagteam_interrupt(void) { static int coin; int port; port = readinputport(0) & 0xc0; if (port != 0xc0) /* Coin */ { if (coin == 0) { coin = 1; return nmi_interrupt(); } } else coin = 0; return ignore_interrupt(); }
static int spaceint_interrupt(void) { if (readinputport(2) & 1) /* Coin */ return nmi_interrupt(); else return interrupt(); }
int galaga_interrupt_3(void) { if (interrupt_enable_3) return nmi_interrupt(); else return ignore_interrupt(); }
static int cheekyms_interrupt(void) { if (readinputport(2) & 1) /* Coin */ return nmi_interrupt(); else return interrupt(); }
/*************************************************************************** These games don't have VBlank interrupts. Interrupts are still used by the game: but they are related to coin slots. ***************************************************************************/ static int astrof_interrupt(void) { if (readinputport(2) & 1) /* Coin */ return nmi_interrupt(); else return ignore_interrupt(); }