okim6295: Directly use set_rom_bank [O. Galibert]

dirom: Add a mandatory callback on bank change [O. Galibert]
This commit is contained in:
Olivier Galibert 2016-09-06 11:43:11 +02:00
parent 98392fb5e3
commit 7f37b29274
99 changed files with 291 additions and 179 deletions

View File

@ -204,6 +204,16 @@ void bsmt2000_device::sound_stream_update(sound_stream &stream, stream_sample_t
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void bsmt2000_device::rom_bank_updated()
{
m_stream->update();
}
//-------------------------------------------------
// read_status - return the write pending status
//-------------------------------------------------

View File

@ -64,6 +64,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
public:
// internal TMS I/O callbacks
DECLARE_READ16_MEMBER( tms_register_r );

View File

@ -40,6 +40,16 @@ c352_device::c352_device(const machine_config &mconfig, const char *tag, device_
{
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void c352_device::rom_bank_updated()
{
m_stream->update();
}
//-------------------------------------------------
// static_set_dividder - configuration helper to
// set the divider setting

View File

@ -47,6 +47,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
enum {
C352_FLG_BUSY = 0x8000, // channel is busy

View File

@ -82,6 +82,15 @@ void es5503_device::device_timer(emu_timer &timer, device_timer_id tid, int para
m_stream->update();
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void es5503_device::rom_bank_updated()
{
m_stream->update();
}
// halt_osc: handle halting an oscillator
// chip = chip ptr
// onum = oscillator #

View File

@ -50,6 +50,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
devcb_write_line m_irq_func;
devcb_read8 m_adc_func;

View File

@ -114,6 +114,16 @@ void k053260_device::device_reset()
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void k053260_device::rom_bank_updated()
{
m_stream->update();
}
READ8_MEMBER( k053260_device::main_read )
{
// sub-to-main ports

View File

@ -52,6 +52,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
// configuration
sound_stream * m_stream;

View File

@ -727,3 +727,13 @@ void multipcm_device::sound_stream_update(sound_stream &stream, stream_sample_t
datap[1][i] = clamp_to_int16(smpr);
}
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void multipcm_device::rom_bank_updated()
{
m_stream->update();
}

View File

@ -26,6 +26,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
struct sample_t
{

View File

@ -86,8 +86,6 @@ okim6295_device::okim6295_device(const machine_config &mconfig, const char *tag,
device_rom_interface(mconfig, *this, 18),
m_region(*this, DEVICE_SELF),
m_command(-1),
m_bank_installed(false),
m_bank_offs(0),
m_stream(nullptr),
m_pin7_state(0)
{
@ -117,7 +115,6 @@ void okim6295_device::device_start()
m_stream = machine().sound().stream_alloc(*this, 0, 1, clock() / divisor);
save_item(NAME(m_command));
save_item(NAME(m_bank_offs));
save_item(NAME(m_pin7_state));
for (int voicenum = 0; voicenum < OKIM6295_VOICES; voicenum++)
@ -151,9 +148,6 @@ void okim6295_device::device_reset()
void okim6295_device::device_post_load()
{
if (m_bank_offs != 0)
set_bank_base(m_bank_offs, true);
device_clock_changed();
}
@ -187,21 +181,12 @@ void okim6295_device::sound_stream_update(sound_stream &stream, stream_sample_t
//-------------------------------------------------
// set_bank_base - old-style bank management;
// assumes multiple 256k banks
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void okim6295_device::set_bank_base(offs_t base, bool bDontUpdateStream)
void okim6295_device::rom_bank_updated()
{
// flush out anything pending (but not on e.g. a state load)
if (!bDontUpdateStream)
{
m_stream->update();
}
m_bank_offs = base;
set_rom_bank(m_bank_offs / 0x40000);
m_stream->update();
}

View File

@ -64,7 +64,6 @@ public:
static void static_set_pin7(device_t &device, int pin7);
// runtime configuration
void set_bank_base(offs_t base, bool bDontUpdateStream = false);
void set_pin7(int pin7);
UINT8 read_status();
@ -83,6 +82,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
// a single voice
class okim_voice
{
@ -106,8 +108,6 @@ protected:
okim_voice m_voice[OKIM6295_VOICES];
INT32 m_command;
bool m_bank_installed;
offs_t m_bank_offs;
sound_stream * m_stream;
UINT8 m_pin7_state;

View File

@ -160,6 +160,16 @@ void okim9810_device::device_clock_changed()
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void okim9810_device::rom_bank_updated()
{
m_stream->update();
}
//-------------------------------------------------
// stream_generate - handle update requests for
// our sound stream

View File

@ -92,6 +92,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
// a single voice
class okim_voice
{

View File

@ -212,6 +212,16 @@ machine_config_constructor qs1000_device::device_mconfig_additions() const
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void qs1000_device::rom_bank_updated()
{
m_stream->update();
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------

View File

@ -85,6 +85,9 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
public:
DECLARE_WRITE8_MEMBER( wave_w );

View File

@ -55,6 +55,17 @@ void segapcm_device::device_start()
}
//-------------------------------------------------
// rom_bank_updated - the rom bank has changed
//-------------------------------------------------
void segapcm_device::rom_bank_updated()
{
m_stream->update();
}
//-------------------------------------------------
// sound_stream_update - handle a stream update
//-------------------------------------------------

View File

@ -55,6 +55,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
std::unique_ptr<UINT8[]> m_ram;
UINT8 m_low[16];

View File

@ -263,6 +263,11 @@ void vlm5030_device::device_reset()
setup_parameter( 0x00);
}
void vlm5030_device::rom_bank_updated()
{
m_channel->update();
}
int vlm5030_device::get_bits(int sbit,int bits)
{
int offset = m_address + (sbit>>3);

View File

@ -35,6 +35,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
// configuration state
const address_space_config m_space_config;

View File

@ -841,6 +841,11 @@ void ymf278b_device::device_stop()
m_ymf262 = nullptr;
}
void ymf278b_device::rom_bank_updated()
{
m_stream->update();
}
void ymf278b_device::precompute_rate_tables()
{
int i;

View File

@ -39,6 +39,9 @@ protected:
// sound stream update overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
// device_rom_interface overrides
virtual void rom_bank_updated() override;
private:
struct YMF278BSlot
{

View File

@ -16,6 +16,10 @@ const address_space_config *device_rom_interface::memory_space_config(address_sp
return spacenum ? nullptr : &m_rom_config;
}
void device_rom_interface::rom_bank_updated()
{
}
void device_rom_interface::set_rom_bank(int bank)
{
if(!m_bank)
@ -28,6 +32,7 @@ void device_rom_interface::set_rom_bank(int bank)
m_cur_bank = bank;
m_bank->set_entry(bank);
rom_bank_updated();
}
void device_rom_interface::reset_bank()

View File

@ -31,6 +31,9 @@ public:
void set_rom(const void *base, UINT32 size);
void set_rom_bank(int bank);
protected:
virtual void rom_bank_updated() = 0;
private:
const address_space_config m_rom_config;
direct_read_data *m_rom_direct;

View File

@ -154,8 +154,8 @@ WRITE16_MEMBER(k3_state::k3_scrolly_w)
WRITE16_MEMBER(k3_state::k3_soundbanks_w)
{
m_oki2->set_bank_base((data & 4) ? 0x40000 : 0);
m_oki1->set_bank_base((data & 2) ? 0x40000 : 0);
m_oki2->set_rom_bank((data & 4) >> 2);
m_oki1->set_rom_bank((data & 2) >> 1);
}
WRITE16_MEMBER(k3_state::flagrall_soundbanks_w)
@ -176,7 +176,7 @@ WRITE16_MEMBER(k3_state::flagrall_soundbanks_w)
if (data & 0xfcc9)
popmessage("unk control %04x", data & 0xfcc9);
m_oki1->set_bank_base(0x40000 * ((data & 0x6)>>1) );
m_oki1->set_rom_bank((data & 0x6) >> 1);
}

View File

@ -130,7 +130,7 @@ READ8_MEMBER(namco_30test_state::hc11_okibank_r)
WRITE8_MEMBER(namco_30test_state::hc11_okibank_w)
{
m_oki_bank = data;
m_oki->set_bank_base((data & 1) ? 0x40000 : 0);
m_oki->set_rom_bank(data & 1);
}

View File

@ -155,7 +155,7 @@ WRITE16_MEMBER(_3x3puzzle_state::gfx_ctrl_w)
if ( (data&0x06) != m_oki_bank )
{
m_oki_bank = data &0x6;
m_oki->set_bank_base((m_oki_bank>>1) * 0x40000);
m_oki->set_rom_bank(m_oki_bank >> 1);
}
}

View File

@ -418,8 +418,8 @@ WRITE16_MEMBER(acommand_state::ac_devices_w)
case 0x00/2:
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base(0x40000 * (data & 0x3));
m_oki2->set_bank_base(0x40000 * (data & 0x30) >> 4);
m_oki1->set_rom_bank(data & 0x3);
m_oki2->set_rom_bank((data & 0x30) >> 4);
}
break;
case 0x14/2:

View File

@ -114,7 +114,7 @@ WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
{
m_oki->set_bank_base(0x40000 * (data & 3));
m_oki->set_rom_bank(data & 3);
}
/*TODO: sound banking. */

View File

@ -131,7 +131,7 @@ WRITE16_MEMBER(arcadecl_state::latch_w)
/* lower byte being modified? */
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0x00000);
m_oki->set_rom_bank((data >> 7) & 1);
m_oki->set_output_gain(ALL_OUTPUTS, (data & 0x001f) / 31.0f);
}
}

View File

@ -99,7 +99,7 @@ WRITE16_MEMBER(artmagic_state::control_w)
/* OKI banking here */
if (offset == 0)
{
m_oki->set_bank_base((((data >> 4) & 1) * 0x40000) % m_oki_region->bytes());
m_oki->set_rom_bank((data >> 4) & 1);
}
logerror("%06X:control_w(%d) = %04X\n", space.device().safe_pc(), offset, data);

View File

@ -205,7 +205,7 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_sound_bank_w)
{
if (ACCESSING_BITS_8_15)
{
m_oki->set_bank_base(0x40000 * ((data >> 8) & 1));
m_oki->set_rom_bank((data >> 8) & 1);
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
}
}
@ -214,7 +214,7 @@ WRITE16_MEMBER(astrocorp_state::skilldrp_sound_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base(0x40000 * (data & 1));
m_oki->set_rom_bank(data & 1);
// logerror("CPU #0 PC %06X: OKI bank %08X\n", space.device().safe_pc(), data);
}
}

View File

@ -239,7 +239,7 @@ WRITE16_MEMBER(bestleag_state::fgram_w)
WRITE16_MEMBER(bestleag_state::oki_bank_w)
{
m_oki->set_bank_base(0x40000 * ((data & 3) - 1));
m_oki->set_rom_bank((data - 1) & 3);
}

View File

@ -298,8 +298,8 @@ GFXDECODE_END
WRITE8_MEMBER(boogwing_state::sound_bankswitch_w)
{
m_oki2->set_bank_base(((data & 2) >> 1) * 0x40000);
m_oki1->set_bank_base((data & 1) * 0x40000);
m_oki2->set_rom_bank((data & 2) >> 1);
m_oki1->set_rom_bank(data & 1);
}

View File

@ -856,7 +856,7 @@ WRITE16_MEMBER(cave_state::ppsatan_out_w)
output().set_led_value(6, data & 0x0400); // not tested in service mode
output().set_led_value(7, data & 0x0800); // not tested in service mode
m_oki->set_bank_base((data & 0x8000) ? 0x40000 : 0);
m_oki->set_rom_bank((data & 0x8000) >> 15);
}
// popmessage("OUT %04x", data);

View File

@ -114,7 +114,7 @@ WRITE16_MEMBER( cesclassic_state::outputs_w )
--x- ---- probably screen enable
---- --x- coin counter
*/
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
m_oki->set_rom_bank((data & 0x40) >> 6);
machine().bookkeeping().coin_counter_w(0, data & 2);
if(data & ~0x62)
logerror("Output: %02x\n",data);

View File

@ -410,8 +410,8 @@ WRITE16_MEMBER(cischeat_state::scudhamm_oki_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base(0x40000 * ((data >> 0) & 0x3) );
m_oki2->set_bank_base(0x40000 * ((data >> 4) & 0x3) );
m_oki1->set_rom_bank((data >> 0) & 0x3);
m_oki2->set_rom_bank((data >> 4) & 0x3);
}
}
@ -758,8 +758,8 @@ WRITE16_MEMBER(cischeat_state::bigrun_soundbank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base(0x40000 * ((data >> 0) & 1) );
m_oki2->set_bank_base(0x40000 * ((data >> 4) & 1) );
m_oki1->set_rom_bank((data >> 0) & 1);
m_oki2->set_rom_bank((data >> 4) & 1);
}
}
@ -780,13 +780,14 @@ ADDRESS_MAP_END
WRITE16_MEMBER(cischeat_state::cischeat_soundbank_1_w)
{
if (ACCESSING_BITS_0_7) m_oki1->set_bank_base(0x40000 * (data & 1) );
if (ACCESSING_BITS_0_7) m_oki1->set_rom_bank(data & 1);
}
WRITE16_MEMBER(cischeat_state::cischeat_soundbank_2_w)
{
if (ACCESSING_BITS_0_7) m_oki2->set_bank_base(0x40000 * (data & 1) );
if (ACCESSING_BITS_0_7) m_oki2->set_rom_bank(data & 1);
}
static ADDRESS_MAP_START( cischeat_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
AM_RANGE(0x040002, 0x040003) AM_WRITE(cischeat_soundbank_1_w) // Sample Banking

View File

@ -782,7 +782,7 @@ GFXDECODE_END
WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
{
/* the second OKIM6295 ROM is bank switched */
m_oki2->set_bank_base((data & 1) * 0x40000);
m_oki2->set_rom_bank(data & 1);
}
/**********************************************************************************/

View File

@ -523,7 +523,7 @@ GFXDECODE_END
WRITE8_MEMBER(dassault_state::sound_bankswitch_w)
{
/* the second OKIM6295 ROM is bank switched */
m_oki2->set_bank_base((data & 1) * 0x40000);
m_oki2->set_rom_bank(data & 1);
}
/**********************************************************************************/

View File

@ -1808,14 +1808,14 @@ WRITE16_MEMBER(ddenlovr_state::ddenlovr16_transparency_mask_w)
WRITE8_MEMBER(ddenlovr_state::quizchq_oki_bank_w )
{
m_oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_rom_bank(data & 1);
}
WRITE16_MEMBER(ddenlovr_state::ddenlovr_oki_bank_w )
{
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 7) * 0x40000);
m_oki->set_rom_bank(data & 7);
}
}
@ -1826,7 +1826,7 @@ WRITE16_MEMBER(ddenlovr_state::quiz365_oki_bank1_w )
if (ACCESSING_BITS_0_7)
{
m_okibank = (m_okibank & 2) | (data & 1);
m_oki->set_bank_base(m_okibank * 0x40000);
m_oki->set_rom_bank(m_okibank);
}
}
@ -1835,7 +1835,7 @@ WRITE16_MEMBER(ddenlovr_state::quiz365_oki_bank2_w )
if (ACCESSING_BITS_0_7)
{
m_okibank = (m_okibank & 1) | ((data & 1) << 1);
m_oki->set_bank_base(m_okibank * 0x40000);
m_oki->set_rom_bank(m_okibank);
}
}
@ -2078,7 +2078,7 @@ READ16_MEMBER(ddenlovr_state::ddenlovrk_protection2_r)
WRITE16_MEMBER(ddenlovr_state::ddenlovrk_protection2_w)
{
COMBINE_DATA(m_protection2);
m_oki->set_bank_base(((*m_protection2) & 0x7) * 0x40000);
m_oki->set_rom_bank((*m_protection2) & 0x7);
}
static ADDRESS_MAP_START( ddenlovrk_map, AS_PROGRAM, 16, ddenlovr_state )
@ -2199,7 +2199,7 @@ WRITE16_MEMBER(ddenlovr_state::nettoqc_oki_bank_w )
{
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 3) * 0x40000);
m_oki->set_rom_bank(data & 3);
}
}
@ -2249,7 +2249,7 @@ READ16_MEMBER(ddenlovr_state::ultrchmp_protection2_r)
WRITE16_MEMBER(ddenlovr_state::ultrchmp_protection2_w)
{
// COMBINE_DATA(m_protection2);
m_oki->set_bank_base((data & 0xf) * 0x40000);
m_oki->set_rom_bank(data & 0xf);
}
static ADDRESS_MAP_START( ultrchmp_map, AS_PROGRAM, 16, ddenlovr_state )
@ -2791,7 +2791,7 @@ WRITE8_MEMBER(ddenlovr_state::hanakanz_palette_w)
WRITE8_MEMBER(ddenlovr_state::hanakanz_oki_bank_w )
{
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 6) & 1);
}
READ8_MEMBER(ddenlovr_state::hanakanz_rand_r)
@ -3018,7 +3018,7 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_coincounter_w)
WRITE8_MEMBER(ddenlovr_state::mjchuuka_oki_bank_w )
{
// data & 0x08 ?
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0);
m_oki->set_rom_bank(data & 1);
#ifdef MAME_DEBUG
// popmessage("1e = %02x",data);
@ -3714,9 +3714,7 @@ WRITE16_MEMBER(ddenlovr_state::akamaru_protection1_w)
COMBINE_DATA(&m_prot_16);
// BCD number?
bank = (((m_prot_16 >> 4) & 0x0f) % 10) * 10 + ((m_prot_16 & 0x0f) % 10);
if (bank >= 12)
bank = 0;
m_oki->set_bank_base(bank * 0x40000);
m_oki->set_rom_bank(bank);
// popmessage("bank $%0x (%d)", m_prot_16, bank);
}
@ -3803,7 +3801,7 @@ WRITE8_MEMBER(ddenlovr_state::mjflove_rombank_w)
WRITE8_MEMBER(ddenlovr_state::mjflove_okibank_w )
{
m_oki->set_bank_base((data & 0x07) * 0x40000);
m_oki->set_rom_bank(data & 0x07);
//popmessage("SOUND = %02x", data);
}
@ -3886,7 +3884,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(ddenlovr_state::jongtei_okibank_w )
{
m_oki->set_bank_base(((data >> 4) & 0x07) * 0x40000);
m_oki->set_rom_bank((data >> 4) & 0x07);
}
WRITE8_MEMBER(ddenlovr_state::jongtei_dsw_keyb_w)
@ -4501,7 +4499,7 @@ READ8_MEMBER(ddenlovr_state::momotaro_protection_r)
WRITE8_MEMBER(ddenlovr_state::daimyojn_okibank_w )
{
m_oki->set_bank_base(((data >> 4) & 0x01) * 0x40000);
m_oki->set_rom_bank((data >> 4) & 0x01);
}
WRITE8_MEMBER(ddenlovr_state::daimyojn_palette_sel_w)

