From 7f37b292749bfbc82b15027eb1f995ca037d9cef Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Tue, 6 Sep 2016 11:43:11 +0200 Subject: [PATCH] okim6295: Directly use set_rom_bank [O. Galibert] dirom: Add a mandatory callback on bank change [O. Galibert] --- src/devices/sound/bsmt2000.cpp | 10 ++++++++++ src/devices/sound/bsmt2000.h | 3 +++ src/devices/sound/c352.cpp | 10 ++++++++++ src/devices/sound/c352.h | 3 +++ src/devices/sound/es5503.cpp | 9 +++++++++ src/devices/sound/es5503.h | 3 +++ src/devices/sound/k053260.cpp | 10 ++++++++++ src/devices/sound/k053260.h | 3 +++ src/devices/sound/multipcm.cpp | 10 ++++++++++ src/devices/sound/multipcm.h | 3 +++ src/devices/sound/okim6295.cpp | 21 +++------------------ src/devices/sound/okim6295.h | 6 +++--- src/devices/sound/okim9810.cpp | 10 ++++++++++ src/devices/sound/okim9810.h | 3 +++ src/devices/sound/qs1000.cpp | 10 ++++++++++ src/devices/sound/qs1000.h | 3 +++ src/devices/sound/segapcm.cpp | 11 +++++++++++ src/devices/sound/segapcm.h | 3 +++ src/devices/sound/vlm5030.cpp | 5 +++++ src/devices/sound/vlm5030.h | 3 +++ src/devices/sound/ymf278b.cpp | 5 +++++ src/devices/sound/ymf278b.h | 3 +++ src/emu/dirom.cpp | 5 +++++ src/emu/dirom.h | 3 +++ src/mame/drivers/1945kiii.cpp | 6 +++--- src/mame/drivers/30test.cpp | 2 +- src/mame/drivers/3x3puzzl.cpp | 2 +- src/mame/drivers/acommand.cpp | 4 ++-- src/mame/drivers/aerofgt.cpp | 2 +- src/mame/drivers/arcadecl.cpp | 2 +- src/mame/drivers/artmagic.cpp | 2 +- src/mame/drivers/astrcorp.cpp | 4 ++-- src/mame/drivers/bestleag.cpp | 2 +- src/mame/drivers/boogwing.cpp | 4 ++-- src/mame/drivers/cave.cpp | 2 +- src/mame/drivers/cesclass.cpp | 2 +- src/mame/drivers/cischeat.cpp | 13 +++++++------ src/mame/drivers/cninja.cpp | 2 +- src/mame/drivers/dassault.cpp | 2 +- src/mame/drivers/ddenlovr.cpp | 28 +++++++++++++--------------- src/mame/drivers/ddragon3.cpp | 2 +- src/mame/drivers/deco156.cpp | 4 ++-- src/mame/drivers/deco32.cpp | 4 ++-- src/mame/drivers/deniam.cpp | 6 +++--- src/mame/drivers/diverboy.cpp | 2 +- src/mame/drivers/drgnmst.cpp | 4 ++-- src/mame/drivers/drtomy.cpp | 2 +- src/mame/drivers/dynax.cpp | 2 +- src/mame/drivers/egghunt.cpp | 2 +- src/mame/drivers/feversoc.cpp | 2 +- src/mame/drivers/funybubl.cpp | 2 +- src/mame/drivers/fuukifg2.cpp | 2 +- src/mame/drivers/galpani2.cpp | 2 +- src/mame/drivers/gcpinbal.cpp | 2 +- src/mame/drivers/ggconnie.cpp | 2 +- src/mame/drivers/gotcha.cpp | 2 +- src/mame/drivers/gstream.cpp | 4 ++-- src/mame/drivers/gunpey.cpp | 2 +- src/mame/drivers/igs011.cpp | 6 +++--- src/mame/drivers/igs017.cpp | 14 +++++++------- src/mame/drivers/joystand.cpp | 2 +- src/mame/drivers/kaneko16.cpp | 16 ++++++++-------- src/mame/drivers/kickgoal.cpp | 32 ++++++++++++++++---------------- src/mame/drivers/lordgun.cpp | 2 +- src/mame/drivers/m92.cpp | 2 +- src/mame/drivers/metro.cpp | 2 +- src/mame/drivers/midyunit.cpp | 2 +- src/mame/drivers/mirage.cpp | 4 ++-- src/mame/drivers/mitchell.cpp | 2 +- src/mame/drivers/moo.cpp | 2 +- src/mame/drivers/mwarr.cpp | 2 +- src/mame/drivers/nmg5.cpp | 2 +- src/mame/drivers/nmk16.cpp | 6 +++--- src/mame/drivers/oneshot.cpp | 2 +- src/mame/drivers/paradise.cpp | 2 +- src/mame/drivers/pasha2.cpp | 4 ++-- src/mame/drivers/pirates.cpp | 2 +- src/mame/drivers/pktgaldx.cpp | 2 +- src/mame/drivers/playmark.cpp | 4 ++-- src/mame/drivers/powerbal.cpp | 6 +++--- src/mame/drivers/pzletime.cpp | 2 +- src/mame/drivers/rohga.cpp | 4 ++-- src/mame/drivers/seibuspi.cpp | 2 +- src/mame/drivers/seicupbl.cpp | 2 +- src/mame/drivers/shadfrce.cpp | 2 +- src/mame/drivers/shangha3.cpp | 4 ++-- src/mame/drivers/silkroad.cpp | 2 +- src/mame/drivers/simpl156.cpp | 2 +- src/mame/drivers/snowbros.cpp | 2 +- src/mame/drivers/sslam.cpp | 10 +++++----- src/mame/drivers/stlforce.cpp | 2 +- src/mame/drivers/subsino2.cpp | 4 ++-- src/mame/drivers/taito_f2.cpp | 2 +- src/mame/drivers/tickee.cpp | 8 ++++---- src/mame/drivers/tmaster.cpp | 4 ++-- src/mame/drivers/toaplan2.cpp | 6 +++--- src/mame/drivers/unico.cpp | 2 +- src/mame/drivers/vamphalf.cpp | 8 ++++---- src/mame/video/mitchell.cpp | 2 +- 99 files changed, 291 insertions(+), 179 deletions(-) diff --git a/src/devices/sound/bsmt2000.cpp b/src/devices/sound/bsmt2000.cpp index 7e92bcb80fb..e64702fb60a 100644 --- a/src/devices/sound/bsmt2000.cpp +++ b/src/devices/sound/bsmt2000.cpp @@ -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 //------------------------------------------------- diff --git a/src/devices/sound/bsmt2000.h b/src/devices/sound/bsmt2000.h index 2b80c685418..b23767c3626 100644 --- a/src/devices/sound/bsmt2000.h +++ b/src/devices/sound/bsmt2000.h @@ -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 ); diff --git a/src/devices/sound/c352.cpp b/src/devices/sound/c352.cpp index a34f5aac362..95a64f503bf 100644 --- a/src/devices/sound/c352.cpp +++ b/src/devices/sound/c352.cpp @@ -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 diff --git a/src/devices/sound/c352.h b/src/devices/sound/c352.h index 6746eb44795..f16c642c215 100644 --- a/src/devices/sound/c352.h +++ b/src/devices/sound/c352.h @@ -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 diff --git a/src/devices/sound/es5503.cpp b/src/devices/sound/es5503.cpp index c5fe731717e..777a98e9834 100644 --- a/src/devices/sound/es5503.cpp +++ b/src/devices/sound/es5503.cpp @@ -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 # diff --git a/src/devices/sound/es5503.h b/src/devices/sound/es5503.h index 075cde4cf02..4982201463c 100644 --- a/src/devices/sound/es5503.h +++ b/src/devices/sound/es5503.h @@ -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; diff --git a/src/devices/sound/k053260.cpp b/src/devices/sound/k053260.cpp index a361fe1b8af..5f1a1a3abfc 100644 --- a/src/devices/sound/k053260.cpp +++ b/src/devices/sound/k053260.cpp @@ -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 diff --git a/src/devices/sound/k053260.h b/src/devices/sound/k053260.h index 18b5c9f25a7..7ac63bfced3 100644 --- a/src/devices/sound/k053260.h +++ b/src/devices/sound/k053260.h @@ -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; diff --git a/src/devices/sound/multipcm.cpp b/src/devices/sound/multipcm.cpp index 12d2ad6b046..3138faed45e 100644 --- a/src/devices/sound/multipcm.cpp +++ b/src/devices/sound/multipcm.cpp @@ -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(); +} diff --git a/src/devices/sound/multipcm.h b/src/devices/sound/multipcm.h index e3cf8f5d6b6..a1ca8ed4272 100644 --- a/src/devices/sound/multipcm.h +++ b/src/devices/sound/multipcm.h @@ -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 { diff --git a/src/devices/sound/okim6295.cpp b/src/devices/sound/okim6295.cpp index 530731c5ef5..e350992c0db 100644 --- a/src/devices/sound/okim6295.cpp +++ b/src/devices/sound/okim6295.cpp @@ -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(); } diff --git a/src/devices/sound/okim6295.h b/src/devices/sound/okim6295.h index b637ed057a4..661e4bb54ad 100644 --- a/src/devices/sound/okim6295.h +++ b/src/devices/sound/okim6295.h @@ -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; diff --git a/src/devices/sound/okim9810.cpp b/src/devices/sound/okim9810.cpp index 059cdb63b4d..09675991997 100644 --- a/src/devices/sound/okim9810.cpp +++ b/src/devices/sound/okim9810.cpp @@ -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 diff --git a/src/devices/sound/okim9810.h b/src/devices/sound/okim9810.h index 5bdafed1f3b..b4878c0cff2 100644 --- a/src/devices/sound/okim9810.h +++ b/src/devices/sound/okim9810.h @@ -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 { diff --git a/src/devices/sound/qs1000.cpp b/src/devices/sound/qs1000.cpp index 80e7526b7be..481677fb107 100644 --- a/src/devices/sound/qs1000.cpp +++ b/src/devices/sound/qs1000.cpp @@ -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 //------------------------------------------------- diff --git a/src/devices/sound/qs1000.h b/src/devices/sound/qs1000.h index b47576a7245..122a1cc0950 100644 --- a/src/devices/sound/qs1000.h +++ b/src/devices/sound/qs1000.h @@ -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 ); diff --git a/src/devices/sound/segapcm.cpp b/src/devices/sound/segapcm.cpp index d0e7864dd1f..f239d469c09 100644 --- a/src/devices/sound/segapcm.cpp +++ b/src/devices/sound/segapcm.cpp @@ -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 //------------------------------------------------- diff --git a/src/devices/sound/segapcm.h b/src/devices/sound/segapcm.h index 5861db66940..0d4d5e2ec5e 100644 --- a/src/devices/sound/segapcm.h +++ b/src/devices/sound/segapcm.h @@ -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 m_ram; UINT8 m_low[16]; diff --git a/src/devices/sound/vlm5030.cpp b/src/devices/sound/vlm5030.cpp index eabdbccb89e..901f0478297 100644 --- a/src/devices/sound/vlm5030.cpp +++ b/src/devices/sound/vlm5030.cpp @@ -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); diff --git a/src/devices/sound/vlm5030.h b/src/devices/sound/vlm5030.h index 93768a8c14f..fb94de09ca3 100644 --- a/src/devices/sound/vlm5030.h +++ b/src/devices/sound/vlm5030.h @@ -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; diff --git a/src/devices/sound/ymf278b.cpp b/src/devices/sound/ymf278b.cpp index 30984c780c5..7a0baaf75da 100644 --- a/src/devices/sound/ymf278b.cpp +++ b/src/devices/sound/ymf278b.cpp @@ -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; diff --git a/src/devices/sound/ymf278b.h b/src/devices/sound/ymf278b.h index 508afb5dd60..6542621a625 100644 --- a/src/devices/sound/ymf278b.h +++ b/src/devices/sound/ymf278b.h @@ -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 { diff --git a/src/emu/dirom.cpp b/src/emu/dirom.cpp index eb0d6ea29b8..0a359c7d07b 100644 --- a/src/emu/dirom.cpp +++ b/src/emu/dirom.cpp @@ -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() diff --git a/src/emu/dirom.h b/src/emu/dirom.h index 59b2710708c..aebe0b950c5 100644 --- a/src/emu/dirom.h +++ b/src/emu/dirom.h @@ -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; diff --git a/src/mame/drivers/1945kiii.cpp b/src/mame/drivers/1945kiii.cpp index 73de99d60a4..42fd7d2c29f 100644 --- a/src/mame/drivers/1945kiii.cpp +++ b/src/mame/drivers/1945kiii.cpp @@ -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); } diff --git a/src/mame/drivers/30test.cpp b/src/mame/drivers/30test.cpp index c41167a52de..d9291a08dd3 100644 --- a/src/mame/drivers/30test.cpp +++ b/src/mame/drivers/30test.cpp @@ -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); } diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp index 7e640f07bf4..bcec09cc938 100644 --- a/src/mame/drivers/3x3puzzl.cpp +++ b/src/mame/drivers/3x3puzzl.cpp @@ -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); } } diff --git a/src/mame/drivers/acommand.cpp b/src/mame/drivers/acommand.cpp index ccbf9b21617..df5a72bcf24 100644 --- a/src/mame/drivers/acommand.cpp +++ b/src/mame/drivers/acommand.cpp @@ -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: diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp index cbd5f8465d0..7dd7fe63747 100644 --- a/src/mame/drivers/aerofgt.cpp +++ b/src/mame/drivers/aerofgt.cpp @@ -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. */ diff --git a/src/mame/drivers/arcadecl.cpp b/src/mame/drivers/arcadecl.cpp index 0382272e5d3..1fd36da6c5f 100644 --- a/src/mame/drivers/arcadecl.cpp +++ b/src/mame/drivers/arcadecl.cpp @@ -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); } } diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp index ad8ceee4928..c603cadc045 100644 --- a/src/mame/drivers/artmagic.cpp +++ b/src/mame/drivers/artmagic.cpp @@ -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); diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp index 6440331aa95..a630472f739 100644 --- a/src/mame/drivers/astrcorp.cpp +++ b/src/mame/drivers/astrcorp.cpp @@ -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); } } diff --git a/src/mame/drivers/bestleag.cpp b/src/mame/drivers/bestleag.cpp index af6a36c5489..7642defe137 100644 --- a/src/mame/drivers/bestleag.cpp +++ b/src/mame/drivers/bestleag.cpp @@ -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); } diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp index 780070251f8..6b5eb02f7f1 100644 --- a/src/mame/drivers/boogwing.cpp +++ b/src/mame/drivers/boogwing.cpp @@ -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); } diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp index 70e4d422229..44b643afd02 100644 --- a/src/mame/drivers/cave.cpp +++ b/src/mame/drivers/cave.cpp @@ -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); diff --git a/src/mame/drivers/cesclass.cpp b/src/mame/drivers/cesclass.cpp index 28f85f089e3..73622bdbc43 100644 --- a/src/mame/drivers/cesclass.cpp +++ b/src/mame/drivers/cesclass.cpp @@ -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); diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp index 4ca173f82b7..b556af9a105 100644 --- a/src/mame/drivers/cischeat.cpp +++ b/src/mame/drivers/cischeat.cpp @@ -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 diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp index 3531d53b847..504b700fe00 100644 --- a/src/mame/drivers/cninja.cpp +++ b/src/mame/drivers/cninja.cpp @@ -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); } /**********************************************************************************/ diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp index c7a3c5c2b96..b334031a98e 100644 --- a/src/mame/drivers/dassault.cpp +++ b/src/mame/drivers/dassault.cpp @@ -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); } /**********************************************************************************/ diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp index 3fc314a7588..d4b1134439a 100644 --- a/src/mame/drivers/ddenlovr.cpp +++ b/src/mame/drivers/ddenlovr.cpp @@ -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) diff --git a/src/mame/drivers/ddragon3.cpp b/src/mame/drivers/ddragon3.cpp index 58cb491e9b1..fcf61a23cb0 100644 --- a/src/mame/drivers/ddragon3.cpp +++ b/src/mame/drivers/ddragon3.cpp @@ -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) diff --git a/src/mame/drivers/deco156.cpp b/src/mame/drivers/deco156.cpp index 22f13ff5752..723e051c55a 100644 --- a/src/mame/drivers/deco156.cpp +++ b/src/mame/drivers/deco156.cpp @@ -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) diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp index 131606916d5..5408597756a 100644 --- a/src/mame/drivers/deco32.cpp +++ b/src/mame/drivers/deco32.cpp @@ -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); } /**********************************************************************************/ diff --git a/src/mame/drivers/deniam.cpp b/src/mame/drivers/deniam.cpp index 49a076dda15..363b31bdaa9 100644 --- a/src/mame/drivers/deniam.cpp +++ b/src/mame/drivers/deniam.cpp @@ -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 ) diff --git a/src/mame/drivers/diverboy.cpp b/src/mame/drivers/diverboy.cpp index 61af792522a..e8ef0a5885b 100644 --- a/src/mame/drivers/diverboy.cpp +++ b/src/mame/drivers/diverboy.cpp @@ -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); } diff --git a/src/mame/drivers/drgnmst.cpp b/src/mame/drivers/drgnmst.cpp index 4ecbee712d5..184b7534630 100644 --- a/src/mame/drivers/drgnmst.cpp +++ b/src/mame/drivers/drgnmst.cpp @@ -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) diff --git a/src/mame/drivers/drtomy.cpp b/src/mame/drivers/drtomy.cpp index 2156bc25b8c..ace112b8f08 100644 --- a/src/mame/drivers/drtomy.cpp +++ b/src/mame/drivers/drtomy.cpp @@ -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) */ diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index 0df75e50335..79008b34894 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -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); } diff --git a/src/mame/drivers/egghunt.cpp b/src/mame/drivers/egghunt.cpp index 565955405ca..a41444d08ee 100644 --- a/src/mame/drivers/egghunt.cpp +++ b/src/mame/drivers/egghunt.cpp @@ -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 ) diff --git a/src/mame/drivers/feversoc.cpp b/src/mame/drivers/feversoc.cpp index e326faf7869..b217c18b8e0 100644 --- a/src/mame/drivers/feversoc.cpp +++ b/src/mame/drivers/feversoc.cpp @@ -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); diff --git a/src/mame/drivers/funybubl.cpp b/src/mame/drivers/funybubl.cpp index 3f730bfa15e..a1f7937d76e 100644 --- a/src/mame/drivers/funybubl.cpp +++ b/src/mame/drivers/funybubl.cpp @@ -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); } diff --git a/src/mame/drivers/fuukifg2.cpp b/src/mame/drivers/fuukifg2.cpp index 35f90b55867..37a090df5c7 100644 --- a/src/mame/drivers/fuukifg2.cpp +++ b/src/mame/drivers/fuukifg2.cpp @@ -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 ) diff --git a/src/mame/drivers/galpani2.cpp b/src/mame/drivers/galpani2.cpp index a658e02409b..b4bbef370ac 100644 --- a/src/mame/drivers/galpani2.cpp +++ b/src/mame/drivers/galpani2.cpp @@ -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); } diff --git a/src/mame/drivers/gcpinbal.cpp b/src/mame/drivers/gcpinbal.cpp index 54ef2156486..98981a509da 100644 --- a/src/mame/drivers/gcpinbal.cpp +++ b/src/mame/drivers/gcpinbal.cpp @@ -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: diff --git a/src/mame/drivers/ggconnie.cpp b/src/mame/drivers/ggconnie.cpp index 06a27001cca..7b80bb746e4 100644 --- a/src/mame/drivers/ggconnie.cpp +++ b/src/mame/drivers/ggconnie.cpp @@ -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); } diff --git a/src/mame/drivers/gotcha.cpp b/src/mame/drivers/gotcha.cpp index e73a66048bf..b0ab9b2a504 100644 --- a/src/mame/drivers/gotcha.cpp +++ b/src/mame/drivers/gotcha.cpp @@ -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); } } diff --git a/src/mame/drivers/gstream.cpp b/src/mame/drivers/gstream.cpp index ef6ab7f984c..dfa06d1ca95 100644 --- a/src/mame/drivers/gstream.cpp +++ b/src/mame/drivers/gstream.cpp @@ -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? diff --git a/src/mame/drivers/gunpey.cpp b/src/mame/drivers/gunpey.cpp index 80285fe5c1f..d7ccfe19747 100644 --- a/src/mame/drivers/gunpey.cpp +++ b/src/mame/drivers/gunpey.cpp @@ -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) diff --git a/src/mame/drivers/igs011.cpp b/src/mame/drivers/igs011.cpp index d98ac8cfd13..82beed9bd35 100644 --- a/src/mame/drivers/igs011.cpp +++ b/src/mame/drivers/igs011.cpp @@ -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) ) diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 2687d0469c6..4899caf1c21 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -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 diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp index 28753d6f0c0..88cd4581426 100644 --- a/src/mame/drivers/joystand.cpp +++ b/src/mame/drivers/joystand.cpp @@ -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) diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp index b69406e5d51..d8b5850b267 100644 --- a/src/mame/drivers/kaneko16.cpp +++ b/src/mame/drivers/kaneko16.cpp @@ -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); } diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp index 587c2786b73..b1fd4983636 100644 --- a/src/mame/drivers/kickgoal.cpp +++ b/src/mame/drivers/kickgoal.cpp @@ -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) diff --git a/src/mame/drivers/lordgun.cpp b/src/mame/drivers/lordgun.cpp index 6a61bdfa80d..20c20103e2c 100644 --- a/src/mame/drivers/lordgun.cpp +++ b/src/mame/drivers/lordgun.cpp @@ -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); } diff --git a/src/mame/drivers/m92.cpp b/src/mame/drivers/m92.cpp index 43af99b2524..4ed36a7899e 100644 --- a/src/mame/drivers/m92.cpp +++ b/src/mame/drivers/m92.cpp @@ -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 ) diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp index a04faaab3e0..252e5bea272 100644 --- a/src/mame/drivers/metro.cpp +++ b/src/mame/drivers/metro.cpp @@ -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) diff --git a/src/mame/drivers/midyunit.cpp b/src/mame/drivers/midyunit.cpp index d7bc901c422..4887dd68ee3 100644 --- a/src/mame/drivers/midyunit.cpp +++ b/src/mame/drivers/midyunit.cpp @@ -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); } diff --git a/src/mame/drivers/mirage.cpp b/src/mame/drivers/mirage.cpp index bdc35341adf..db587ab14b9 100644 --- a/src/mame/drivers/mirage.cpp +++ b/src/mame/drivers/mirage.cpp @@ -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 ) diff --git a/src/mame/drivers/mitchell.cpp b/src/mame/drivers/mitchell.cpp index c656ba55772..a2978b7e0b8 100644 --- a/src/mame/drivers/mitchell.cpp +++ b/src/mame/drivers/mitchell.cpp @@ -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 ) diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp index 95f781bc5b1..3291006439a 100644 --- a/src/mame/drivers/moo.cpp +++ b/src/mame/drivers/moo.cpp @@ -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 ) diff --git a/src/mame/drivers/mwarr.cpp b/src/mame/drivers/mwarr.cpp index ad5cd84720e..aded5d473f4 100644 --- a/src/mame/drivers/mwarr.cpp +++ b/src/mame/drivers/mwarr.cpp @@ -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) diff --git a/src/mame/drivers/nmg5.cpp b/src/mame/drivers/nmg5.cpp index 07a5e090c83..d71e1141562 100644 --- a/src/mame/drivers/nmg5.cpp +++ b/src/mame/drivers/nmg5.cpp @@ -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); } /******************************************************************* diff --git a/src/mame/drivers/nmk16.cpp b/src/mame/drivers/nmk16.cpp index 5b959e64f33..4d177723eda 100644 --- a/src/mame/drivers/nmk16.cpp +++ b/src/mame/drivers/nmk16.cpp @@ -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); diff --git a/src/mame/drivers/oneshot.cpp b/src/mame/drivers/oneshot.cpp index cad1f105fa4..3ef8f98f588 100644 --- a/src/mame/drivers/oneshot.cpp +++ b/src/mame/drivers/oneshot.cpp @@ -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); } } diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp index e146a22f1a9..706538e8eef 100644 --- a/src/mame/drivers/paradise.cpp +++ b/src/mame/drivers/paradise.cpp @@ -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) diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp index 0c2c05a645b..ad457527f55 100644 --- a/src/mame/drivers/pasha2.cpp +++ b/src/mame/drivers/pasha2.cpp @@ -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) diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp index 671c1abfc8b..d0fe75dd6ad 100644 --- a/src/mame/drivers/pirates.cpp +++ b/src/mame/drivers/pirates.cpp @@ -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) */ } diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp index 71218180099..f4e3635a2dc 100644 --- a/src/mame/drivers/pktgaldx.cpp +++ b/src/mame/drivers/pktgaldx.cpp @@ -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); } /**********************************************************************************/ diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp index 0506cfda83b..519a4a08859 100644 --- a/src/mame/drivers/playmark.cpp +++ b/src/mame/drivers/playmark.cpp @@ -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); } } diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp index a0cb0756911..4f216334ce1 100644 --- a/src/mame/drivers/powerbal.cpp +++ b/src/mame/drivers/powerbal.cpp @@ -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); } } diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp index bb14cdc4f96..660bc3cca78 100644 --- a/src/mame/drivers/pzletime.cpp +++ b/src/mame/drivers/pzletime.cpp @@ -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) diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 7a371beb3bf..1525c642543 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -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)); } /**********************************************************************************/ diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp index 262e549c51b..7d81416a185 100644 --- a/src/mame/drivers/seibuspi.cpp +++ b/src/mame/drivers/seibuspi.cpp @@ -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) diff --git a/src/mame/drivers/seicupbl.cpp b/src/mame/drivers/seicupbl.cpp index f663d6a7d3b..c257a0594ed 100644 --- a/src/mame/drivers/seicupbl.cpp +++ b/src/mame/drivers/seicupbl.cpp @@ -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 ) diff --git a/src/mame/drivers/shadfrce.cpp b/src/mame/drivers/shadfrce.cpp index 62a6c229a6d..f364e6a1995 100644 --- a/src/mame/drivers/shadfrce.cpp +++ b/src/mame/drivers/shadfrce.cpp @@ -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 ) diff --git a/src/mame/drivers/shangha3.cpp b/src/mame/drivers/shangha3.cpp index ef29d1b67ec..4e53418f39e 100644 --- a/src/mame/drivers/shangha3.cpp +++ b/src/mame/drivers/shangha3.cpp @@ -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); diff --git a/src/mame/drivers/silkroad.cpp b/src/mame/drivers/silkroad.cpp index 9edc760cd0b..a4ecac4b4e8 100644 --- a/src/mame/drivers/silkroad.cpp +++ b/src/mame/drivers/silkroad.cpp @@ -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); } } diff --git a/src/mame/drivers/simpl156.cpp b/src/mame/drivers/simpl156.cpp index 543ca177212..942d6dad243 100644 --- a/src/mame/drivers/simpl156.cpp +++ b/src/mame/drivers/simpl156.cpp @@ -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)); diff --git a/src/mame/drivers/snowbros.cpp b/src/mame/drivers/snowbros.cpp index ae59208aaf3..43763837513 100644 --- a/src/mame/drivers/snowbros.cpp +++ b/src/mame/drivers/snowbros.cpp @@ -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 ) diff --git a/src/mame/drivers/sslam.cpp b/src/mame/drivers/sslam.cpp index 48c3464b42a..0a088944b43 100644 --- a/src/mame/drivers/sslam.cpp +++ b/src/mame/drivers/sslam.cpp @@ -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); } } diff --git a/src/mame/drivers/stlforce.cpp b/src/mame/drivers/stlforce.cpp index 102eb722f59..5dd6e2ae888 100644 --- a/src/mame/drivers/stlforce.cpp +++ b/src/mame/drivers/stlforce.cpp @@ -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 ) diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp index 262d0d56a69..0e5f7989347 100644 --- a/src/mame/drivers/subsino2.cpp +++ b/src/mame/drivers/subsino2.cpp @@ -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) diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index 4c409035c52..54dec410de0 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -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) diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp index d519b8e4899..214f0ef240f 100644 --- a/src/mame/drivers/tickee.cpp +++ b/src/mame/drivers/tickee.cpp @@ -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: diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp index 091d18cb17f..cae1ada35fd 100644 --- a/src/mame/drivers/tmaster.cpp +++ b/src/mame/drivers/tmaster.cpp @@ -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); } /*************************************************************************** diff --git a/src/mame/drivers/toaplan2.cpp b/src/mame/drivers/toaplan2.cpp index d8d04c146d3..0d0741c18c9 100644 --- a/src/mame/drivers/toaplan2.cpp +++ b/src/mame/drivers/toaplan2.cpp @@ -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); } } diff --git a/src/mame/drivers/unico.cpp b/src/mame/drivers/unico.cpp index 5462050d1d4..f18dc1261fe 100644 --- a/src/mame/drivers/unico.cpp +++ b/src/mame/drivers/unico.cpp @@ -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); } } diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index 1d295101d3e..2b1543ceaa3 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/vamphalf.cpp @@ -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) diff --git a/src/mame/video/mitchell.cpp b/src/mame/video/mitchell.cpp index 592a035937b..339790162ce 100644 --- a/src/mame/video/mitchell.cpp +++ b/src/mame/video/mitchell.cpp @@ -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;