summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/sound/bsmt2000.cpp10
-rw-r--r--src/devices/sound/bsmt2000.h3
-rw-r--r--src/devices/sound/c352.cpp10
-rw-r--r--src/devices/sound/c352.h3
-rw-r--r--src/devices/sound/es5503.cpp9
-rw-r--r--src/devices/sound/es5503.h3
-rw-r--r--src/devices/sound/k053260.cpp10
-rw-r--r--src/devices/sound/k053260.h3
-rw-r--r--src/devices/sound/multipcm.cpp10
-rw-r--r--src/devices/sound/multipcm.h3
-rw-r--r--src/devices/sound/okim6295.cpp21
-rw-r--r--src/devices/sound/okim6295.h6
-rw-r--r--src/devices/sound/okim9810.cpp10
-rw-r--r--src/devices/sound/okim9810.h3
-rw-r--r--src/devices/sound/qs1000.cpp10
-rw-r--r--src/devices/sound/qs1000.h3
-rw-r--r--src/devices/sound/segapcm.cpp11
-rw-r--r--src/devices/sound/segapcm.h3
-rw-r--r--src/devices/sound/vlm5030.cpp5
-rw-r--r--src/devices/sound/vlm5030.h3
-rw-r--r--src/devices/sound/ymf278b.cpp5
-rw-r--r--src/devices/sound/ymf278b.h3
-rw-r--r--src/emu/dirom.cpp5
-rw-r--r--src/emu/dirom.h3
-rw-r--r--src/mame/drivers/1945kiii.cpp6
-rw-r--r--src/mame/drivers/30test.cpp2
-rw-r--r--src/mame/drivers/3x3puzzl.cpp2
-rw-r--r--src/mame/drivers/acommand.cpp4
-rw-r--r--src/mame/drivers/aerofgt.cpp2
-rw-r--r--src/mame/drivers/arcadecl.cpp2
-rw-r--r--src/mame/drivers/artmagic.cpp2
-rw-r--r--src/mame/drivers/astrcorp.cpp4
-rw-r--r--src/mame/drivers/bestleag.cpp2
-rw-r--r--src/mame/drivers/boogwing.cpp4
-rw-r--r--src/mame/drivers/cave.cpp2
-rw-r--r--src/mame/drivers/cesclass.cpp2
-rw-r--r--src/mame/drivers/cischeat.cpp13
-rw-r--r--src/mame/drivers/cninja.cpp2
-rw-r--r--src/mame/drivers/dassault.cpp2
-rw-r--r--src/mame/drivers/ddenlovr.cpp28
-rw-r--r--src/mame/drivers/ddragon3.cpp2
-rw-r--r--src/mame/drivers/deco156.cpp4
-rw-r--r--src/mame/drivers/deco32.cpp4
-rw-r--r--src/mame/drivers/deniam.cpp6
-rw-r--r--src/mame/drivers/diverboy.cpp2
-rw-r--r--src/mame/drivers/drgnmst.cpp4
-rw-r--r--src/mame/drivers/drtomy.cpp2
-rw-r--r--src/mame/drivers/dynax.cpp2
-rw-r--r--src/mame/drivers/egghunt.cpp2
-rw-r--r--src/mame/drivers/feversoc.cpp2
-rw-r--r--src/mame/drivers/funybubl.cpp2
-rw-r--r--src/mame/drivers/fuukifg2.cpp2
-rw-r--r--src/mame/drivers/galpani2.cpp2
-rw-r--r--src/mame/drivers/gcpinbal.cpp2
-rw-r--r--src/mame/drivers/ggconnie.cpp2
-rw-r--r--src/mame/drivers/gotcha.cpp2
-rw-r--r--src/mame/drivers/gstream.cpp4
-rw-r--r--src/mame/drivers/gunpey.cpp2
-rw-r--r--src/mame/drivers/igs011.cpp6
-rw-r--r--src/mame/drivers/igs017.cpp14
-rw-r--r--src/mame/drivers/joystand.cpp2
-rw-r--r--src/mame/drivers/kaneko16.cpp16
-rw-r--r--src/mame/drivers/kickgoal.cpp32
-rw-r--r--src/mame/drivers/lordgun.cpp2
-rw-r--r--src/mame/drivers/m92.cpp2
-rw-r--r--src/mame/drivers/metro.cpp2
-rw-r--r--src/mame/drivers/midyunit.cpp2
-rw-r--r--src/mame/drivers/mirage.cpp4
-rw-r--r--src/mame/drivers/mitchell.cpp2
-rw-r--r--src/mame/drivers/moo.cpp2
-rw-r--r--src/mame/drivers/mwarr.cpp2
-rw-r--r--src/mame/drivers/nmg5.cpp2
-rw-r--r--src/mame/drivers/nmk16.cpp6
-rw-r--r--src/mame/drivers/oneshot.cpp2
-rw-r--r--src/mame/drivers/paradise.cpp2
-rw-r--r--src/mame/drivers/pasha2.cpp4
-rw-r--r--src/mame/drivers/pirates.cpp2
-rw-r--r--src/mame/drivers/pktgaldx.cpp2
-rw-r--r--src/mame/drivers/playmark.cpp4
-rw-r--r--src/mame/drivers/powerbal.cpp6
-rw-r--r--src/mame/drivers/pzletime.cpp2
-rw-r--r--src/mame/drivers/rohga.cpp4
-rw-r--r--src/mame/drivers/seibuspi.cpp2
-rw-r--r--src/mame/drivers/seicupbl.cpp2
-rw-r--r--src/mame/drivers/shadfrce.cpp2
-rw-r--r--src/mame/drivers/shangha3.cpp4
-rw-r--r--src/mame/drivers/silkroad.cpp2
-rw-r--r--src/mame/drivers/simpl156.cpp2
-rw-r--r--src/mame/drivers/snowbros.cpp2
-rw-r--r--src/mame/drivers/sslam.cpp10
-rw-r--r--src/mame/drivers/stlforce.cpp2
-rw-r--r--src/mame/drivers/subsino2.cpp4
-rw-r--r--src/mame/drivers/taito_f2.cpp2
-rw-r--r--src/mame/drivers/tickee.cpp8
-rw-r--r--src/mame/drivers/tmaster.cpp4
-rw-r--r--src/mame/drivers/toaplan2.cpp6
-rw-r--r--src/mame/drivers/unico.cpp2
-rw-r--r--src/mame/drivers/vamphalf.cpp8
-rw-r--r--src/mame/video/mitchell.cpp2
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
@@ -205,6 +205,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
@@ -161,6 +161,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
@@ -213,6 +213,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
//-------------------------------------------------
void qs1000_device::device_start()
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<UINT8[]> 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;