View File

@ -197,7 +197,7 @@ ROMs (All ROMs are 27C010 EPROM. - means not populated)
WRITE8_MEMBER(ddragon3_state::oki_bankswitch_w)
{
m_oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_rom_bank(data & 1);
}
WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)

View File

@ -104,14 +104,14 @@ WRITE32_MEMBER(deco156_state::hvysmsh_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki2->set_bank_base(0x40000 * (data & 0x7));
m_oki2->set_rom_bank(data & 0x7);
ioport("EEPROMOUT")->write(data, 0xff);
}
}
WRITE32_MEMBER(deco156_state::hvysmsh_oki_0_bank_w)
{
m_oki1->set_bank_base((data & 1) * 0x40000);
m_oki1->set_rom_bank(data & 1);
}
WRITE32_MEMBER(deco156_state::wcvol95_nonbuffered_palette_w)

View File

@ -1759,8 +1759,8 @@ WRITE_LINE_MEMBER(deco32_state::sound_irq_nslasher)
WRITE8_MEMBER(deco32_state::sound_bankswitch_w)
{
m_oki1->set_bank_base(((data >> 0)& 1) * 0x40000);
m_oki2->set_bank_base(((data >> 1)& 1) * 0x40000);
m_oki1->set_rom_bank((data >> 0) & 1);
m_oki2->set_rom_bank((data >> 1) & 1);
}
/**********************************************************************************/

