static WRITE16_HANDLER( soundbank_w ) { if (ACCESSING_LSB) { OKIM6295_set_bank_base(0, 0x40000 * ((data & 0x03) ^ 0x03)); } }
static WRITE8_HANDLER( paradise_okibank_w ) { if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown oki bank bits %02X\n",activecpu_get_pc(),data); if (sndti_to_sndnum(SOUND_OKIM6295, 1) >= 0) OKIM6295_set_bank_base(1, (data & 0x02) ? 0x40000 : 0); }
void pang_gfxctrl_w(int offset, int data) { if (errorlog) fprintf(errorlog,"PC %04x: pang_gfxctrl_w %02x\n",cpu_get_pc(),data); { char baf[40]; sprintf(baf,"%02x",data); // usrintf_showmessage(baf); } /* bit 0 is unknown (used, maybe back color enable?) */ /* bit 1 is coin counter */ coin_counter_w(0,data & 2); /* bit 2 is flip screen */ if (flipscreen != (data & 0x04)) { flipscreen = data & 0x04; tilemap_set_flip(ALL_TILEMAPS,flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); } /* bit 3 is unknown (used, e.g. marukin pulses it on the title screen) */ /* bit 4 selects OKI M6295 bank */ OKIM6295_set_bank_base(0, ALL_VOICES, (data & 0x10) ? 0x40000 : 0x00000); /* bit 5 is palette RAM bank selector (doesn't apply to mgakuen) */ paletteram_bank = data & 0x20; /* bits 6 and 7 are unknown, used in several places. At first I thought */ /* they were bg and sprites enable, but this screws up spang (screen flickers */ /* every time you pop a bubble). However, not using them as enable bits screws */ /* up marukin - you can see partially built up screens during attract mode. */ }
static WRITE8_HANDLER( okibank_w ) { /* bit 2 might be reset */ /* ui_popup("%02x",data); */ OKIM6295_set_bank_base(0,(data & 3) * 0x40000); }
static WRITE8_HANDLER( okibank_w ) { /* bit 2 might be reset */ // popmessage("%02x",data); OKIM6295_set_bank_base(0,(data & 3) * 0x40000); }
static WRITE_HANDLER( okibank_w ) { /* bit 2 might be reset */ // usrintf_showmessage("%02x",data); OKIM6295_set_bank_base(0,(data & 3) * 0x20000); }
static WRITE_HANDLER( heberpop_coinctrl_w ) { if ((data & 0x00ff0000) == 0) { /* the sound ROM bank is selected by the main CPU! */ OKIM6295_set_bank_base(0,ALL_VOICES,(data & 0x08) ? 0x40000 : 0x00000); coin_lockout_w(0,~data & 0x04); coin_lockout_w(1,~data & 0x04); coin_counter_w(0,data & 0x01); coin_counter_w(1,data & 0x02); } }
static WRITE16_HANDLER( heberpop_coinctrl_w ) { if (ACCESSING_LSB) { /* the sound ROM bank is selected by the main CPU! */ OKIM6295_set_bank_base(0,(data & 0x08) ? 0x40000 : 0x00000); coin_lockout_w(0,~data & 0x04); coin_lockout_w(1,~data & 0x04); coin_counter_w(0,data & 0x01); coin_counter_w(1,data & 0x02); } }
static WRITE8_HANDLER( playmark_snd_control_w ) { static int oki_old_bank = -1; playmark_oki_control = data; if(data & 3) { if(oki_old_bank != (data & 3)) { oki_old_bank = data & 3; OKIM6295_set_bank_base(0, 0x40000 * (oki_old_bank - 1)); } } if ((data & 0x38) == 0x18) { OKIM6295_data_0_w(0, playmark_oki_command); } /* !(data & 0x80) -> sound enable */ /* data & 0x40 -> always set */ }
static WRITE_HANDLER( oki_bankswitch_w ) { OKIM6295_set_bank_base(0, ALL_VOICES, (data & 1) * 0x40000); }
static WRITE8_HANDLER( sound_bankswitch_w ) { /* the second OKIM6295 ROM is bank switched */ OKIM6295_set_bank_base(1, (data & 1) * 0x40000); }
static WRITE8_HANDLER( oki_banking_w ) { OKIM6295_set_bank_base(0, 0x40000 * (data & 3)); }
static WRITE8_HANDLER( funybubl_oki_bank_sw ) { OKIM6295_set_bank_base(0, ((data & 1) * 0x40000)); }
static WRITE16_HANDLER( oki_bank_w ) { OKIM6295_set_bank_base(0, 0x40000 * ((data & 3) - 1)); }
static WRITE16_HANDLER(pktgaldx_oki_bank_w) { OKIM6295_set_bank_base(1, (data & 3) * 0x40000); }
static WRITE16_HANDLER( oki_bankswitch_w ) { if (ACCESSING_LSB) OKIM6295_set_bank_base(0, (data & 1) * 0x40000); }