View File

@ -62,7 +62,7 @@ WRITE16_MEMBER(deniam_state::sound_command_w)
WRITE8_MEMBER(deniam_state::deniam16b_oki_rom_bank_w)
{
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
m_oki->set_rom_bank((data >> 6) & 1);
}
WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
@ -70,7 +70,7 @@ WRITE16_MEMBER(deniam_state::deniam16c_oki_rom_bank_w)
if (ACCESSING_BITS_0_7)
{
if ((data&0xFE) != 0) popmessage("OKI bank was not 0 or 1! contact MAMEDEV!");
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0x00000);
m_oki->set_rom_bank(data & 0x01);
}
}
@ -249,7 +249,7 @@ void deniam_state::machine_reset()
doesn't matter since the coinup sfx (sample borrowed from 'tyrian' on PC)
exists in both banks; it properly sets the bank as soon as the ufo sfx
plays or a player character is selected on the character select screen */
m_oki->set_bank_base(0x00000);
m_oki->set_rom_bank(0);
}
static MACHINE_CONFIG_START( deniam16b, deniam_state )

View File

@ -151,7 +151,7 @@ WRITE8_MEMBER(diverboy_state::okibank_w)
{
/* bit 2 might be reset */
// popmessage("%02x",data);
m_oki->set_bank_base((data & 3) * 0x40000);
m_oki->set_rom_bank(data & 3);
}

View File

@ -149,14 +149,14 @@ WRITE8_MEMBER(drgnmst_state::drgnmst_snd_control_w)
m_oki0_bank = oki_new_bank;
if (m_oki0_bank)
oki_new_bank--;
m_oki_1->set_bank_base(oki_new_bank * 0x40000);
m_oki_1->set_rom_bank(oki_new_bank);
}
oki_new_bank = ((m_pic16c5x_port0 & 0x3) >> 0) | ((m_oki_control & 0x20) >> 3);
if (oki_new_bank != m_oki1_bank)
{
m_oki1_bank = oki_new_bank;
m_oki_2->set_bank_base(oki_new_bank * 0x40000);
m_oki_2->set_rom_bank(oki_new_bank);
}
switch (m_oki_control & 0x1f)

View File

@ -164,7 +164,7 @@ WRITE16_MEMBER(drtomy_state::drtomy_okibank_w)
if (m_oki_bank != (data & 3))
{
m_oki_bank = data & 3;
m_oki->set_bank_base(m_oki_bank * 0x40000);
m_oki->set_rom_bank(m_oki_bank);
}
/* unknown bit 2 -> (data & 4) */

View File

@ -1556,7 +1556,7 @@ WRITE8_MEMBER(dynax_state::cdracula_sound_rombank_w)
int num_banks = memregion("oki")->bytes() / 0x40000;
if (data < num_banks)
m_oki->set_bank_base(data * 0x40000);
m_oki->set_rom_bank(data);
else
logerror("%s: warning, invalid sound bank = %02x\n", machine().describe_context(), data);
}

View File

@ -229,7 +229,7 @@ READ8_MEMBER(egghunt_state::egghunt_okibanking_r)
WRITE8_MEMBER(egghunt_state::egghunt_okibanking_w)
{
m_okibanking = data;
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 4) & 1);
}
static ADDRESS_MAP_START( egghunt_map, AS_PROGRAM, 8, egghunt_state )

View File

@ -163,7 +163,7 @@ WRITE32_MEMBER(feversoc_state::output_w)
//data>>16 & 2 coin out
machine().bookkeeping().coin_counter_w(1,data>>16 & 4);
//data>>16 & 8 coin hopper
m_oki->set_bank_base(0x40000 * (((data>>16) & 0x20)>>5));
m_oki->set_rom_bank(((data>>16) & 0x20)>>5);
m_eeprom->di_write((data & 0x80000000) ? 1 : 0);
m_eeprom->clk_write((data & 0x40000000) ? ASSERT_LINE : CLEAR_LINE);

View File

@ -74,7 +74,7 @@ WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
WRITE8_MEMBER(funybubl_state::funybubl_oki_bank_sw)
{
m_oki->set_bank_base(((data & 1) * 0x40000));
m_oki->set_rom_bank(data & 1);
}

View File

@ -126,7 +126,7 @@ WRITE8_MEMBER(fuuki16_state::oki_banking_w)
data & 0x10 is always set
*/
m_oki->set_bank_base(((data & 6) >> 1) * 0x40000);
m_oki->set_rom_bank((data & 6) >> 1);
}
static ADDRESS_MAP_START( fuuki16_sound_map, AS_PROGRAM, 8, fuuki16_state )

View File

@ -338,7 +338,7 @@ WRITE8_MEMBER(galpani2_state::galpani2_oki1_bank_w)
WRITE8_MEMBER(galpani2_state::galpani2_oki2_bank_w)
{
m_oki2->set_bank_base(0x40000 * (data & 0xf) );
m_oki2->set_rom_bank(data & 0xf);
logerror("%s : %s bank %08X\n",machine().describe_context(),tag(),data);
}

View File

@ -177,7 +177,7 @@ WRITE16_MEMBER(gcpinbal_state::ioc_w)
// MSM6585 bank, coin LEDs, maybe others?
case 0x44:
m_msm_bank = data & 0x1000 ? 0x100000 : 0;
m_oki->set_bank_base(0x40000 * ((data & 0x800 )>> 11));
m_oki->set_rom_bank((data & 0x800) >> 11);
break;
case 0x45:

View File

@ -58,7 +58,7 @@ WRITE8_MEMBER(ggconnie_state::output_w)
/* TODO: banking not understood (is the ROM dumped correctly btw?) */
WRITE8_MEMBER(ggconnie_state::oki_bank_w)
{
m_oki->set_bank_base((data) ? 0x40000 : 0x00000);
m_oki->set_rom_bank(data != 0);
}

View File

@ -91,7 +91,7 @@ WRITE16_MEMBER(gotcha_state::gotcha_oki_bank_w)
{
if (ACCESSING_BITS_8_15)
{
m_oki->set_bank_base((((~data & 0x0100) >> 8) * 0x40000));
m_oki->set_rom_bank((~data & 0x0100) >> 8);
}
}

View File

@ -351,8 +351,8 @@ WRITE32_MEMBER(gstream_state::gstream_oki_banking_w)
//popmessage("oki bank = %X\noki_1 = %X\noki_2 = %X\n",data, m_oki_bank_1, m_oki_bank_2);
m_oki_1->set_bank_base(m_oki_bank_1 * 0x40000);
m_oki_2->set_bank_base(m_oki_bank_2 * 0x40000);
m_oki_1->set_rom_bank(m_oki_bank_1);
m_oki_2->set_rom_bank(m_oki_bank_2);
}
// Some clocking?

View File

@ -1270,7 +1270,7 @@ WRITE8_MEMBER(gunpey_state::gunpey_output_w)
//bit 0 is coin counter
// popmessage("%02x",data);
m_oki->set_bank_base(((data & 0x70)>>4) * 0x40000);
m_oki->set_rom_bank((data & 0x70) >> 4);
}
WRITE16_MEMBER(gunpey_state::gunpey_vram_bank_w)

View File

@ -1574,7 +1574,7 @@ WRITE16_MEMBER(igs011_state::lhb2_igs003_w)
{
m_lhb2_pen_hi = data & 0x07;
m_oki->set_bank_base((data & 0x08) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 3) & 1);
}
if ( m_lhb2_pen_hi & ~0xf )
@ -1708,7 +1708,7 @@ WRITE16_MEMBER(igs011_state::wlcc_igs003_w)
machine().bookkeeping().coin_counter_w(0, data & 0x01);
// coin out data & 0x02
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 4) & 1);
m_igs_hopper = data & 0x20;
}
@ -2442,7 +2442,7 @@ WRITE16_MEMBER(igs011_state::lhb_okibank_w)
{
if (ACCESSING_BITS_8_15)
{
m_oki->set_bank_base((data & 0x200) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 9) & 1);
}
if ( data & (~0x200) )

View File

@ -1176,7 +1176,7 @@ void igs017_state::mgcs_igs029_run()
switch (port)
{
case 0x01:
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 4) & 1);
machine().bookkeeping().coin_counter_w(0, (~data) & 0x20); // coin in
machine().bookkeeping().coin_counter_w(1, (~data) & 0x40); // coin out
@ -1465,7 +1465,7 @@ WRITE16_MEMBER(igs017_state::sdmg2_magic_w)
case 0x02:
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 7) & 1);
}
break;
@ -1561,7 +1561,7 @@ WRITE16_MEMBER(igs017_state::mgdha_magic_w)
if (ACCESSING_BITS_0_7)
{
// bit 7?
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 6) & 1);
}
break;
@ -1640,7 +1640,7 @@ WRITE8_MEMBER(igs017_state::tjsb_output_w)
break;
case 0x02:
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0); // oki bank (0x20/0x30)
m_oki->set_rom_bank((data >> 4) & 1); // oki bank (0x20/0x30)
if (!(data & ~0x30))
return;
break;
@ -1765,7 +1765,7 @@ WRITE16_MEMBER(igs017_state::lhzb2_magic_w)
case 0x01:
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 0x80) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 7) & 1);
if ( data & 0x7f )
logerror("%s: warning, unknown bits written in oki bank = %04x\n", machine().describe_context(), data);
@ -2106,7 +2106,7 @@ WRITE16_MEMBER(igs017_state::lhzb2a_input_select_w)
}
if (ACCESSING_BITS_8_15)
{
m_oki->set_bank_base((data & 0x0100) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 8) & 1);
if ( data & 0x0fe00 )
logerror("%s: warning, unknown bits written in input_select = %04x\n", machine().describe_context(), data);
@ -2147,7 +2147,7 @@ WRITE16_MEMBER(igs017_state::slqz2_magic_w)
case 0x00:
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 0x01) ? 0x40000 : 0);
m_oki->set_rom_bank(data & 0x01);
// m_hopper = data & 0x20; // hopper motor
// machine().bookkeeping().coin_counter_w(1, data & 0x40); // coin out counter

View File

@ -363,7 +363,7 @@ READ16_MEMBER(joystand_state::fpga_r)
WRITE16_MEMBER(joystand_state::oki_bank_w)
{
if (ACCESSING_BITS_0_7)
m_oki->set_bank_base(((data >> 6) & 3) * 0x40000);
m_oki->set_rom_bank((data >> 6) & 3);
}
READ16_MEMBER(joystand_state::eeprom_r)

View File

@ -338,7 +338,7 @@ ADDRESS_MAP_END
WRITE16_MEMBER(kaneko16_state::bakubrkr_oki_bank_w)
{
if (ACCESSING_BITS_0_7) {
m_oki->set_bank_base(0x40000 * (data & 0x7) );
m_oki->set_rom_bank(data & 0x7);
logerror("%s:Selecting OKI bank %02X\n",machine().describe_context(),data&0xff);
}
}
@ -400,7 +400,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_0_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base(0x40000 * (data & 0xf) );
m_oki1->set_rom_bank(data & 0xf);
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",space.device().safe_pc(),data);
}
}
@ -409,7 +409,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bloodwar_oki_1_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki2->set_bank_base(0x40000 * data );
m_oki2->set_rom_bank(data);
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",space.device().safe_pc(),data);
}
}
@ -464,7 +464,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_0_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base(0x40000 * (data & 0xF));
m_oki1->set_rom_bank(data & 0xf);
logerror("%s: OKI0 bank %08X\n",machine().describe_context(),data);
}
}
@ -473,7 +473,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::bonkadv_oki_1_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki2->set_bank_base(0x40000 * data );
m_oki2->set_rom_bank(data);
logerror("%s: OKI1 bank %08X\n",machine().describe_context(),data);
}
}
@ -533,7 +533,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_0_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base( 0x40000 * (data & 0xF) );
m_oki1->set_rom_bank(data & 0xf);
// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",space.device().safe_pc(),data);
}
}
@ -542,7 +542,7 @@ WRITE16_MEMBER(kaneko16_gtmr_state::gtmr_oki_1_bank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki2->set_bank_base( 0x40000 * (data & 0x1) );
m_oki2->set_rom_bank(data & 0x1);
// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",space.device().safe_pc(),data);
}
}
@ -778,7 +778,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(kaneko16_state::wingforc_oki_bank_w)
{
if (data <= 2)
m_oki->set_bank_base(0x40000 * data);
m_oki->set_rom_bank(data);
else
logerror("%s: unknown OKI bank %02X\n", machine().describe_context(), data);
}

View File

@ -213,10 +213,10 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w)
switch (data)
{
case 0xfc: m_oki->set_bank_base((0 * 0x40000)); break;
case 0xfd: m_oki->set_bank_base((2 * 0x40000)); break;
case 0xfe: m_oki->set_bank_base((1 * 0x40000)); break;
case 0xff: m_oki->set_bank_base((3 * 0x40000)); break;
case 0xfc: m_oki->set_rom_bank(0); break;
case 0xfd: m_oki->set_rom_bank(2); break;
case 0xfe: m_oki->set_rom_bank(1); break;
case 0xff: m_oki->set_rom_bank(3); break;
case 0x78:
m_oki->write_command(data);
m_snd_sam[0] = 00; m_snd_sam[1]= 00; m_snd_sam[2] = 00; m_snd_sam[3] = 00;
@ -335,7 +335,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
if (m_m6295_bank == 0x03)
m_m6295_bank = 0x00;
popmessage("Changing Bank to %02x", m_m6295_bank);
m_adpcm->set_bank_base(((m_m6295_bank) * 0x40000));
m_adpcm->set_rom_bank(m_m6295_bank);
if (m_m6295_key_delay == 0xffff)
m_m6295_key_delay = 0x00;
@ -354,7 +354,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
if (m_m6295_bank == 0x03)
m_m6295_bank = 0x02;
popmessage("Changing Bank to %02x", m_m6295_bank);
m_adpcm->set_bank_base(((m_m6295_bank) * 0x40000));
m_adpcm->set_rom_bank(m_m6295_bank);
if (m_m6295_key_delay == 0xffff)
m_m6295_key_delay = 0x00;
@ -370,11 +370,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
{
m_m6295_comm += 1;
m_m6295_comm &= 0x7f;
if (m_m6295_comm == 0x00) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
if (m_m6295_comm == 0x60) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
if (m_m6295_comm == 0x65) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
if (m_m6295_comm == 0x69) { m_adpcm->set_bank_base((2 * 0x40000)); m_m6295_bank = 2; }
if (m_m6295_comm == 0x70) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
if (m_m6295_comm == 0x00) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
if (m_m6295_comm == 0x60) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
if (m_m6295_comm == 0x65) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
if (m_m6295_comm == 0x69) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; }
if (m_m6295_comm == 0x70) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank);
if (m_m6295_key_delay == 0xffff)
@ -391,11 +391,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt)
{
m_m6295_comm -= 1;
m_m6295_comm &= 0x7f;
if (m_m6295_comm == 0x2b) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
if (m_m6295_comm == 0x64) { m_adpcm->set_bank_base((0 * 0x40000)); m_m6295_bank = 0; }
if (m_m6295_comm == 0x68) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
if (m_m6295_comm == 0x6c) { m_adpcm->set_bank_base((2 * 0x40000)); m_m6295_bank = 2; }
if (m_m6295_comm == 0x76) { m_adpcm->set_bank_base((1 * 0x40000)); m_m6295_bank = 1; }
if (m_m6295_comm == 0x2b) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
if (m_m6295_comm == 0x64) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; }
if (m_m6295_comm == 0x68) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
if (m_m6295_comm == 0x6c) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; }
if (m_m6295_comm == 0x76) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; }
popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank);
if (m_m6295_key_delay == 0xffff)

View File

@ -352,7 +352,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(lordgun_state::lordgun_okibank_w)
{
m_oki->set_bank_base((data & 2) ? 0x40000 : 0);
m_oki->set_rom_bank((data >> 1) & 1);
if (data & ~3) logerror("%s: unknown okibank bits %02x\n", machine().describe_context(), data);
// popmessage("OKI %x", data);
}

View File

@ -418,7 +418,7 @@ ADDRESS_MAP_END
WRITE16_MEMBER(m92_state::oki_bank_w)
{
m_oki->set_bank_base(0x40000 * ((data+1) & 0x3)); // +1?
m_oki->set_rom_bank((data+1) & 0x3); // +1?
}
static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )

View File

@ -1171,7 +1171,7 @@ ADDRESS_MAP_END
void metro_state::gakusai_oki_bank_set()
{
int bank = (m_gakusai_oki_bank_lo & 7) + (m_gakusai_oki_bank_hi & 1) * 8;
m_oki->set_bank_base(bank * 0x40000);
m_oki->set_rom_bank(bank);
}
WRITE16_MEMBER(metro_state::gakusai_oki_bank_hi_w)

View File

@ -139,7 +139,7 @@ Notes:
WRITE8_MEMBER(midyunit_state::yawdim_oki_bank_w)
{
if (data & 4)
m_oki->set_bank_base(0x40000 * (data & 3));
m_oki->set_rom_bank(data & 3);
}

View File

@ -133,13 +133,13 @@ READ16_MEMBER(miragemi_state::mirage_input_r)
WRITE16_MEMBER(miragemi_state::okim1_rombank_w)
{
m_oki_sfx->set_bank_base(0x40000 * (data & 0x3));
m_oki_sfx->set_rom_bank(data & 0x3);
}
WRITE16_MEMBER(miragemi_state::okim0_rombank_w)
{
/*bits 4-6 used on POST? */
m_oki_bgm->set_bank_base(0x40000 * (data & 0x7));
m_oki_bgm->set_rom_bank(data & 0x7);
}
static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 16, miragemi_state )

View File

@ -400,7 +400,7 @@ ADDRESS_MAP_END
/**** Monsters World ****/
WRITE8_MEMBER(mitchell_state::oki_banking_w)
{
m_oki->set_bank_base(0x40000 * (data & 3));
m_oki->set_rom_bank(data & 3);
}
static ADDRESS_MAP_START( mstworld_sound_map, AS_PROGRAM, 8, mitchell_state )

View File

@ -314,7 +314,7 @@ WRITE16_MEMBER(moo_state::moobl_oki_bank_w)
{
logerror("%x to OKI bank\n", data);
m_oki->set_bank_base((data & 0x0f) * 0x40000);
m_oki->set_rom_bank(data & 0x0f);
}
static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )

View File

@ -145,7 +145,7 @@ WRITE16_MEMBER(mwarr_state::tx_videoram_w)
WRITE16_MEMBER(mwarr_state::oki1_bank_w)
{
m_oki2->set_bank_base(0x40000 * (data & 3));
m_oki2->set_rom_bank(data & 3);
}
WRITE16_MEMBER(mwarr_state::sprites_commands_w)

View File

@ -345,7 +345,7 @@ WRITE16_MEMBER(nmg5_state::priority_reg_w)
WRITE8_MEMBER(nmg5_state::oki_banking_w)
{
m_oki->set_bank_base((data & 1) ? 0x40000 : 0);
m_oki->set_rom_bank(data & 1);
}
/*******************************************************************

View File

@ -5025,9 +5025,9 @@ ADDRESS_MAP_END
WRITE8_MEMBER(nmk16_state::spec2k_oki1_banking_w)
{
if(data == 0xfe)
m_oki2->set_bank_base(0);
m_oki2->set_rom_bank(0);
else if(data == 0xff)
m_oki2->set_bank_base(0x40000);
m_oki2->set_rom_bank(1);
}
static ADDRESS_MAP_START( afega_sound_cpu, AS_PROGRAM, 8, nmk16_state )
@ -5053,7 +5053,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(nmk16_state::twinactn_oki_bank_w)
{
m_oki1->set_bank_base((data & 3) * 0x40000);
m_oki1->set_rom_bank(data & 3);
if (data & (~3))
logerror("%s: invalid oki bank %02x\n", machine().describe_context(), data);

View File

@ -96,7 +96,7 @@ WRITE16_MEMBER(oneshot_state::soundbank_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base(0x40000 * ((data & 0x03) ^ 0x03));
m_oki->set_rom_bank((data & 0x03) ^ 0x03);
}
}

View File

@ -115,7 +115,7 @@ WRITE8_MEMBER(paradise_state::paradise_okibank_w)
if (data & ~0x02)
logerror("%s: unknown oki bank bits %02X\n", machine().describe_context(), data);
m_oki2->set_bank_base((data & 0x02) ? 0x40000 : 0);
m_oki2->set_rom_bank((data & 0x02) >> 1);
}
WRITE8_MEMBER(paradise_state::torus_coin_counter_w)

View File

@ -201,13 +201,13 @@ WRITE16_MEMBER(pasha2_state::bitmap_1_w)
WRITE16_MEMBER(pasha2_state::oki1_bank_w)
{
if (offset)
m_oki1->set_bank_base((data & 1) * 0x40000);
m_oki1->set_rom_bank(data & 1);
}
WRITE16_MEMBER(pasha2_state::oki2_bank_w)
{
if (offset)
m_oki2->set_bank_base((data & 1) * 0x40000);
m_oki2->set_rom_bank(data & 1);
}
WRITE16_MEMBER(pasha2_state::pasha2_lamps_w)

View File

@ -106,7 +106,7 @@ WRITE16_MEMBER(pirates_state::out_w)
m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
/* bit 6 selects oki bank */
m_oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
m_oki->set_rom_bank((data >> 6) & 1);
/* bit 7 used (function unknown) */
}

View File

@ -65,7 +65,7 @@ bootleg todo:
WRITE16_MEMBER(pktgaldx_state::pktgaldx_oki_bank_w)
{
m_oki2->set_bank_base((data & 3) * 0x40000);
m_oki2->set_rom_bank(data & 3);
}
/**********************************************************************************/

View File

@ -215,7 +215,7 @@ WRITE8_MEMBER(playmark_state::playmark_oki_banking_w)
if (((m_old_oki_bank - 1) * 0x40000) < memregion("oki")->bytes())
{
m_oki->set_bank_base(0x40000 * (m_old_oki_bank - 1));
m_oki->set_rom_bank(m_old_oki_bank - 1);
}
}
}
@ -260,7 +260,7 @@ WRITE8_MEMBER(playmark_state::hrdtimes_snd_control_w)
if ((m_old_oki_bank * 0x40000) < memregion("oki")->bytes())
{
m_oki->set_bank_base(0x40000 * m_old_oki_bank);
m_oki->set_rom_bank(m_old_oki_bank);
}
}

View File

@ -80,10 +80,10 @@ WRITE16_MEMBER(powerbal_state::oki_banking)
{
if (data & 3)
{
int addr = 0x40000 * ((data & 3) - 1);
int addr = (data & 3) - 1;
if (addr < memregion("oki")->bytes())
m_oki->set_bank_base(addr);
if (addr * 0x40000 < memregion("oki")->bytes())
m_oki->set_rom_bank(addr);
}
}

View File

@ -220,7 +220,7 @@ WRITE16_MEMBER(pzletime_state::video_regs_w)
WRITE16_MEMBER(pzletime_state::oki_bank_w)
{
m_oki->set_bank_base(0x40000 * (data & 0x3));
m_oki->set_rom_bank(data & 0x3);
}
CUSTOM_INPUT_MEMBER(pzletime_state::ticket_status_r)

View File

@ -756,8 +756,8 @@ GFXDECODE_END
WRITE8_MEMBER(rohga_state::sound_bankswitch_w)
{
m_oki1->set_bank_base(BIT(data, 0) * 0x40000);
m_oki2->set_bank_base(BIT(data, 1) * 0x40000);
m_oki1->set_rom_bank(BIT(data, 0));
m_oki2->set_rom_bank(BIT(data, 1));
}
/**********************************************************************************/

View File

@ -915,7 +915,7 @@ WRITE8_MEMBER(seibuspi_state::spi_layerbanks_eeprom_w)
WRITE8_MEMBER(seibuspi_state::oki_bank_w)
{
m_oki2->set_bank_base((data & 0x04) ? 0x40000 : 0);
m_oki2->set_rom_bank((data >> 2) & 1);
}
WRITE8_MEMBER(seibuspi_state::z80_prg_transfer_w)

View File

@ -347,7 +347,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(seicupbl_state::okim_rombank_w)
{
// popmessage("%08x",0x40000 * (data & 0x07));
m_oki->set_bank_base(0x40000 * (data & 0x7));
m_oki->set_rom_bank(data & 0x7);
}
static ADDRESS_MAP_START( cupsocbl_sound_mem, AS_PROGRAM, 8, seicupbl_state )

View File

@ -388,7 +388,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(shadfrce_state::oki_bankswitch_w)
{
m_oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_rom_bank(data & 1);
}
static ADDRESS_MAP_START( shadfrce_sound_map, AS_PROGRAM, 8, shadfrce_state )

View File

@ -84,7 +84,7 @@ WRITE16_MEMBER(shangha3_state::heberpop_coinctrl_w)
if (ACCESSING_BITS_0_7)
{
/* the sound ROM bank is selected by the main CPU! */
m_oki->set_bank_base((data & 0x08) ? 0x40000 : 0x00000);
m_oki->set_rom_bank((data >> 3) & 1);
machine().bookkeeping().coin_lockout_w(0,~data & 0x04);
machine().bookkeeping().coin_lockout_w(1,~data & 0x04);
@ -98,7 +98,7 @@ WRITE16_MEMBER(shangha3_state::blocken_coinctrl_w)
if (ACCESSING_BITS_0_7)
{
/* the sound ROM bank is selected by the main CPU! */
m_oki->set_bank_base(((data >> 4) & 3) * 0x40000);
m_oki->set_rom_bank((data >> 4) & 3);
machine().bookkeeping().coin_lockout_w(0,~data & 0x04);
machine().bookkeeping().coin_lockout_w(1,~data & 0x04);

View File

@ -141,7 +141,7 @@ WRITE32_MEMBER(silkroad_state::silk_6295_bank_w)
{
int bank = (data & 0x3000000) >> 24;
if(bank < 3)
m_oki1->set_bank_base(0x40000 * (bank));
m_oki1->set_rom_bank(bank);
}
}

View File

@ -135,7 +135,7 @@ WRITE32_MEMBER(simpl156_state::simpl156_eeprom_w)
//okibank = data & 0x07;
m_okimusic->set_bank_base(0x40000 * (data & 0x7));
m_okimusic->set_rom_bank(data & 0x7);
m_eeprom->clk_write(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
m_eeprom->di_write(BIT(data, 4));

View File

@ -367,7 +367,7 @@ WRITE8_MEMBER(snowbros_state::twinadv_oki_bank_w)
if (data&0xfd) logerror ("Unused bank bits! %02x\n",data);
m_oki->set_bank_base(bank * 0x40000);
m_oki->set_rom_bank(bank);
}
static ADDRESS_MAP_START( twinadv_sound_io_map, AS_IO, 8, snowbros_state )

View File

@ -317,13 +317,13 @@ WRITE8_MEMBER(sslam_state::sslam_snd_w)
else if (m_sound >= 0x70) {
/* These vocals are in bank 1, but a bug in the actual MCU doesn't set the bank */
// if (m_snd_bank != 1)
// m_oki->set_bank_base((1 * 0x40000));
// m_oki->set_rom_bank(1);
// sslam_snd_bank = 1;
sslam_play(0, m_sound);
}
else if (m_sound >= 0x69) {
if (m_snd_bank != 2)
m_oki->set_bank_base(2 * 0x40000);
m_oki->set_rom_bank(2);
m_snd_bank = 2;
switch (m_sound)
{
@ -336,14 +336,14 @@ WRITE8_MEMBER(sslam_state::sslam_snd_w)
}
else if (m_sound >= 0x65) {
if (m_snd_bank != 1)
m_oki->set_bank_base(1 * 0x40000);
m_oki->set_rom_bank(1);
m_snd_bank = 1;
m_melody = 4;
sslam_play(m_melody, m_sound);
}
else if (m_sound >= 0x60) {
if (m_snd_bank != 0)
m_oki->set_bank_base(0 * 0x40000);
m_oki->set_rom_bank(0);
m_snd_bank = 0;
switch (m_sound)
{
@ -446,7 +446,7 @@ WRITE8_MEMBER(sslam_state::playmark_snd_control_w)
if (m_oki_bank != ((data & 3) - 1))
{
m_oki_bank = (data & 3) - 1;
m_oki->set_bank_base(0x40000 * m_oki_bank);
m_oki->set_rom_bank(m_oki_bank);
}
}

View File

@ -88,7 +88,7 @@ WRITE16_MEMBER(stlforce_state::eeprom_w)
WRITE16_MEMBER(stlforce_state::oki_bank_w)
{
m_oki->set_bank_base(0x40000 * ((data>>8) & 3));
m_oki->set_rom_bank((data>>8) & 3);
}
static ADDRESS_MAP_START( stlforce_map, AS_PROGRAM, 16, stlforce_state )

View File

@ -841,13 +841,13 @@ READ8_MEMBER(subsino2_state::vblank_bit6_r)
WRITE8_MEMBER(subsino2_state::oki_bank_bit0_w)
{
// it writes 0x32 or 0x33
m_oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_rom_bank(data & 1);
}
WRITE8_MEMBER(subsino2_state::oki_bank_bit4_w)
{
// it writes 0x23 or 0x33
m_oki->set_bank_base(((data >> 4) & 1) * 0x40000);
m_oki->set_rom_bank((data >> 4) & 1);
}
INTERRUPT_GEN_MEMBER(subsino2_state::am188em_int0_irq)

View File

@ -618,7 +618,7 @@ READ8_MEMBER(taitof2_state::driveout_sound_command_r)
void taitof2_state::reset_driveout_sound_region()
{
m_oki->set_bank_base(m_oki_bank * 0x40000);
m_oki->set_rom_bank(m_oki_bank);
}
WRITE8_MEMBER(taitof2_state::oki_bank_w)

View File

@ -399,19 +399,19 @@ WRITE16_MEMBER(tickee_state::sound_bank_w)
switch (data & 0xff)
{
case 0x2c:
m_oki->set_bank_base(0x00000);
m_oki->set_rom_bank(0);
break;
case 0x2d:
m_oki->set_bank_base(0x40000);
m_oki->set_rom_bank(1);
break;
case 0x1c:
m_oki->set_bank_base(0x80000);
m_oki->set_rom_bank(2);
break;
case 0x1d:
m_oki->set_bank_base(0xc0000);
m_oki->set_rom_bank(3);
break;
default:

View File

@ -206,7 +206,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank0)
else
m_okibank &= ~1;
m_oki->set_bank_base(m_okibank * 0x40000);
m_oki->set_rom_bank(m_okibank);
}
WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
@ -216,7 +216,7 @@ WRITE_LINE_MEMBER(tmaster_state::write_oki_bank1)
else
m_okibank &= ~2;
m_oki->set_bank_base(m_okibank * 0x40000);
m_oki->set_rom_bank(m_okibank);
}
/***************************************************************************

View File

@ -617,7 +617,7 @@ WRITE16_MEMBER(toaplan2_state::shippumd_coin_word_w)
if (ACCESSING_BITS_0_7)
{
toaplan2_coin_w(space, offset, data & 0xff);
m_oki->set_bank_base(((data & 0x10) >> 4) * 0x40000);
m_oki->set_rom_bank((data & 0x10) >> 4);
}
if (ACCESSING_BITS_8_15 && (data & 0xff00) )
{
@ -775,7 +775,7 @@ WRITE16_MEMBER(toaplan2_state::oki_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki->set_bank_base((data & 1) * 0x40000);
m_oki->set_rom_bank(data & 1);
}
}
@ -783,7 +783,7 @@ WRITE16_MEMBER(toaplan2_state::oki1_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
{
m_oki1->set_bank_base((data & 1) * 0x40000);
m_oki1->set_rom_bank(data & 1);
}
}

View File

@ -49,7 +49,7 @@ WRITE16_MEMBER(unico_state::burglarx_sound_bank_w)
if (ACCESSING_BITS_8_15)
{
int bank = (data >> 8 ) & 1;
m_oki->set_bank_base(0x40000 * bank );
m_oki->set_rom_bank(bank);
}
}

View File

@ -293,7 +293,7 @@ F94B
WRITE32_MEMBER(vamphalf_state::finalgdr_oki_bank_w)
{
m_oki->set_bank_base(0x40000 * ((data & 0x300) >> 8));
m_oki->set_rom_bank((data & 0x300) >> 8);
}
WRITE32_MEMBER(vamphalf_state::finalgdr_backupram_bank_w)
@ -331,19 +331,19 @@ WRITE32_MEMBER(vamphalf_state::finalgdr_prize_w)
WRITE32_MEMBER(vamphalf_state::aoh_oki_bank_w)
{
m_oki2->set_bank_base(0x40000 * (data & 0x3));
m_oki2->set_rom_bank(data & 0x3);
}
WRITE16_MEMBER(vamphalf_state::boonggab_oki_bank_w)
{
if(offset)
m_oki->set_bank_base(0x40000 * (data & 0x7));
m_oki->set_rom_bank(data & 0x7);
}
WRITE16_MEMBER(vamphalf_state::mrkicker_oki_bank_w)
{
m_oki->set_bank_base(0x40000 * (data & 0x3));
m_oki->set_rom_bank(data & 0x3);
}
WRITE16_MEMBER(vamphalf_state::boonggab_prize_w)

View File

@ -158,7 +158,7 @@ logerror("PC %04x: pang_gfxctrl_w %02x\n",space.device().safe_pc(),data);
/* bit 4 selects OKI M6295 bank */
if (m_oki != nullptr)
m_oki->set_bank_base((data & 0x10) ? 0x40000 : 0x00000);
m_oki->set_rom_bank((data >> 4) & 1);
/* bit 5 is palette RAM bank selector (doesn't apply to mgakuen) */
m_paletteram_bank = data & 0x20;